OSDN Git Service

input: touchscreen: Convert Goodix driver to dev_pm_ops
authorShantanu Jain <shjain@codeaurora.org>
Wed, 13 Nov 2013 16:14:29 +0000 (21:44 +0530)
committerGerrit - the friendly Code Review server <code-review@localhost>
Fri, 23 Sep 2016 05:25:05 +0000 (22:25 -0700)
Convert Goodix driver to dev_pm_ops.
Add return type and parameters for suspend/resume for
Goodix driver.

Change-Id: I5243d9ab801f6964e675ad37c2161beda3586dfe
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
drivers/input/touchscreen/gt9xx/gt9xx.c

index 1522093..bc0ff0e 100644 (file)
@@ -1975,9 +1975,10 @@ Input:
 Output:
        None.
 *******************************************************/
-static void goodix_ts_suspend(struct goodix_ts_data *ts)
+static int goodix_ts_suspend(struct device *dev)
 {
-       int ret = -1, i;
+       struct goodix_ts_data *ts = dev_get_drvdata(dev);
+       int ret = 0, i;
 
        mutex_lock(&ts->lock);
 #if GTP_ESD_PROTECT
@@ -2007,6 +2008,8 @@ static void goodix_ts_suspend(struct goodix_ts_data *ts)
         */
        msleep(58);
        mutex_unlock(&ts->lock);
+
+       return ret;
 }
 
 /*******************************************************
@@ -2017,9 +2020,10 @@ Input:
 Output:
        None.
 *******************************************************/
-static void goodix_ts_resume(struct goodix_ts_data *ts)
+static int goodix_ts_resume(struct device *dev)
 {
-       int ret = -1;
+       struct goodix_ts_data *ts = dev_get_drvdata(dev);
+       int ret = 0;
 
        mutex_lock(&ts->lock);
        ret = gtp_wakeup_sleep(ts);
@@ -2042,6 +2046,8 @@ static void goodix_ts_resume(struct goodix_ts_data *ts)
        gtp_esd_switch(ts->client, SWITCH_ON);
 #endif
        mutex_unlock(&ts->lock);
+
+       return ret;
 }
 
 #if defined(CONFIG_FB)
@@ -2057,9 +2063,9 @@ static int fb_notifier_callback(struct notifier_block *self,
                        ts && ts->client) {
                blank = evdata->data;
                if (*blank == FB_BLANK_UNBLANK)
-                       goodix_ts_resume(ts);
+                       goodix_ts_resume(&ts->client->dev);
                else if (*blank == FB_BLANK_POWERDOWN)
-                       goodix_ts_suspend(ts);
+                       goodix_ts_suspend(&ts->client->dev);
        }
 
        return 0;
@@ -2078,7 +2084,8 @@ static void goodix_ts_early_suspend(struct early_suspend *h)
        struct goodix_ts_data *ts;
 
        ts = container_of(h, struct goodix_ts_data, early_suspend);
-       goodix_ts_suspend(ts);
+       goodix_ts_suspend(&ts->client->dev);
+       return;
 }
 
 /*
@@ -2229,6 +2236,9 @@ static void gtp_esd_check_func(struct work_struct *work)
 }
 #endif
 
+static SIMPLE_DEV_PM_OPS(goodix_ts_dev_pm_ops, goodix_ts_suspend,
+                                       goodix_ts_resume);
+
 static const struct i2c_device_id goodix_ts_id[] = {
        { GTP_I2C_NAME, 0 },
        { }
@@ -2251,6 +2261,9 @@ static struct i2c_driver goodix_ts_driver = {
                .name     = GTP_I2C_NAME,
                .owner    = THIS_MODULE,
                .of_match_table = goodix_match_table,
+#if CONFIG_PM
+               .pm = &goodix_ts_dev_pm_ops,
+#endif
        },
 };