• Pekon Gupta's avatar
    mtd: nand: omap: ecc.correct: omap_elm_correct_data: fix programmed-page bit-flip correction logic · 13fbe064
    Pekon Gupta authored
    This patch updates following checks when bit-flips are detected by ELM:
    
     - Do not evaluate bit-flips when un-correctable bit-flips is reported by ELM,
       because as per [1] when ELM reports an un-correctable bit-flips,
       'number of error' field in its ELM_LOCATION_STATUS register is also invalid.
    
     - Return with error-code '-EBADMSG' on detection of un-correctable bit-flip.
    
     - Return with error-code '-EBADMSG' when bit-flips position is outside current
       Sector and OOB area.
    
    [1] ELM IP spec Table-25 ELM_LOCATION_STATUS Register.
        ELM_LOCATION_STATUS[8] = ECC_CORRECTABLE: Error location process exit status
            0x0: ECC error location process failed.
                 Number of errors and error locations are invalid.
            0x1: all errors were successfully located.
                 Number of errors and error locations are valid.
    Tested-by: default avatarStefan Roese <sr@denx.de>
    Signed-off-by: default avatarPekon Gupta <pekon@ti.com>
    Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
    13fbe064
omap2.c 56.9 KB