aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Bityutskiy <artem.bityutskiy@linux.intel.com>2011-12-23 12:18:22 -0500
committerDavid Woodhouse <David.Woodhouse@intel.com>2012-01-09 13:25:40 -0500
commitb66005cd3e6f104e0a1b6492110c337269b53ec3 (patch)
tree248a5f72af42c122072183a5e3a411b97a36e3c4
parent7799f9ac8d8ff2db14736950275249df442baeac (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.c2
-rw-r--r--drivers/mtd/mtdconcat.c2
-rw-r--r--drivers/mtd/mtdcore.c2
-rw-r--r--drivers/mtd/mtdpart.c2
-rw-r--r--include/linux/mtd/mtd.h7
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
293static int part_is_locked(struct mtd_info *mtd, loff_t ofs, uint64_t len) 293static 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
392static inline int mtd_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
393{
394 return mtd->unlock(mtd, ofs, len);
395}
396
392static inline struct mtd_info *dev_to_mtd(struct device *dev) 397static 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;