mtd: introduce mtd_lock 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:
committed by
David Woodhouse
parent
85f2f2a809
commit
7799f9ac8d
@@ -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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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 {
|
|||||||
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)
|
|||||||
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;
|
||||||
|
Reference in New Issue
Block a user