[PATCH 6/9] mtd: nand: qcom: support for checking read errors for last codeword

Abhishek Sahu absahu at codeaurora.org
Sun Apr 22 23:08:27 PDT 2018


On 2018-04-22 21:45, Miquel Raynal wrote:
> Hi Abhishek,
> 
> On Thu, 12 Apr 2018 12:47:42 +0530, Abhishek Sahu
> <absahu at codeaurora.org> wrote:
> 
>> On 2018-04-10 15:35, Miquel Raynal wrote:
>> > Hi Abhishek,
>> > > On Wed,  4 Apr 2018 18:12:22 +0530, Abhishek Sahu
>> > <absahu at codeaurora.org> wrote:
>> > >> Add boolean function argument in parse_read_errors to identify
>> >> whether the read error has been called for complete page read or
>> >> only last codeword read. This will help in subsequent patches to
>> >> detect ECC errors in case of last codeword read.
>> > > Can you explain when this happen: "last codeword read"? I don't see the
>> > use case.
>> 
>>   Hi Miquel,
>> 
>>   This is happening inside qcom_nandc_write_oob where the last subpage
>>   data is being copied first.
> 
> I still don't understand the use case.
> 
> What to you mean last 'subpage copied first'?
> 

  Hi Miquel,

  According to current implementation

  QCOM NAND layout protect 16 bytes of available oob with ECC also.
  When ecc->write_oob (qcom_nandc_write_oob) is being called
  then it can't update just OOB bytes.

  It needs to first read the last subpage which includes old
  OOB bytes. Then it updates the old OOB bytes with new one
  and then again write the data back.

  You can refer function comment of qcom_nandc_write_oob
  for the same.

  But, to me, it looks like this read is unnecessary since
  all the other bytes will be 0xff only. Require your help
  in confirming the same and then I will remove that read
  last subpage implementation.

  Thanks,
  Abhishek

>> 
>>     host->use_ecc = true;
>> 
>>     clear_bam_transaction(nandc);
>>     ret = copy_last_cw(host, page);
>>     if (ret)
>>         return ret;
>> 
>>   you can refer function comment of qcom_nandc_write_oob  for more
>>   detail.
>> 
>>   Thanks,
>>   Abhishek



More information about the linux-mtd mailing list