diff --git a/drivers/input/touchscreen/cyttsp5_cs445a/cyttsp5_core.c b/drivers/input/touchscreen/cyttsp5_cs445a/cyttsp5_core.c old mode 100644 new mode 100755 index 0a73be33a460185ca81bae20792c2281f2dde25b..1f5c8642a95dff31f6a8cf49c20e16e613ac425a --- a/drivers/input/touchscreen/cyttsp5_cs445a/cyttsp5_core.c +++ b/drivers/input/touchscreen/cyttsp5_cs445a/cyttsp5_core.c @@ -51,6 +51,8 @@ extern struct dsm_client *tp_cyp_dclient; extern ssize_t cyttsp5_dsm_record_basic_err_info(struct device *dev); extern int cyttsp5_tp_report_dsm_err(struct device *dev, int type, int err_numb); #endif/*CONFIG_HUAWEI_DSM*/ +static int _fast_startup(struct cyttsp5_core_data *cd); + struct device *gdev = NULL; struct device *cyttsp5_core_dev = NULL; struct cyttsp5_hid_field { @@ -4309,7 +4311,13 @@ static int cyttsp5_core_wake_device_from_easy_wakeup_( cd->easy_wakeup_gesture, &status); if (rc || status == 1){ tp_log_err("%s: failed, rc=%d, status=%d\n", __func__, rc, status); - return -EBUSY; + rc = cyttsp5_reset_and_wait(cd); + if (rc < 0) { + dev_err(cd->dev, "%s: Error on h/w reset r=%d\n",__func__, rc); + return rc; + } + _fast_startup(cd); + return 0; } if (device_may_wakeup(cd->dev)) {