• A
    mtd: rawnand: qcom: erased page detection for uncorrectable errors only · 8eab7214
    Abhishek Sahu 提交于
    Following is the flow in the HW if controller tries to read erased
    page:
    
    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: NAbhishek Sahu <absahu@codeaurora.org>
    Signed-off-by: NMiquel Raynal <miquel.raynal@bootlin.com>
    8eab7214
qcom_nandc.c 80.4 KB