diff options
author | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2011-12-23 12:18:22 -0500 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2012-01-09 13:25:40 -0500 |
commit | b66005cd3e6f104e0a1b6492110c337269b53ec3 (patch) | |
tree | 248a5f72af42c122072183a5e3a411b97a36e3c4 | |
parent | 7799f9ac8d8ff2db14736950275249df442baeac (diff) |
mtd: introduce mtd_unlock interface
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
-rw-r--r-- | drivers/mtd/mtdchar.c | 2 | ||||
-rw-r--r-- | drivers/mtd/mtdconcat.c | 2 | ||||
-rw-r--r-- | drivers/mtd/mtdcore.c | 2 | ||||
-rw-r--r-- | drivers/mtd/mtdpart.c | 2 | ||||
-rw-r--r-- | include/linux/mtd/mtd.h | 7 |
5 files changed, 10 insertions, 5 deletions
diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c index 870f2cb415cb..fe09cd2a4540 100644 --- a/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c | |||
@@ -838,7 +838,7 @@ static int mtdchar_ioctl(struct file *file, u_int cmd, u_long arg) | |||
838 | if (!mtd->unlock) | 838 | if (!mtd->unlock) |
839 | ret = -EOPNOTSUPP; | 839 | ret = -EOPNOTSUPP; |
840 | else | 840 | else |
841 | ret = mtd->unlock(mtd, einfo.start, einfo.length); | 841 | ret = mtd_unlock(mtd, einfo.start, einfo.length); |
842 | break; | 842 | break; |
843 | } | 843 | } |
844 | 844 | ||
diff --git a/drivers/mtd/mtdconcat.c b/drivers/mtd/mtdconcat.c index 97d6360986c8..272ebc01f95b 100644 --- a/drivers/mtd/mtdconcat.c +++ b/drivers/mtd/mtdconcat.c | |||
@@ -596,7 +596,7 @@ static int concat_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) | |||
596 | size = len; | 596 | size = len; |
597 | 597 | ||
598 | if (subdev->unlock) { | 598 | if (subdev->unlock) { |
599 | err = subdev->unlock(subdev, ofs, size); | 599 | err = mtd_unlock(subdev, ofs, size); |
600 | if (err) | 600 | if (err) |
601 | break; | 601 | break; |
602 | } else | 602 | } else |
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index e36191ab47c3..4a2155748fa3 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c | |||
@@ -340,7 +340,7 @@ int add_mtd_device(struct mtd_info *mtd) | |||
340 | /* Some chips always power up locked. Unlock them now */ | 340 | /* Some chips always power up locked. Unlock them now */ |
341 | if ((mtd->flags & MTD_WRITEABLE) | 341 | if ((mtd->flags & MTD_WRITEABLE) |
342 | && (mtd->flags & MTD_POWERUP_LOCK) && mtd->unlock) { | 342 | && (mtd->flags & MTD_POWERUP_LOCK) && mtd->unlock) { |
343 | if (mtd->unlock(mtd, 0, mtd->size)) | 343 | if (mtd_unlock(mtd, 0, mtd->size)) |
344 | printk(KERN_WARNING | 344 | printk(KERN_WARNING |
345 | "%s: unlock failed, writes may not work\n", | 345 | "%s: unlock failed, writes may not work\n", |
346 | mtd->name); | 346 | mtd->name); |
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c index a5e7a2103dcf..d65af3752331 100644 --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c | |||
@@ -287,7 +287,7 @@ static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) | |||
287 | struct mtd_part *part = PART(mtd); | 287 | struct mtd_part *part = PART(mtd); |
288 | if ((len + ofs) > mtd->size) | 288 | if ((len + ofs) > mtd->size) |
289 | return -EINVAL; | 289 | return -EINVAL; |
290 | return part->master->unlock(part->master, ofs + part->offset, len); | 290 | return mtd_unlock(part->master, ofs + part->offset, len); |
291 | } | 291 | } |
292 | 292 | ||
293 | static int part_is_locked(struct mtd_info *mtd, loff_t ofs, uint64_t len) | 293 | static int part_is_locked(struct mtd_info *mtd, loff_t ofs, uint64_t len) |
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index 167bac2e380e..f30c35886f7c 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h | |||
@@ -208,13 +208,13 @@ struct mtd_info { | |||
208 | unsigned long count, loff_t to, size_t *retlen); | 208 | unsigned long count, loff_t to, size_t *retlen); |
209 | void (*sync) (struct mtd_info *mtd); | 209 | void (*sync) (struct mtd_info *mtd); |
210 | int (*lock) (struct mtd_info *mtd, loff_t ofs, uint64_t len); | 210 | int (*lock) (struct mtd_info *mtd, loff_t ofs, uint64_t len); |
211 | int (*unlock) (struct mtd_info *mtd, loff_t ofs, uint64_t len); | ||
211 | 212 | ||
212 | /* Backing device capabilities for this device | 213 | /* Backing device capabilities for this device |
213 | * - provides mmap capabilities | 214 | * - provides mmap capabilities |
214 | */ | 215 | */ |
215 | struct backing_dev_info *backing_dev_info; | 216 | struct backing_dev_info *backing_dev_info; |
216 | 217 | ||
217 | int (*unlock) (struct mtd_info *mtd, loff_t ofs, uint64_t len); | ||
218 | int (*is_locked) (struct mtd_info *mtd, loff_t ofs, uint64_t len); | 218 | int (*is_locked) (struct mtd_info *mtd, loff_t ofs, uint64_t len); |
219 | 219 | ||
220 | /* Power Management functions */ | 220 | /* Power Management functions */ |
@@ -389,6 +389,11 @@ static inline int mtd_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len) | |||
389 | return mtd->lock(mtd, ofs, len); | 389 | return mtd->lock(mtd, ofs, len); |
390 | } | 390 | } |
391 | 391 | ||
392 | static inline int mtd_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) | ||
393 | { | ||
394 | return mtd->unlock(mtd, ofs, len); | ||
395 | } | ||
396 | |||
392 | static inline struct mtd_info *dev_to_mtd(struct device *dev) | 397 | static inline struct mtd_info *dev_to_mtd(struct device *dev) |
393 | { | 398 | { |
394 | return dev ? dev_get_drvdata(dev) : NULL; | 399 | return dev ? dev_get_drvdata(dev) : NULL; |