mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-29 15:14:18 +08:00
mtd: introduce mtd_has_oob helper
We are working in the direction of making sure that MTD clients to not use 'mtd->func' pointers directly. In some places we want to know if OOB operations are supported by an MTD device. Introduce 'mtd_has_oob()' helper for these purposes. 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
33c87b4a2c
commit
fc002e3c32
@ -1004,7 +1004,7 @@ static int mtdchar_ioctl(struct file *file, u_int cmd, u_long arg)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case MTD_FILE_MODE_RAW:
|
case MTD_FILE_MODE_RAW:
|
||||||
if (!mtd->read_oob || !mtd->write_oob)
|
if (!mtd_has_oob(mtd))
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
mfi->mode = arg;
|
mfi->mode = arg;
|
||||||
|
|
||||||
|
@ -645,8 +645,8 @@ int sm_get_media_info(struct sm_ftl *ftl, struct mtd_info *mtd)
|
|||||||
if (!ftl->smallpagenand && mtd->oobsize < SM_OOB_SIZE)
|
if (!ftl->smallpagenand && mtd->oobsize < SM_OOB_SIZE)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
/* We use these functions for IO */
|
/* We use OOB */
|
||||||
if (!mtd->read_oob || !mtd->write_oob)
|
if (!mtd_has_oob(mtd))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
/* Find geometry information */
|
/* Find geometry information */
|
||||||
|
@ -454,6 +454,11 @@ static inline uint32_t mtd_mod_by_ws(uint64_t sz, struct mtd_info *mtd)
|
|||||||
return do_div(sz, mtd->writesize);
|
return do_div(sz, mtd->writesize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int mtd_has_oob(const struct mtd_info *mtd)
|
||||||
|
{
|
||||||
|
return mtd->read_oob && mtd->write_oob;
|
||||||
|
}
|
||||||
|
|
||||||
/* Kernel-side ioctl definitions */
|
/* Kernel-side ioctl definitions */
|
||||||
|
|
||||||
struct mtd_partition;
|
struct mtd_partition;
|
||||||
|
Loading…
Reference in New Issue
Block a user