Re: [PATCH v4 00/15] Update for QCOM NAND driver

Abhishek Sahu
2018-07-03T03:30:11Z

On 2018-07-01 23:39, Miquel Raynal wrote:
> Hi Abhishek,
>
> Abhishek Sahu <absahu@codeaurora.org> wrote on Wed, 20 Jun 2018
> 12:57:27 +0530:
>
>> * v4:
>>
>> 1. Added patch to make other ECC configurations function static.
>> 2. Clubbed the DT update patches.
>> 3. Removed the bad block related patch. Discussion is going on
>> related with for proper solution so planning to submit separate
>> patch series for all bad block related changes.
>> 4. Made the single codeword raw read function and used the same
>> for raw page read.
>> 5. Changes in erased codeword detection to raw read function.
>>
>> * v3:
>>
>> 1. Addressed all review comments in v2.
>> 2. Added patch for removing redundant nand-ecc-step-size DT property.
>> 3. Renamed ECC configuration setup function with minor code changes.
>> 4. Modified comments and commit message for few patches.
>>
>> * v2:
>>
>> 1. Addressed all review comments in v1.
>> 1. Make the generic helper function for NAND ECC parameters setup
>> and used this helper function for QCOM and Denali nand driver
>> for ECC setup.
>> 2. Modified commit message for some of the patches and added more
>> comments.
>> 3. Added new patch for fixing ‘return 0’ for raw read.
>> 4. Removed the read last codeword part for nand oob write.
>> 5. Reorganized bad block check function and removed the
>> read_last_cw function completely.
>>
>> * v1:
>>
>> This patch series mainly deals with error handling and erased page
>> bitflip detection for QCOM NAND driver.
>>
>> 1. The error handling was missing for some of the cases so fixed
>> the same.
>>
>> 2. Add the support for taking ECC strength from ONFI parameter.
>> The earlier QCOM boards were coming with 4-bit ECC chip but
>> now the same boards are coming with 8-bit ECC chip since the
>> earlier 4-bit parts are obsolete from some vendors.
>>
>> 3. We got few issues related with NAND erased page bitflips. The
>> QCOM NAND controller can’t detect the bitflip in completely erased
>> page so added the support to detect the same. It implemented the
>> logic mentioned in patch [1] which didn’t go in mainline and later
>> the generic functions were provided [2] to count the number of
>> bitflips and make all 0xff. This patch series did some optimization
>> logic to prevent the unnecessary full page raw read and data copy
>> from QCOM NAND controller to DMA.
>>
>> 4. Following are the testing done for these patches in QCOM IPQ8074
>> HK01 (4-bit and 8-bit ECC chip) and IPQ806x AP148 boards.
>> a. Run all mtd test and check if it passes
>> b. Introduce custom bitflips in erased page and check if it
>> returns no error/EUCLEAN/EBADMSG depending upon number of
>> bitflips and position.
>> c. Introduce failure condition for operational failure and
>> check if it detects the same.
>>
>> [1]: https://patchwork.ozlabs.org/patch/328994/
>> [2]: https://patchwork.ozlabs.org/patch/509970/
>>
>> Abhishek Sahu (15):
>> mtd: rawnand: helper function for setting up ECC configuration
>> mtd: rawnand: denali: use helper function for ecc setup
>> dt-bindings: qcom_nandc: update for ECC strength and step size
>> mtd: rawnand: qcom: remove dt property nand-ecc-step-size
>> mtd: rawnand: qcom: use the ecc strength from device parameter
>> mtd: rawnand: qcom: wait for desc completion in all BAM channels
>> mtd: rawnand: qcom: erased page detection for uncorrectable errors
>> only
>> mtd: rawnand: qcom: fix null pointer access for erased page
>> detection
>> mtd: rawnand: qcom: parse read errors for read oob also
>> mtd: rawnand: qcom: modify write_oob to remove read codeword part
>> mtd: rawnand: qcom: fix return value for raw page read
>> mtd: rawnand: qcom: check for operation errors in case of raw read
>> mtd: rawnand: qcom: code reorganization for raw read
>> mtd: rawnand: qcom: erased page bitflips detection
>> mtd: rawnand: provide only single helper function for ECC conf
>>
>> .../devicetree/bindings/mtd/qcom_nandc.txt | 7 +-
>> drivers/mtd/nand/raw/denali.c | 30 +-
>> drivers/mtd/nand/raw/nand_base.c | 72 ++-
>> drivers/mtd/nand/raw/qcom_nandc.c | 491
>> ++++++++++++++-------
>> include/linux/mtd/rawnand.h | 10 +-
>> 5 files changed, 380 insertions(+), 230 deletions(-)
>>
>
> Thank you very much for the series and the changes you have done.
>

Thanks a lot Miquel for your great support and help in
reviewing and merging these patches :-)

> Applied all patches but "erased page bitflips detection" because I'm
> waiting for one small modification on this one.

Sure. I will send that updated patch.

Regards,
Abhishek