Commit b66005cd authored by Artem Bityutskiy's avatar Artem Bityutskiy Committed by David Woodhouse

mtd: introduce mtd_unlock interface

Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 7799f9ac
...@@ -838,7 +838,7 @@ static int mtdchar_ioctl(struct file *file, u_int cmd, u_long arg) ...@@ -838,7 +838,7 @@ static int mtdchar_ioctl(struct file *file, u_int cmd, u_long arg)
if (!mtd->unlock) if (!mtd->unlock)
ret = -EOPNOTSUPP; ret = -EOPNOTSUPP;
else else
ret = mtd->unlock(mtd, einfo.start, einfo.length); ret = mtd_unlock(mtd, einfo.start, einfo.length);
break; break;
} }
......
...@@ -596,7 +596,7 @@ static int concat_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) ...@@ -596,7 +596,7 @@ static int concat_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
size = len; size = len;
if (subdev->unlock) { if (subdev->unlock) {
err = subdev->unlock(subdev, ofs, size); err = mtd_unlock(subdev, ofs, size);
if (err) if (err)
break; break;
} else } else
......
...@@ -340,7 +340,7 @@ int add_mtd_device(struct mtd_info *mtd) ...@@ -340,7 +340,7 @@ int add_mtd_device(struct mtd_info *mtd)
/* Some chips always power up locked. Unlock them now */ /* Some chips always power up locked. Unlock them now */
if ((mtd->flags & MTD_WRITEABLE) if ((mtd->flags & MTD_WRITEABLE)
&& (mtd->flags & MTD_POWERUP_LOCK) && mtd->unlock) { && (mtd->flags & MTD_POWERUP_LOCK) && mtd->unlock) {
if (mtd->unlock(mtd, 0, mtd->size)) if (mtd_unlock(mtd, 0, mtd->size))
printk(KERN_WARNING printk(KERN_WARNING
"%s: unlock failed, writes may not work\n", "%s: unlock failed, writes may not work\n",
mtd->name); mtd->name);
......
...@@ -287,7 +287,7 @@ static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) ...@@ -287,7 +287,7 @@ static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
struct mtd_part *part = PART(mtd); struct mtd_part *part = PART(mtd);
if ((len + ofs) > mtd->size) if ((len + ofs) > mtd->size)
return -EINVAL; return -EINVAL;
return part->master->unlock(part->master, ofs + part->offset, len); return mtd_unlock(part->master, ofs + part->offset, len);
} }
static int part_is_locked(struct mtd_info *mtd, loff_t ofs, uint64_t len) static int part_is_locked(struct mtd_info *mtd, loff_t ofs, uint64_t len)
......
...@@ -208,13 +208,13 @@ struct mtd_info { ...@@ -208,13 +208,13 @@ struct mtd_info {
unsigned long count, loff_t to, size_t *retlen); unsigned long count, loff_t to, size_t *retlen);
void (*sync) (struct mtd_info *mtd); void (*sync) (struct mtd_info *mtd);
int (*lock) (struct mtd_info *mtd, loff_t ofs, uint64_t len); int (*lock) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
int (*unlock) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
/* Backing device capabilities for this device /* Backing device capabilities for this device
* - provides mmap capabilities * - provides mmap capabilities
*/ */
struct backing_dev_info *backing_dev_info; struct backing_dev_info *backing_dev_info;
int (*unlock) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
int (*is_locked) (struct mtd_info *mtd, loff_t ofs, uint64_t len); int (*is_locked) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
/* Power Management functions */ /* Power Management functions */
...@@ -389,6 +389,11 @@ static inline int mtd_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len) ...@@ -389,6 +389,11 @@ static inline int mtd_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
return mtd->lock(mtd, ofs, len); return mtd->lock(mtd, ofs, len);
} }
static inline int mtd_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
{
return mtd->unlock(mtd, ofs, len);
}
static inline struct mtd_info *dev_to_mtd(struct device *dev) static inline struct mtd_info *dev_to_mtd(struct device *dev)
{ {
return dev ? dev_get_drvdata(dev) : NULL; return dev ? dev_get_drvdata(dev) : NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment