• Brian Norris's avatar
    mtd: nand: fix off-by-one read retry mode counting · 28fa65e6
    Brian Norris authored
    A flash may support N read retry voltage threshold modes, numbered 0
    through N-1 (where mode 0 represents the initial state). However,
    nand_do_read_ops() tries to use mode 0 through N.
    
    This off-by-one error shows up, for instance, when using nanddump, and
    we have cycled through available modes:
    
        nand: setting READ RETRY mode 0
        nand: setting READ RETRY mode 1
        nand: setting READ RETRY mode 2
        nand: setting READ RETRY mode 3
        nand: setting READ RETRY mode 4
        nand: setting READ RETRY mode 5
        nand: setting READ RETRY mode 6
        nand: setting READ RETRY mode 7
        nand: setting READ RETRY mode 8
        libmtd: error!: cannot read 8192 bytes from mtd0 (eraseblock 20, offset 0)
                error 22 (Invalid argument)
        nanddump: error!: mtd_read
    
    Tested on Micron MT29F64G08CBCBBH1, with 8 retry modes.
    Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
    Acked-by: default avatarHuang Shijie <b32955@freescale.com>
    28fa65e6
nand_base.c 105 KB