Commit 7799f9ac authored by Artem Bityutskiy's avatar Artem Bityutskiy Committed by David Woodhouse

mtd: introduce mtd_lock interface

Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 85f2f2a8
...@@ -205,7 +205,7 @@ scb2_flash_remove(struct pci_dev *dev) ...@@ -205,7 +205,7 @@ scb2_flash_remove(struct pci_dev *dev)
/* disable flash writes */ /* disable flash writes */
if (scb2_mtd->lock) if (scb2_mtd->lock)
scb2_mtd->lock(scb2_mtd, 0, scb2_mtd->size); mtd_lock(scb2_mtd, 0, scb2_mtd->size);
mtd_device_unregister(scb2_mtd); mtd_device_unregister(scb2_mtd);
map_destroy(scb2_mtd); map_destroy(scb2_mtd);
......
...@@ -824,7 +824,7 @@ static int mtdchar_ioctl(struct file *file, u_int cmd, u_long arg) ...@@ -824,7 +824,7 @@ static int mtdchar_ioctl(struct file *file, u_int cmd, u_long arg)
if (!mtd->lock) if (!mtd->lock)
ret = -EOPNOTSUPP; ret = -EOPNOTSUPP;
else else
ret = mtd->lock(mtd, einfo.start, einfo.length); ret = mtd_lock(mtd, einfo.start, einfo.length);
break; break;
} }
......
...@@ -556,7 +556,7 @@ static int concat_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len) ...@@ -556,7 +556,7 @@ static int concat_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
size = len; size = len;
if (subdev->lock) { if (subdev->lock) {
err = subdev->lock(subdev, ofs, size); err = mtd_lock(subdev, ofs, size);
if (err) if (err)
break; break;
} else } else
......
...@@ -279,7 +279,7 @@ static int part_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len) ...@@ -279,7 +279,7 @@ static int part_lock(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->lock(part->master, ofs + part->offset, len); return mtd_lock(part->master, ofs + part->offset, len);
} }
static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
......
...@@ -207,14 +207,13 @@ struct mtd_info { ...@@ -207,14 +207,13 @@ struct mtd_info {
int (*writev) (struct mtd_info *mtd, const struct kvec *vecs, int (*writev) (struct mtd_info *mtd, const struct kvec *vecs,
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);
/* 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;
/* Chip-supported device locking */
int (*lock) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
int (*unlock) (struct mtd_info *mtd, loff_t ofs, uint64_t len); 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);
...@@ -384,6 +383,12 @@ static inline void mtd_sync(struct mtd_info *mtd) ...@@ -384,6 +383,12 @@ static inline void mtd_sync(struct mtd_info *mtd)
mtd->sync(mtd); mtd->sync(mtd);
} }
/* Chip-supported device locking */
static inline int mtd_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
{
return mtd->lock(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