On Thu, 31 Jan 2019 14:24:15 +0000 Rasmus Villemoes <rasmus.villemoes@xxxxxxxxx> wrote: > I'm in the process of upgrading a board from an old 3.14-based kernel > with quite a few out-of-tree patches to one based on 4.19, hopefully > with much fewer such patches. > > In order to even get the new kernel to mount the existing root > filesystem, I've had to apply the hacks below: > > --- a/drivers/mtd/nand/raw/nand_base.c > +++ b/drivers/mtd/nand/raw/nand_base.c > @@ -6657,6 +6657,11 @@ static int nand_scan_tail(struct mtd_info *mtd) > pr_warn("WARNING: %s: the ECC used on your system is too > weak compared to the one required by the NAND chip\n", > mtd->name); > > + if (IS_ENABLED(CONFIG_ML300PCM31)) { > + pr_warn("setting NAND_NO_SUBPAGE_WRITE bit\n"); > + chip->ecc.write_subpage = NULL; > + chip->options |= NAND_NO_SUBPAGE_WRITE; > + } > /* Allow subpage writes up to ecc.steps. Not possible for MLC > flash */ > if (!(chip->options & NAND_NO_SUBPAGE_WRITE) && nand_is_slc(chip)) { > switch (ecc->steps) { > @@ -6681,8 +6686,12 @@ static int nand_scan_tail(struct mtd_info *mtd) > /* Large page NAND with SOFT_ECC should support subpage reads */ > switch (ecc->mode) { > case NAND_ECC_SOFT: > - if (chip->page_shift > 9) > - chip->options |= NAND_SUBPAGE_READ; > + if (chip->page_shift > 9) { > + if (IS_ENABLED(CONFIG_ML300PCM31)) > + pr_warn("setting of NAND_SUBPAGE_READ > bit has been patched out\n"); > + else > + chip->options |= NAND_SUBPAGE_READ; > + } > break; > > Without the latter, I get > > [ 0.833134] fsl,elbc-fcm-nand fff00000.nand: fsl_elbc_cmdfunc: > error, unsupported command 0x5. > [ 0.841822] fsl,elbc-fcm-nand fff00000.nand: read_buf beyond end > of buffer (14 requested, 0 available) For that part of the problem, you should consider converting the driver to ->exec_op(). ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/