Hello, The first 6 patches are just miscellaneous changes, that do not bring functional changes but clarify a few core areas. Patches 7 to 10 change the NAND operations used to read ONFI/JEDEC parameter pages. I expect all controllers to support it now. Patch 11 add new nand_monolithic_read/write_page_raw() helpers, that could be used by drivers which are "constrained". Finally, patches 12 and 13 soften the rules so that the hooks linked to the above helpers are not overwritten by the core or NAND chip drivers. This series is needed in order to support controllers like Arasan's. Thanks, Miquèl Changes in v3: * s/NAND_USE_DMA_BUFFER/NAND_USES_DMA/ as suggested by Boris. * Collected Reviewed-by tags. * Enhance the kernel doc of the monolithic helpers. * Added a nand_check_supported_op() helper. * Add a check_only argument to the nand_read_data_op() helper so that we can check if it is supported by the controller driver (this uses the nand_check_supported_op() helper). * Enhance the ONFI/JEDEC parameter page discoveries: in case the driver does not support ->exec_op(), we still use the same behavior as before (reading data bytes only), otherwise we check if reading data bytes is supported or not. If it is not, then we fallback to a CHANGE READ COLUMN operation. Changes in v2: * Fixed the two wrong conversions of flag values from 8-bit digits into BIT() macros. * Dropped "Help supporting controllers that are not able to split operations". Instead, decided on the fly for the read_param_page() uses (ONFI and JEDEC discovery) and wrote separate helpers for read/write_page_raw() (the Arasan driver will use them). * Prevent the core and NAND chip drivers to overload the ecc->read/write_page_raw() hooks. * Added Reviewed-by tags. Miquel Raynal (13): mtd: rawnand: Translate obscure bitfields into readable macros mtd: rawnand: Reorder the nand_chip->options flags mtd: rawnand: Rename a NAND chip option mtd: rawnand: Fix comments about the use of bufpoi mtd: rawnand: Rename the use_bufpoi variables mtd: rawnand: Avoid indirect access to ->data_buf() mtd: rawnand: Add a helper to check supported operations mtd: rawnand: Give the possibility to verify a read operation is supported mtd: rawnand: onfi: Adapt the parameter page read to constraint controllers mtd: rawnand: jedec: Adapt the parameter page read to constraint controllers mtd: rawnand: Expose monolithic read/write_page_raw() helpers mtd: rawnand: Allow controllers to overload soft ECC hooks mtd: rawnand: micron: Allow controllers to overload raw accessors drivers/mtd/nand/raw/atmel/nand-controller.c | 2 +- drivers/mtd/nand/raw/brcmnand/brcmnand.c | 2 +- drivers/mtd/nand/raw/denali.c | 2 +- drivers/mtd/nand/raw/fsmc_nand.c | 2 +- drivers/mtd/nand/raw/internals.h | 9 + drivers/mtd/nand/raw/marvell_nand.c | 4 +- drivers/mtd/nand/raw/meson_nand.c | 2 +- drivers/mtd/nand/raw/mtk_nand.c | 2 +- drivers/mtd/nand/raw/nand_base.c | 189 ++++++++++++++----- drivers/mtd/nand/raw/nand_jedec.c | 34 ++-- drivers/mtd/nand/raw/nand_legacy.c | 8 +- drivers/mtd/nand/raw/nand_micron.c | 12 +- drivers/mtd/nand/raw/nand_onfi.c | 20 +- drivers/mtd/nand/raw/qcom_nandc.c | 2 +- drivers/mtd/nand/raw/stm32_fmc2_nand.c | 2 +- drivers/mtd/nand/raw/sunxi_nand.c | 2 +- drivers/mtd/nand/raw/tango_nand.c | 2 +- drivers/mtd/nand/raw/tegra_nand.c | 2 +- include/linux/mtd/rawnand.h | 99 +++++----- 19 files changed, 267 insertions(+), 130 deletions(-) -- 2.20.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/