aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Bityutskiy <artem.bityutskiy@linux.intel.com>2011-12-23 12:15:39 -0500
committerDavid Woodhouse <David.Woodhouse@intel.com>2012-01-09 13:25:39 -0500
commit7799f9ac8d8ff2db14736950275249df442baeac (patch)
tree4e1cab283bae84b6a2133883265923e68ef5ac4e
parent85f2f2a809d658c15b574df02ede92090f45a1f2 (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.c2
-rw-r--r--drivers/mtd/mtdchar.c2
-rw-r--r--drivers/mtd/mtdconcat.c2
-rw-r--r--drivers/mtd/mtdpart.c2
-rw-r--r--include/linux/mtd/mtd.h9
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
285static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) 285static 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 */
387static inline int mtd_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
388{
389 return mtd->lock(mtd, ofs, len);
390}
391
387static inline struct mtd_info *dev_to_mtd(struct device *dev) 392static 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;