Re: [PATCH v2 06/14] mtd: rawnand: qcom: erased page detection for uncorrectable errors only

Abhishek Sahu
2018-05-22T14:10:25Z

On 2018-05-22 12:34, Miquel Raynal wrote:
> Hi Abhishek,
>
> On Thu, 3 May 2018 17:50:33 +0530, Abhishek Sahu
> <absahu@codeaurora.org> wrote:
>
>> Following is the flow in the HW if controller tries to read erased
>> page
>
> Nit: ^ missing ':'
>

Sure. I will fix this.

>>
>> 1. First ECC uncorrectable error will be generated from ECC engine
>> since ECC engine first calculates the ECC with all 0xff and match
>> the calculated ECC with ECC code in OOB (which is again all 0xff).
>> 2. After getting ECC error, erased CW detection logic will be
>> applied which is different for BCH and RS ECC
>> a. For BCH, HW checks if all the bytes in page are 0xff and then
>> it updates the status in separate register
>> NAND_ERASED_CW_DETECT_STATUS.
>> b. For RS ECC, the HW reports the same error when reading an
>> erased CW, but it notifies that it is an erased CW by
>> placing special characters at certain offsets in the
>> buffer.
>>
>> So the erased CW detect status should be checked only if ECC engine
>> generated the uncorrectable error.
>>
>> Currently for all other operational errors also (like TIMEOUT, MPU
>> errors, etc.), the erased CW detect logic is being applied so fix this
>> and return EIO for other operational errors.
>>
>> Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
>> ---
>> * Changes from v1:
>>
>> 1. Added more detail in commit message
>> 2. Added comment before each if/else
>
> Thanks for that, it's much more ease to review :)

Thanks Miquel for your review.

Regards,
Abhishek

>
>> 3. Removed redundant check for BS_UNCORRECTABLE_BIT
>>
>> drivers/mtd/nand/raw/qcom_nandc.c | 65
>> ++++++++++++++++++++++++++-------------
>> 1 file changed, 43 insertions(+), 22 deletions(-)
>>
>
> Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
>
> Thanks,
> Miquèl