summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-09-24 02:00:32 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-09-24 02:00:32 -0700
commit003e367e3664cf399f1cdb4e8fce29d9173c2f59 (patch)
tree34ee8243231e09babaa0259572c45413b6733db2
parent33b8c0517bdbef7ce6eb7e921c6cdb75dc02f829 (diff)
parent43d81f370d81868f9b079be318b6810693497780 (diff)
Merge "input: touchscreen: Convert Goodix driver to dev_pm_ops"
-rw-r--r--drivers/input/touchscreen/gt9xx/gt9xx.c27
1 files 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
},
};