OMAP: OMAPFB: add dummy release function for omapdss
[safe/jmp/linux-2.6] / drivers / mtd / mtdcore.c
index fac54a3..c356c0a 100644 (file)
@@ -65,8 +65,8 @@ static void mtd_release(struct device *dev)
 static int mtd_cls_suspend(struct device *dev, pm_message_t state)
 {
        struct mtd_info *mtd = dev_to_mtd(dev);
-       
-       if (mtd->suspend)
+
+       if (mtd && mtd->suspend)
                return mtd->suspend(mtd);
        else
                return 0;
@@ -76,7 +76,7 @@ static int mtd_cls_resume(struct device *dev)
 {
        struct mtd_info *mtd = dev_to_mtd(dev);
        
-       if (mtd->resume)
+       if (mtd && mtd->resume)
                mtd->resume(mtd);
        return 0;
 }
@@ -213,11 +213,11 @@ static struct attribute *mtd_attrs[] = {
        NULL,
 };
 
-struct attribute_group mtd_group = {
+static struct attribute_group mtd_group = {
        .attrs          = mtd_attrs,
 };
 
-struct attribute_group *mtd_groups[] = {
+static const struct attribute_group *mtd_groups[] = {
        &mtd_group,
        NULL,
 };
@@ -298,6 +298,7 @@ int add_mtd_device(struct mtd_info *mtd)
                        mtd->dev.class = &mtd_class;
                        mtd->dev.devt = MTD_DEVT(i);
                        dev_set_name(&mtd->dev, "mtd%d", i);
+                       dev_set_drvdata(&mtd->dev, mtd);
                        if (device_register(&mtd->dev) != 0) {
                                mtd_table[i] = NULL;
                                break;
@@ -446,7 +447,7 @@ struct mtd_info *get_mtd_device(struct mtd_info *mtd, int num)
                for (i=0; i< MAX_MTD_DEVICES; i++)
                        if (mtd_table[i] == mtd)
                                ret = mtd_table[i];
-       } else if (num < MAX_MTD_DEVICES) {
+       } else if (num >= 0 && num < MAX_MTD_DEVICES) {
                ret = mtd_table[num];
                if (mtd && mtd != ret)
                        ret = NULL;