All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeroen Hofstee <jeroen@myspectrum.nl>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] nand: fix reading after switching ecc
Date: Tue, 14 Jan 2014 21:11:10 +0100	[thread overview]
Message-ID: <52D599DE.1000806@myspectrum.nl> (raw)
In-Reply-To: <1389637125.24905.32.camel@snotra.buserror.net>

Hello Scott, Pekon,

On 01/13/2014 07:18 PM, Scott Wood wrote:
>
>>
>>> The omap_gpmc allows switching ecc at runtime. Since
>>> the NAND_SUBPAGE_READ flag is only set, it is kept when
>>> switching to hw ecc, which is not correct. This leads to
>>> calling chip->ecc.read_subpage which is not a valid
>>> pointer. Therefore also clear the flag so reading in
>>> hw mode works again.
>>>
>>> Cc: Scott Wood <scottwood@freescale.com>
>>> Cc: Pekon Gupta <pekon@ti.com>
>>> Cc: Nikita Kiryanov <nikita@compulab.co.il>
>>> Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
>>> ---
>>> drivers/mtd/nand/nand_base.c | 2 ++
>>> 1 file changed, 2 insertions(+)
>>>
>>> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
>>> index 1ce55fd..0762a19 100644
>>> --- a/drivers/mtd/nand/nand_base.c
>>> +++ b/drivers/mtd/nand/nand_base.c
>>> @@ -3354,6 +3354,8 @@ int nand_scan_tail(struct mtd_info *mtd)
>>> 	/* Large page NAND with SOFT_ECC should support subpage reads */
>>> 	if ((chip->ecc.mode == NAND_ECC_SOFT) && (chip->page_shift > 9))
>>> 		chip->options |= NAND_SUBPAGE_READ;
>>> +	else
>>> +		chip->options &= ~NAND_SUBPAGE_READ;
> NACK; this breaks NAND_SUBPAGE_READ with hardware ECC for drivers that
> support it.

There is something to argue in favour of that in general, but there are
no such drivers in u-boot at the moment though (well at least not doing 
it on
purpose). I don't mind moving it to gpmc, but for correctness, it 
doesn't break
things at the moment...

>> I don't think it's good to add OMAP specific changes to nand_base.c.
>> It's better if you can add this as part of omap_select_ecc_scheme() in omap_gpmc.c
> Yes, clear it from the OMAP switching code if OMAP can't do subpage
> reads with hardware ECC.

The gpmc will fail in hw ecc mode when trying to do subpage reads. Pekon any
suggestion for the elm mode, or should this bit just be cleared 
unconditionally?

Regards,
Jeroen

  reply	other threads:[~2014-01-14 20:11 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-11 13:39 [U-Boot] [PATCH] nand: fix reading after switching ecc Jeroen Hofstee
2014-01-12  9:27 ` Nikita Kiryanov
2014-01-13  8:29 ` Gupta, Pekon
2014-01-13 18:18   ` Scott Wood
2014-01-14 20:11     ` Jeroen Hofstee [this message]
2014-01-14 20:21       ` Scott Wood
2014-01-14 20:38         ` Jeroen Hofstee
2014-01-14 20:41           ` Scott Wood
2014-01-14 20:56             ` Jeroen Hofstee
2014-01-14 21:05               ` Scott Wood
2014-01-14 21:15                 ` Jeroen Hofstee
2014-01-14 21:17                   ` Scott Wood
2014-01-15  5:56       ` Gupta, Pekon
2014-01-15 16:58 ` [U-Boot] [PATCH v2] nand, gpmc: " Jeroen Hofstee
2014-01-17 13:06   ` [U-Boot] [U-Boot, " Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52D599DE.1000806@myspectrum.nl \
    --to=jeroen@myspectrum.nl \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.