On Tue, Oct 15, 2013 at 11:19:52AM +0530, Pekon Gupta wrote: > Autodetection of NAND device bus-width was added in generic NAND driver as > part of following commit > commit 64b37b2a63eb2f80b65c7185f0013f8ffc637ae3 > Author: Matthieu CASTET <matthieu.castet@xxxxxxxxxx> > AuthorDate: 2012-11-06 > mtd: nand: add NAND_BUSWIDTH_AUTO to autodetect bus width > This patch enables this feature for OMAP2 NAND driver > > Signed-off-by: Pekon Gupta <pekon@xxxxxx> > --- > drivers/mtd/nand/omap2.c | 29 ++++++++++++++++------------- > 1 file changed, 16 insertions(+), 13 deletions(-) > > diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c > index 5596368..57a3f51 100644 > --- a/drivers/mtd/nand/omap2.c > +++ b/drivers/mtd/nand/omap2.c [...] > @@ -1904,6 +1903,21 @@ static int omap_nand_probe(struct platform_device *pdev) > nand_chip->chip_delay = 50; > } > > + /* scan for NAND device connected to chip controller */ > + if (nand_scan_ident(mtd, 1, NULL)) { > + err = -ENXIO; > + goto out_release_mem_region; > + } > + if ((nand_chip->options & NAND_BUSWIDTH_16) != > + (pdata->devsize & NAND_BUSWIDTH_16)) { > + pr_err("%s: detected %s device but driver configured for %s\n", > + DRIVER_NAME, > + (nand_chip->options & NAND_BUSWIDTH_16) ? "x16" : "x8", > + (pdata->devsize & NAND_BUSWIDTH_16) ? "x16" : "x8"); I'm not sure on the policy choice here; if you're using BUSWIDTH_AUTO, do you even want to try to configure the buswidth by platform data? You're not really getting the full use out of NAND_BUSWIDTH_AUTO because the platform data has to guess the same buswidth that nand_base.c determines. This is worse than the previous behavior, in which you would try both buswidths if the specified type failed. IOW, what are you trying to achieve with auto-buswidth? Automatic determination of the buswidth or just automatic validation? What do you achieve with platform data's selection of buswidth? Specification of the buswidth or just a hint? Do the goals conflict? Perhaps you can just warn, and not error out if the two selections don't match? Or maybe you really wanted to replace the platform data selection mechanism entirely with auto-buswidth? > + err = -EINVAL; > + goto out_release_mem_region; > + } > + > switch (pdata->xfer_type) { > case NAND_OMAP_PREFETCH_POLLED: > nand_chip->read_buf = omap_read_buf_pref; [...] Brian -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html