From 43d81f370d81868f9b079be318b6810693497780 Mon Sep 17 00:00:00 2001 From: Shantanu Jain Date: Wed, 13 Nov 2013 21:44:29 +0530 Subject: [PATCH] input: touchscreen: Convert Goodix driver to dev_pm_ops 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 --- drivers/input/touchscreen/gt9xx/gt9xx.c | 27 ++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/drivers/input/touchscreen/gt9xx/gt9xx.c b/drivers/input/touchscreen/gt9xx/gt9xx.c index 1522093bd882..bc0ff0e4e7ac 100644 --- a/drivers/input/touchscreen/gt9xx/gt9xx.c +++ b/drivers/input/touchscreen/gt9xx/gt9xx.c @@ -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 }, };