• Brian Norris's avatar
    mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces · 1fbb938d
    Brian Norris authored
    New NAND controllers can perform read/write via HW engines which don't expose
    OOB data in their DMA mode. To reflect this, we should rework the nand_chip /
    nand_ecc_ctrl interfaces that assume that drivers will always read/write OOB
    data in the nand_chip.oob_poi buffer. A better interface includes a boolean
    argument that explicitly tells the callee when OOB data is requested by the
    calling layer (for reading/writing to/from nand_chip.oob_poi).
    
    This patch adds the 'oob_required' parameter to each relevant {read,write}_page
    interface; all 'oob_required' parameters are left unused for now. The next
    patch will set the parameter properly in the nand_base.c callers, and follow-up
    patches will make use of 'oob_required' in some of the callee functions.
    
    Note that currently, there is no harm in ignoring the 'oob_required' parameter
    and *always* utilizing nand_chip.oob_poi, but there can be
    performance/complexity/design benefits from avoiding filling oob_poi in the
    common case. I will try to implement this for some drivers which can be ported
    easily.
    
    Note: I couldn't compile-test all of these easily, as some had ARCH
    dependencies.
    
    [dwmw2: Merge later 1/0 vs. true/false cleanup]
    Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
    Reviewed-by: default avatarShmulik Ladkani <shmulik.ladkani@gmail.com>
    Acked-by: default avatarJiandong Zheng <jdzheng@broadcom.com>
    Acked-by: default avatarMike Dunn <mikedunn@newsguy.com>
    Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
    1fbb938d
cafe_nand.c 24.6 KB