|
@@ -48,14 +48,34 @@
|
|
|
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)
|
|
|
{
|