• Brian Norris's avatar
    mtd: support reading OOB without ECC · c46f6483
    Brian Norris authored
    This fixes issues with `nanddump -n' and the MEMREADOOB[64] ioctls on
    hardware that performs error correction when reading only OOB data. A
    driver for such hardware needs to know when we're doing a RAW vs. a
    normal write, but mtd_do_read_oob does not pass such information to the
    lower layers (e.g., NAND). We should pass MTD_OOB_RAW or MTD_OOB_PLACE
    based on the MTD file mode.
    
    For now, most drivers can get away with just setting:
    
      chip->ecc.read_oob_raw = chip->ecc.read_oob
    
    This is done by default; but for systems that behave as described above,
    you must supply your own replacement function.
    
    This was tested with nandsim as well as on actual SLC NAND.
    Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
    Cc: Jim Quinlan <jim2101024@gmail.com>
    Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@intel.com>
    c46f6483
nand_base.c 91 KB