diff options
author | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2011-12-23 12:15:39 -0500 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2012-01-09 13:25:39 -0500 |
commit | 7799f9ac8d8ff2db14736950275249df442baeac (patch) | |
tree | 4e1cab283bae84b6a2133883265923e68ef5ac4e | |
parent | 85f2f2a809d658c15b574df02ede92090f45a1f2 (diff) |
mtd: introduce mtd_lock 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/maps/scb2_flash.c | 2 | ||||
-rw-r--r-- | drivers/mtd/mtdchar.c | 2 | ||||
-rw-r--r-- | drivers/mtd/mtdconcat.c | 2 | ||||
-rw-r--r-- | drivers/mtd/mtdpart.c | 2 | ||||
-rw-r--r-- | include/linux/mtd/mtd.h | 9 |
5 files changed, 11 insertions, 6 deletions
diff --git a/drivers/mtd/maps/scb2_flash.c b/drivers/mtd/maps/scb2_flash.c index d88c8426bb0f..01af34778de3 100644 --- a/drivers/mtd/maps/scb2_flash.c +++ b/drivers/mtd/maps/scb2_flash.c | |||
@@ -205,7 +205,7 @@ scb2_flash_remove(struct pci_dev *dev) | |||
205 | 205 | ||
206 | /* disable flash writes */ | 206 | /* disable flash writes */ |
207 | if (scb2_mtd->lock) | 207 | if (scb2_mtd->lock) |
208 | scb2_mtd->lock(scb2_mtd, 0, scb2_mtd->size); | 208 | mtd_lock(scb2_mtd, 0, scb2_mtd->size); |
209 | 209 | ||
210 | mtd_device_unregister(scb2_mtd); | 210 | mtd_device_unregister(scb2_mtd); |
211 | map_destroy(scb2_mtd); | 211 | map_destroy(scb2_mtd); |
diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c index b5722ecf19d3..870f2cb415cb 100644 --- a/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c | |||
@@ -824,7 +824,7 @@ static int mtdchar_ioctl(struct file *file, u_int cmd, u_long arg) | |||
824 | if (!mtd->lock) | 824 | if (!mtd->lock) |
825 | ret = -EOPNOTSUPP; | 825 | ret = -EOPNOTSUPP; |
826 | else | 826 | else |
827 | ret = mtd->lock(mtd, einfo.start, einfo.length); | 827 | ret = mtd_lock(mtd, einfo.start, einfo.length); |
828 | break; | 828 | break; |
829 | } | 829 | } |
830 | 830 | ||
diff --git a/drivers/mtd/mtdconcat.c b/drivers/mtd/mtdconcat.c index cc2336edfe28..97d6360986c8 100644 --- a/drivers/mtd/mtdconcat.c +++ b/drivers/mtd/mtdconcat.c | |||
@@ -556,7 +556,7 @@ static int concat_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len) | |||
556 | size = len; | 556 | size = len; |
557 | 557 | ||
558 | if (subdev->lock) { | 558 | if (subdev->lock) { |
559 | err = subdev->lock(subdev, ofs, size); | 559 | err = mtd_lock(subdev, ofs, size); |
560 | if (err) | 560 | if (err) |
561 | break; | 561 | break; |
562 | } else | 562 | } else |
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c index 2b545052795e..a5e7a2103dcf 100644 --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c | |||
@@ -279,7 +279,7 @@ static int part_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len) | |||
279 | struct mtd_part *part = PART(mtd); | 279 | struct mtd_part *part = PART(mtd); |
280 | if ((len + ofs) > mtd->size) | 280 | if ((len + ofs) > mtd->size) |
281 | return -EINVAL; | 281 | return -EINVAL; |
282 | return part->master->lock(part->master, ofs + part->offset, len); | 282 | return mtd_lock(part->master, ofs + part->offset, len); |
283 | } | 283 | } |
284 | 284 | ||
285 | static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) | 285 | static int part_unlock(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 47ea19c1e523..167bac2e380e 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h | |||
@@ -207,14 +207,13 @@ struct mtd_info { | |||
207 | int (*writev) (struct mtd_info *mtd, const struct kvec *vecs, | 207 | int (*writev) (struct mtd_info *mtd, const struct kvec *vecs, |
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 | 211 | ||
211 | /* Backing device capabilities for this device | 212 | /* Backing device capabilities for this device |
212 | * - provides mmap capabilities | 213 | * - provides mmap capabilities |
213 | */ | 214 | */ |
214 | struct backing_dev_info *backing_dev_info; | 215 | struct backing_dev_info *backing_dev_info; |
215 | 216 | ||
216 | /* Chip-supported device locking */ | ||
217 | int (*lock) (struct mtd_info *mtd, loff_t ofs, uint64_t len); | ||
218 | int (*unlock) (struct mtd_info *mtd, loff_t ofs, uint64_t len); | 217 | int (*unlock) (struct mtd_info *mtd, loff_t ofs, uint64_t len); |
219 | 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); |
220 | 219 | ||
@@ -384,6 +383,12 @@ static inline void mtd_sync(struct mtd_info *mtd) | |||
384 | mtd->sync(mtd); | 383 | mtd->sync(mtd); |
385 | } | 384 | } |
386 | 385 | ||
386 | /* Chip-supported device locking */ | ||
387 | static inline int mtd_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len) | ||
388 | { | ||
389 | return mtd->lock(mtd, ofs, len); | ||
390 | } | ||
391 | |||
387 | static inline struct mtd_info *dev_to_mtd(struct device *dev) | 392 | static inline struct mtd_info *dev_to_mtd(struct device *dev) |
388 | { | 393 | { |
389 | return dev ? dev_get_drvdata(dev) : NULL; | 394 | return dev ? dev_get_drvdata(dev) : NULL; |