Add pollForEvent check mechanism

1. When the panel enters the active state, the gesture_enable should be set to 0.
2. When resume, the charger mode is already set, so not to wirte.
3. When the CONTROLLER_READY event is not polled, perform a system reset.

Change-Id: I5281e9cb4e962f5f0a1c9460fecd541ae72fa3f4
Reviewed-on: https://gerrit.mot.com/1950039
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Jichao Zou <zoujc@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
litong20 2021-05-17 09:47:44 +08:00 • committed by litong
commit be8e8cbc99
2 changed files with 20 additions and 5 deletions

View file

@ -96,12 +96,23 @@ void setResetGpio(int gpio)
int fts_wait_for_ready(void)
{
int ret = -1;
int i;
u8 readData[FIFO_EVENT_SIZE];
int event_to_search;
event_to_search = (int)EVT_ID_CONTROLLER_READY;
return pollForEvent(&event_to_search, 1, readData, GENERAL_TIMEOUT);
for (i = 0; i < 3; i++) {
ret = pollForEvent(&event_to_search, 1, readData, GENERAL_TIMEOUT);
if (ret == ERROR_TIMEOUT || ret == ERROR_BUS_R)
fts_system_reset();
else
return ret;
}
logError(1, "%s fts_wait_for_ready Failed\n", tag);
return ret;
}
/**

View file

@ -308,6 +308,7 @@ static int fts_mmi_panel_state(struct device *dev,
fts_suspend_func(ts);
break;
case TS_MMI_PM_ACTIVE:
ts->gesture_enabled = 0;
break;
default:
dev_warn(dev, "invalid panel state %d\n", to);
@ -373,11 +374,16 @@ static int fts_mmi_fw_update(struct device *dev, char *fwname)
static int fts_mmi_charger_mode(struct device *dev, int mode)
{
struct fts_ts_info *ts = dev_get_drvdata(dev);
int res = OK;
int ret = OK;
u8 settings[4] = { 0 };
ASSERT_PTR(ts);
if (mode == ts->charger_enabled) {
logError(1, "%s %s: Charger mode is already %s.\n",
tag, __func__, !!mode ? "Enable" : "Disable");
return ret;
}
ts->mode = MODE_NOTHING; /* initialize the mode to nothing in
* order to be updated depending on the
* features enabled */
@ -388,8 +394,6 @@ static int fts_mmi_charger_mode(struct device *dev, int mode)
logError(1, "%s %s: error during setting CHARGER_MODE! ERROR %08X\n",
tag, __func__, ret);
res |= ret;
if (ret >= OK && ts->charger_enabled == FEAT_ENABLE) {
fromIDtoMask(FEAT_SEL_CHARGER, (u8 *)&ts->mode, sizeof(ts->mode));
logError(1, "%s %s: CHARGER_MODE Enabled!\n",
@ -397,7 +401,7 @@ static int fts_mmi_charger_mode(struct device *dev, int mode)
} else
logError(1, "%s %s: CHARGER_MODE Disabled!\n", tag, __func__);
return res;
return ret;
}
static int fts_mmi_wait4ready(struct device *dev)