Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[cascardo/linux.git] / drivers / mtd / mtdconcat.c
index 272ebc0..1ed5103 100644 (file)
@@ -555,12 +555,9 @@ static int concat_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
                else
                        size = len;
 
-               if (subdev->lock) {
-                       err = mtd_lock(subdev, ofs, size);
-                       if (err)
-                               break;
-               } else
-                       err = -EOPNOTSUPP;
+               err = mtd_lock(subdev, ofs, size);
+               if (err)
+                       break;
 
                len -= size;
                if (len == 0)
@@ -595,12 +592,9 @@ static int concat_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
                else
                        size = len;
 
-               if (subdev->unlock) {
-                       err = mtd_unlock(subdev, ofs, size);
-                       if (err)
-                               break;
-               } else
-                       err = -EOPNOTSUPP;
+               err = mtd_unlock(subdev, ofs, size);
+               if (err)
+                       break;
 
                len -= size;
                if (len == 0)
@@ -631,7 +625,7 @@ static int concat_suspend(struct mtd_info *mtd)
 
        for (i = 0; i < concat->num_subdev; i++) {
                struct mtd_info *subdev = concat->subdev[i];
-               if ((rc = subdev->suspend(subdev)) < 0)
+               if ((rc = mtd_suspend(subdev)) < 0)
                        return rc;
        }
        return rc;
@@ -644,7 +638,7 @@ static void concat_resume(struct mtd_info *mtd)
 
        for (i = 0; i < concat->num_subdev; i++) {
                struct mtd_info *subdev = concat->subdev[i];
-               subdev->resume(subdev);
+               mtd_resume(subdev);
        }
 }
 
@@ -653,7 +647,7 @@ static int concat_block_isbad(struct mtd_info *mtd, loff_t ofs)
        struct mtd_concat *concat = CONCAT(mtd);
        int i, res = 0;
 
-       if (!concat->subdev[0]->block_isbad)
+       if (!mtd_can_have_bb(concat->subdev[0]))
                return res;
 
        if (ofs > mtd->size)
@@ -667,7 +661,7 @@ static int concat_block_isbad(struct mtd_info *mtd, loff_t ofs)
                        continue;
                }
 
-               res = subdev->block_isbad(subdev, ofs);
+               res = mtd_block_isbad(subdev, ofs);
                break;
        }
 
@@ -679,7 +673,7 @@ static int concat_block_markbad(struct mtd_info *mtd, loff_t ofs)
        struct mtd_concat *concat = CONCAT(mtd);
        int i, err = -EINVAL;
 
-       if (!concat->subdev[0]->block_markbad)
+       if (!mtd_can_have_bb(concat->subdev[0]))
                return 0;
 
        if (ofs > mtd->size)
@@ -693,7 +687,7 @@ static int concat_block_markbad(struct mtd_info *mtd, loff_t ofs)
                        continue;
                }
 
-               err = subdev->block_markbad(subdev, ofs);
+               err = mtd_block_markbad(subdev, ofs);
                if (!err)
                        mtd->ecc_stats.badblocks++;
                break;
@@ -726,11 +720,7 @@ static unsigned long concat_get_unmapped_area(struct mtd_info *mtd,
                if (offset + len > subdev->size)
                        return (unsigned long) -EINVAL;
 
-               if (subdev->get_unmapped_area)
-                       return mtd_get_unmapped_area(subdev, len, offset,
-                                                    flags);
-
-               break;
+               return mtd_get_unmapped_area(subdev, len, offset, flags);
        }
 
        return (unsigned long) -ENOSYS;