[PATCH v11 04/10] mtd: nand: omap: use DT specified bus-width only for scanning NAND device
ezequiel.garcia at free-electrons.com
Thu Oct 24 14:27:15 PDT 2013
On Thu, Oct 24, 2013 at 06:20:20PM +0530, Pekon Gupta wrote:
> This patch:
> - calls nand_scan_ident() using bus-width as passed by DT
> - removes double calls to nand_scan_ident(), incase first call fails
> then omap_nand_probe just returns error.
> Signed-off-by: Pekon Gupta <pekon at ti.com>
> drivers/mtd/nand/omap2.c | 21 +++++++++------------
> 1 file changed, 9 insertions(+), 12 deletions(-)
> diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
> index 5596368..f464321 100644
> --- a/drivers/mtd/nand/omap2.c
> +++ b/drivers/mtd/nand/omap2.c
> @@ -1856,7 +1856,6 @@ static int omap_nand_probe(struct platform_device *pdev)
> mtd->name = dev_name(&pdev->dev);
> mtd->owner = THIS_MODULE;
> nand_chip = &info->nand;
> - nand_chip->options = pdata->devsize;
> nand_chip->options |= NAND_SKIP_BBTSCAN;
> #ifdef CONFIG_MTD_NAND_OMAP_BCH
> info->of_node = pdata->of_node;
> @@ -1904,6 +1903,15 @@ static int omap_nand_probe(struct platform_device *pdev)
> nand_chip->chip_delay = 50;
> + /* scan NAND device connected to chip controller */
> + nand_chip->options |= pdata->devsize & NAND_BUSWIDTH_16;
Hm.. this only works if the device is listed in nand_flash_ids array,
so that ONFI detection is not used. To make ONFI detection work I think you
need to do as Brian suggested and use NAND_BUSWIDTH_AUTO.
(Odd: why is there no current user of that auto-width option?)
Anyway, I really think we should fix this now and independently
of the evolution of this ECC DT binding discussion.
That way you can keep sending a smaller ECC DT binding patchset and
make reviewers focus on what's really important in each case.
I have a few fixes (based on your work) and I'll send them now, after
I complete the tests. We can continue our discussion there.
Ezequiel García, Free Electrons
Embedded Linux, Kernel and Android Engineering
More information about the linux-mtd