]> Pileus Git - ~andy/linux/blobdiff - drivers/input/touchscreen/atmel-wm97xx.c
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
[~andy/linux] / drivers / input / touchscreen / atmel-wm97xx.c
index 746bf77d7856fd41500d81bd92f90a4d7a0352d4..c5c2dbb938692f418ba603e649b7fc062462268a 100644 (file)
@@ -392,9 +392,10 @@ static int __exit atmel_wm97xx_remove(struct platform_device *pdev)
        return 0;
 }
 
-#ifdef CONFIG_PM
-static int atmel_wm97xx_suspend(struct platform_device *pdev, pm_message_t msg)
+#ifdef CONFIG_PM_SLEEP
+static int atmel_wm97xx_suspend(struct *dev)
 {
+       struct platform_device *pdev = to_platform_device(dev);
        struct atmel_wm97xx *atmel_wm97xx = platform_get_drvdata(pdev);
 
        ac97c_writel(atmel_wm97xx, IDR, AC97C_INT_CBEVT);
@@ -404,8 +405,9 @@ static int atmel_wm97xx_suspend(struct platform_device *pdev, pm_message_t msg)
        return 0;
 }
 
-static int atmel_wm97xx_resume(struct platform_device *pdev)
+static int atmel_wm97xx_resume(struct device *dev)
 {
+       struct platform_device *pdev = to_platform_device(dev);
        struct atmel_wm97xx *atmel_wm97xx = platform_get_drvdata(pdev);
        struct wm97xx *wm = atmel_wm97xx->wm;
 
@@ -416,21 +418,31 @@ static int atmel_wm97xx_resume(struct platform_device *pdev)
 
        return 0;
 }
-#else
-#define atmel_wm97xx_suspend   NULL
-#define atmel_wm97xx_resume    NULL
 #endif
 
+static SIMPLE_DEV_PM_OPS(atmel_wm97xx_pm_ops,
+                        atmel_wm97xx_suspend, atmel_wm97xx_resume);
+
 static struct platform_driver atmel_wm97xx_driver = {
        .remove         = __exit_p(atmel_wm97xx_remove),
        .driver         = {
                .name   = "wm97xx-touch",
                .owner  = THIS_MODULE,
+               .pm     = &atmel_wm97xx_pm_ops,
        },
-       .suspend        = atmel_wm97xx_suspend,
-       .resume         = atmel_wm97xx_resume,
 };
-module_platform_driver(atmel_wm97xx_driver);
+
+static int __init atmel_wm97xx_init(void)
+{
+       return platform_driver_probe(&atmel_wm97xx_driver, atmel_wm97xx_probe);
+}
+module_init(atmel_wm97xx_init);
+
+static void __exit atmel_wm97xx_exit(void)
+{
+       platform_driver_unregister(&atmel_wm97xx_driver);
+}
+module_exit(atmel_wm97xx_exit);
 
 MODULE_AUTHOR("Hans-Christian Egtvedt <egtvedt@samfundet.no>");
 MODULE_DESCRIPTION("wm97xx continuous touch driver for Atmel AT91 and AVR32");