mtd: do not use mtd->read_*_prot_reg directly
Instead, call 'mtd_read_*_prot_info()' and check for -EOPNOTSUPP. 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
87e858a97e
commit
b6de3d6cb6
2 changed files with 14 additions and 8 deletions
|
@ -366,20 +366,22 @@ static void mtdchar_erase_callback (struct erase_info *instr)
|
|||
static int otp_select_filemode(struct mtd_file_info *mfi, int mode)
|
||||
{
|
||||
struct mtd_info *mtd = mfi->mtd;
|
||||
size_t retlen;
|
||||
int ret = 0;
|
||||
|
||||
/*
|
||||
* Make a fake call to mtd_read_fact_prot_reg() to check if OTP
|
||||
* operations are supported.
|
||||
*/
|
||||
if (mtd_read_fact_prot_reg(mtd, -1, -1, &retlen, NULL) == -EOPNOTSUPP)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
switch (mode) {
|
||||
case MTD_OTP_FACTORY:
|
||||
if (!mtd->read_fact_prot_reg)
|
||||
ret = -EOPNOTSUPP;
|
||||
else
|
||||
mfi->mode = MTD_FILE_MODE_OTP_FACTORY;
|
||||
mfi->mode = MTD_FILE_MODE_OTP_FACTORY;
|
||||
break;
|
||||
case MTD_OTP_USER:
|
||||
if (!mtd->read_fact_prot_reg)
|
||||
ret = -EOPNOTSUPP;
|
||||
else
|
||||
mfi->mode = MTD_FILE_MODE_OTP_USER;
|
||||
mfi->mode = MTD_FILE_MODE_OTP_USER;
|
||||
break;
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
|
|
|
@ -352,6 +352,8 @@ static inline int mtd_read_fact_prot_reg(struct mtd_info *mtd, loff_t from,
|
|||
u_char *buf)
|
||||
{
|
||||
*retlen = 0;
|
||||
if (!mtd->read_fact_prot_reg)
|
||||
return -EOPNOTSUPP;
|
||||
return mtd->read_fact_prot_reg(mtd, from, len, retlen, buf);
|
||||
}
|
||||
|
||||
|
@ -369,6 +371,8 @@ static inline int mtd_read_user_prot_reg(struct mtd_info *mtd, loff_t from,
|
|||
u_char *buf)
|
||||
{
|
||||
*retlen = 0;
|
||||
if (!mtd->read_user_prot_reg)
|
||||
return -EOPNOTSUPP;
|
||||
return mtd->read_user_prot_reg(mtd, from, len, retlen, buf);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue