OSDN Git Service

mtd: Switch to PM ops
authorLars-Peter Clausen <lars@metafoo.de>
Mon, 6 Apr 2015 10:00:39 +0000 (12:00 +0200)
committerBrian Norris <computersforpeace@gmail.com>
Thu, 7 May 2015 07:18:22 +0000 (00:18 -0700)
Use dev_pm_ops instead of the legacy suspend/resume callbacks for the MTD
class suspend and resume operations.

While we are at it slightly reorder things to avoid the need for forward
declarations.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/mtdcore.c

index d172195..f3ca97f 100644 (file)
 static struct backing_dev_info mtd_bdi = {
 };
 
-static int mtd_cls_suspend(struct device *dev, pm_message_t state);
-static int mtd_cls_resume(struct device *dev);
+#ifdef CONFIG_PM_SLEEP
+
+static int mtd_cls_suspend(struct device *dev)
+{
+       struct mtd_info *mtd = dev_get_drvdata(dev);
+
+       return mtd ? mtd_suspend(mtd) : 0;
+}
+
+static int mtd_cls_resume(struct device *dev)
+{
+       struct mtd_info *mtd = dev_get_drvdata(dev);
+
+       if (mtd)
+               mtd_resume(mtd);
+       return 0;
+}
+
+static SIMPLE_DEV_PM_OPS(mtd_cls_pm_ops, mtd_cls_suspend, mtd_cls_resume);
+#define MTD_CLS_PM_OPS (&mtd_cls_pm_ops)
+#else
+#define MTD_CLS_PM_OPS NULL
+#endif
 
 static struct class mtd_class = {
        .name = "mtd",
        .owner = THIS_MODULE,
-       .suspend = mtd_cls_suspend,
-       .resume = mtd_cls_resume,
+       .pm = MTD_CLS_PM_OPS,
 };
 
 static DEFINE_IDR(mtd_idr);
@@ -88,22 +108,6 @@ static void mtd_release(struct device *dev)
        device_destroy(&mtd_class, index + 1);
 }
 
-static int mtd_cls_suspend(struct device *dev, pm_message_t state)
-{
-       struct mtd_info *mtd = dev_get_drvdata(dev);
-
-       return mtd ? mtd_suspend(mtd) : 0;
-}
-
-static int mtd_cls_resume(struct device *dev)
-{
-       struct mtd_info *mtd = dev_get_drvdata(dev);
-
-       if (mtd)
-               mtd_resume(mtd);
-       return 0;
-}
-
 static ssize_t mtd_type_show(struct device *dev,
                struct device_attribute *attr, char *buf)
 {