Merge commit 'v3.2-rc3' into next
[linux-2.6-block.git] / drivers / input / touchscreen / ad7879.c
index 131f9d1c921b090ee813e5bc2205fa5a904a0633..e2482b40da5198fdb1406e135fff827d049e5895 100644 (file)
@@ -33,6 +33,7 @@
 #include <linux/gpio.h>
 
 #include <linux/spi/ad7879.h>
+#include <linux/module.h>
 #include "ad7879.h"
 
 #define AD7879_REG_ZEROS               0
@@ -280,8 +281,11 @@ static void ad7879_close(struct input_dev* input)
                __ad7879_disable(ts);
 }
 
-void ad7879_suspend(struct ad7879 *ts)
+#ifdef CONFIG_PM_SLEEP
+static int ad7879_suspend(struct device *dev)
 {
+       struct ad7879 *ts = dev_get_drvdata(dev);
+
        mutex_lock(&ts->input->mutex);
 
        if (!ts->suspended && !ts->disabled && ts->input->users)
@@ -290,11 +294,14 @@ void ad7879_suspend(struct ad7879 *ts)
        ts->suspended = true;
 
        mutex_unlock(&ts->input->mutex);
+
+       return 0;
 }
-EXPORT_SYMBOL(ad7879_suspend);
 
-void ad7879_resume(struct ad7879 *ts)
+static int ad7879_resume(struct device *dev)
 {
+       struct ad7879 *ts = dev_get_drvdata(dev);
+
        mutex_lock(&ts->input->mutex);
 
        if (ts->suspended && !ts->disabled && ts->input->users)
@@ -303,8 +310,13 @@ void ad7879_resume(struct ad7879 *ts)
        ts->suspended = false;
 
        mutex_unlock(&ts->input->mutex);
+
+       return 0;
 }
-EXPORT_SYMBOL(ad7879_resume);
+#endif
+
+SIMPLE_DEV_PM_OPS(ad7879_pm_ops, ad7879_suspend, ad7879_resume);
+EXPORT_SYMBOL(ad7879_pm_ops);
 
 static void ad7879_toggle(struct ad7879 *ts, bool disable)
 {
@@ -339,10 +351,10 @@ static ssize_t ad7879_disable_store(struct device *dev,
                                     const char *buf, size_t count)
 {
        struct ad7879 *ts = dev_get_drvdata(dev);
-       unsigned long val;
+       unsigned int val;
        int error;
 
-       error = strict_strtoul(buf, 10, &val);
+       error = kstrtouint(buf, 10, &val);
        if (error)
                return error;