On Fri, 29 May 2020 13:13:14 +0200 Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > Warn the user if the parameters are wrong but basically it would mean > there is a serious issue in the NAND core. So no need to ever check > its output, let's make this helper return void. > > Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx> Reviewed-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx> > --- > drivers/mtd/nand/raw/internals.h | 8 ++++---- > drivers/mtd/nand/raw/nand_base.c | 6 ++---- > drivers/mtd/nand/raw/nand_timings.c | 18 ++++++++---------- > 3 files changed, 14 insertions(+), 18 deletions(-) > > diff --git a/drivers/mtd/nand/raw/internals.h b/drivers/mtd/nand/raw/internals.h > index 114c63a6a349..63c5af436901 100644 > --- a/drivers/mtd/nand/raw/internals.h > +++ b/drivers/mtd/nand/raw/internals.h > @@ -84,10 +84,10 @@ int nand_bbm_get_next_page(struct nand_chip *chip, int page); > int nand_markbad_bbm(struct nand_chip *chip, loff_t ofs); > int nand_erase_nand(struct nand_chip *chip, struct erase_info *instr, > int allowbbt); > -int onfi_fill_interface_config(struct nand_chip *chip, > - struct nand_interface_config *iface, > - enum nand_interface_type type, > - unsigned int timing_mode); > +void onfi_fill_interface_config(struct nand_chip *chip, > + struct nand_interface_config *iface, > + enum nand_interface_type type, > + unsigned int timing_mode); > unsigned int > onfi_find_closest_sdr_mode(const struct nand_sdr_timings *spec_timings); > int nand_get_features(struct nand_chip *chip, int addr, u8 *subfeature_param); > diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c > index 4fa18fb68d62..3bfd71d589cf 100644 > --- a/drivers/mtd/nand/raw/nand_base.c > +++ b/drivers/mtd/nand/raw/nand_base.c > @@ -1041,10 +1041,8 @@ static int nand_choose_interface_config(struct nand_chip *chip) > } > > for (mode = fls(modes) - 1; mode >= 0; mode--) { > - ret = onfi_fill_interface_config(chip, &chip->interface_config, > - NAND_SDR_IFACE, mode); > - if (ret) > - continue; > + onfi_fill_interface_config(chip, &chip->interface_config, > + NAND_SDR_IFACE, mode); > > /* > * Pass NAND_DATA_IFACE_CHECK_ONLY to only check if the > diff --git a/drivers/mtd/nand/raw/nand_timings.c b/drivers/mtd/nand/raw/nand_timings.c > index bf05b4bceaa0..1e22006c79ba 100644 > --- a/drivers/mtd/nand/raw/nand_timings.c > +++ b/drivers/mtd/nand/raw/nand_timings.c > @@ -347,18 +347,18 @@ onfi_find_closest_sdr_mode(const struct nand_sdr_timings *spec_timings) > * @type: The interface type > * @timing_mode: The ONFI timing mode > */ > -int onfi_fill_interface_config(struct nand_chip *chip, > - struct nand_interface_config *iface, > - enum nand_interface_type type, > - unsigned int timing_mode) > +void onfi_fill_interface_config(struct nand_chip *chip, > + struct nand_interface_config *iface, > + enum nand_interface_type type, > + unsigned int timing_mode) > { > struct onfi_params *onfi = chip->parameters.onfi; > > - if (type != NAND_SDR_IFACE) > - return -EINVAL; > + if (WARN_ON(type != NAND_SDR_IFACE)) > + return; > > - if (timing_mode >= ARRAY_SIZE(onfi_sdr_timings)) > - return -EINVAL; > + if (WARN_ON(timing_mode >= ARRAY_SIZE(onfi_sdr_timings))) > + return; > > *iface = onfi_sdr_timings[timing_mode]; > > @@ -378,6 +378,4 @@ int onfi_fill_interface_config(struct nand_chip *chip, > /* nanoseconds -> picoseconds */ > timings->tCCS_min = 1000UL * onfi->tCCS; > } > - > - return 0; > } ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/