mtd: introduce mtd_unlock interface
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
This commit is contained in:
parent
7799f9ac8d
commit
b66005cd3e
|
@ -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)
|
||||||
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)
|
||||||
/* 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)
|
||||||
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 {
|
||||||
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)
|
||||||
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;
|
||||||
|
|
Loading…
Reference in New Issue