On Sun, May 31, 2020 at 11:18 AM Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > > Hi Richard, > > This is the NAND PR for 5.8. > > I just updated it this morning to fix an issue reported by a build robot > in a !COMPILE_TEST driver due to some recent cleanup. > > Thanks, > Miquèl > > > The following changes since commit 6a8b55ed4056ea5559ebe4f6a4b247f627870d4c: > > Linux 5.7-rc3 (2020-04-26 13:51:02 -0700) > > are available in the Git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git tags/nand/for-5.8 > > for you to fetch changes up to 86f2b225adf4ecd2edfdc8541a7342645556ac3b: > > mtd: rawnand: Add an invalid ECC mode to discriminate with valid ones (2020-05-31 10:53:41 +0200) > > ---------------------------------------------------------------- > Raw NAND core changes: > * Stop using nand_release(), patched all drivers. > * Give more information about the ECC weakness when not matching the > chip's requirement. > * MAINTAINERS updates. > * Support emulated SLC mode on MLC NANDs. > * Support "constrained" controllers, adapt the core and ONFI/JEDEC > table parsing and Micron's code. > * Take check_only into account. > * Add an invalid ECC mode to discriminate with valid ones. > * Return an enum from of_get_nand_ecc_algo(). > * Drop OOB_FIRST placement scheme. > * Introduce nand_extract_bits(). > * Ensure a consistent bitflips numbering. > * BCH lib: > - Allow easy bit swapping. > - Rework a little bit the exported function names. > * Fix nand_gpio_waitrdy(). > * Propage CS selection to sub operations. > * Add a NAND_NO_BBM_QUIRK flag. > * Give the possibility to verify a read operation is supported. > * Add a helper to check supported operations. > * Avoid indirect access to ->data_buf(). > * Rename the use_bufpoi variables. > * Fix comments about the use of bufpoi. > * Rename a NAND chip option. > * Reorder the nand_chip->options flags. > * Translate obscure bitfields into readable macros. > * Timings: > - Fix default values. > - Add mode information to the timings structure. > > Raw NAND controller driver changes: > * Fixed many error paths. > * Arasan > - New driver > * Au1550nd: > - Various cleanups > - Migration to ->exec_op() > * brcmnand: > - Misc cleanup. > - Support v2.1-v2.2 controllers. > - Remove unused including <linux/version.h>. > - Correctly verify erased pages. > - Fix Hamming OOB layout. > * Cadence > - Make cadence_nand_attach_chip static. > * Cafe: > - Set the NAND_NO_BBM_QUIRK flag > * cmx270: > - Remove this controller driver. > * cs553x: > - Misc cleanup > - Migration to ->exec_op() > * Davinci: > - Misc cleanup. > - Migration to ->exec_op() > * Denali: > - Add more delays before latching incoming data > * Diskonchip: > - Misc cleanup > - Migration to ->exec_op() > * Fsmc: > - Change to non-atomic bit operations. > * GPMI: > - Use nand_extract_bits() > - Fix runtime PM imbalance. > * Ingenic: > - Migration to exec_op() > - Fix the RB gpio active-high property on qi, lb60 > - Make qi_lb60_ooblayout_ops static. > * Marvell: > - Misc cleanup and small fixes > * Nandsim: > - Fix the error paths, driver wide. > * Omap_elm: > - Fix runtime PM imbalance. > * STM32_FMC2: > - Misc cleanups (error cases, comments, timeout valus, cosmetic > changes). > > ---------------------------------------------------------------- > Boris Brezillon (34): > mtd: rawnand: Take check_only into account > mtd: rawnand: au1550nd: Stop using IO_ADDR_{R, W} in au_{read, write}_buf[16]() > mtd: rawnand: au1550nd: Implement exec_op() > mtd: rawnand: au1550nd: Get rid of the legacy interface implementation > mtd: rawnand: au1550nd: Patch the read/write buf helper prototypes > mtd: rawnand: cs553x: Declare controllers instead of NAND chips > mtd: rawnand: cs553x: Stop using chip->legacy.IO_ADDR_{R, W} > mtd: rawnand: cs553x: Implement exec_op() > mtd: rawnand: cs553x: Get rid of the legacy interface implementation > mtd: rawnand: toshiba: Add a specific init for TC58TEG5DCLTA00 > mtd: rawnand: Define the "distance 3" MLC pairing scheme > mtd: rawnand: toshiba: Set the pairing scheme for TC58TEG5DCLTA00 > mtd: Add support for emulated SLC mode on MLC NANDs > dt-bindings: mtd: partition: Document the slc-mode property > mtd: partitions: ofpart: Parse the slc-mode property > mtd: cmdlinepart: Add an slc option to use SLC mode on a part > ubi: Relax the 'no MLC' rule and allow MLCs operating in SLC mode > mtd: rawnand: Add a NAND_NO_BBM_QUIRK flag > mtd: rawnand: cafe: Set the NAND_NO_BBM_QUIRK flag > mtd: rawnand: diskonchip: Set the NAND_NO_BBM_QUIRK flag > mtd: rawnand: diskonchip: Make sure doc2001plus_readbuf() works for single byte reads > mtd: rawnand: diskonchip: Get rid of doc2000_readbuf_dword() > mtd: rawnand: diskonchip: Inherit from nand_controller > mtd: rawnand: diskonchip: Implement exec_op() > mtd: rawnand: diskonchip: Get rid of the legacy interface implementation > mtd: rawnand: Propage CS selection to sub operations > mtd: rawnand: davinci: Inherit from nand_controller > mtd: rawnand: davinci: Stop using nand_chip.legacy.IO_ADDR_{R, W} > mtd: rawnand: davinci: Implement exec_op() > mtd: rawnand: davinci: Get rid of the legacy interface implementation > mtd: rawnand: Fix nand_gpio_waitrdy() > mtd: rawnand: Remove the cmx270 NAND controller driver > mtd: rawnand: ingenic: Fix the RB gpio active-high property on qi, lb60 > mtd: rawnand: ingenic: Convert the driver to exec_op() > > Christophe Kerello (5): > mtd: rawnand: stm32_fmc2: manage all errors cases at probe time > mtd: rawnand: stm32_fmc2: remove useless inline comments > mtd: rawnand: stm32_fmc2: use FMC2_TIMEOUT_MS for timeouts > mtd: rawnand: stm32_fmc2: cosmetic change to use nfc instead of fmc2 where relevant > mtd: rawnand: stm32_fmc2: use FIELD_PREP/FIELD_GET macros > > Dinghao Liu (3): > mtd: rawnand: gpmi: Fix runtime PM imbalance on error > mtd: rawnand: gpmi: Fix runtime PM imbalance in gpmi_nand_probe > mtd: rawnand: omap_elm: Fix runtime PM imbalance on error > > Fenghua Yu (1): > mtd: rawnand: fsmc: Change to non-atomic bit operations > > Masahiro Yamada (1): > mtd: rawnand: denali: add more delays before latching incoming data > > Miquel Raynal (124): > mtd: rawnand: Give more information about the ECC weakness > mtd: rawnand: marvell: Fix the condition on a return code > mtd: rawnand: marvell: Use devm_platform_ioremap_res() > mtd: rawnand: marvell: Use nand_cleanup() when the device is not yet registered > mtd: rawnand: marvell: Fix probe error path > mtd: rawnand: marvell: Rename a function to clarify > mtd: rawnand: marvell: Rename the ->correct() function > mtd: rawnand: timings: Add mode information to the timings structure > mtd: rawnand: timings: Fix default tR_max and tCCS_min timings > mtd: rawnand: onfi: Fix redundancy detection check > mtd: rawnand: onfi: Use intermediate variables to improve readability > mtd: rawnand: onfi: Define the number of parameter pages > mtd: rawnand: onfi: Avoid doing a copy of the parameter page > mtd: rawnand: onfi: Drop a useless parameter page read > mtd: rawnand: jedec: Define the number of parameter pages > mtd: rawnand: jedec: Use intermediate variables to improve readability > 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 > MAINTAINERS: Remove Piotr Sroka and mark Cadence NFC as orphaned > MAINTAINERS: Remove Xiaolei Li and mark MTK NFC as orphaned > mtd: rawnand: micron: Adapt the PAGE READ flow to constraint controllers > lib/bch: Rework a little bit the exported function names > lib/bch: Allow easy bit swapping > mtd: rawnand: Ensure the number of bitflips is consistent > mtd: rawnand: Add nand_extract_bits() > MAINTAINERS: Add Arasan NAND controller and bindings > dt-bindings: mtd: Document ARASAN NAND bindings > mtd: rawnand: arasan: Add new Arasan NAND controller > mtd: rawnand: arasan: Support the hardware BCH ECC engine > mtd: rawnand: ams-delta: Stop using nand_release() > mtd: rawnand: au1550nd: Stop using nand_release() > mtd: rawnand: bcm47xx: Stop using nand_release() > mtd: rawnand: brcmnand: Stop using nand_release() > mtd: rawnand: cadence: Stop using nand_release() > mtd: rawnand: cafe: Stop using nand_release() > mtd: rawnand: cs553x: Stop using nand_release() > mtd: rawnand: davinci: Stop using nand_release() > mtd: rawnand: denali: Delete items from the list in the _remove() path > mtd: rawnand: denali: Stop using nand_release() > mtd: rawnand: diskonchip: Fix the probe error path > mtd: rawnand: diskonchip: Stop using nand_release() > mtd: rawnand: fsl_elbc: Stop using nand_release() > mtd: rawnand: fsl_ifc: Stop using nand_release() > mtd: rawnand: fsl_upm: Stop using nand_release() > mtd: rawnand: fsmc: Stop using nand_release() > mtd: rawnand: gpio: Stop using nand_release() > mtd: rawnand: gpmi: Stop using nand_release() > mtd: rawnand: hisi504: Stop using nand_release() > mtd: rawnand: ingenic: Fix the probe error path > mtd: rawnand: ingenic: Stop using nand_release() > mtd: rawnand: lpc32xx_mlc: Stop using nand_release() > mtd: rawnand: lpc32xx_slc: Stop using nand_release() > mtd: rawnand: marvell: Stop using nand_release() > mtd: rawnand: mpc5121: Stop using nand_release() > mtd: rawnand: mtk: Fix the probe error path > mtd: rawnand: mtk: Stop using nand_release() > mtd: rawnand: mxc: Stop using nand_release() > mtd: rawnand: mxic: Stop using nand_release() > mtd: rawnand: ndfc: Stop using nand_release() > mtd: rawnand: omap2: Stop using nand_release() > mtd: rawnand: orion: Fix the probe error path > mtd: rawnand: orion: Stop using nand_release() > mtd: rawnand: oxnas: Keep track of registered devices > mtd: rawnand: oxnas: Fix the probe error path > mtd: rawnand: oxnas: Unregister all devices on error > mtd: rawnand: oxnas: Release all devices in the _remove() path > mtd: rawnand: oxnas: Stop using nand_release() > mtd: rawnand: pasemi: Fix the probe error path > mtd: rawnand: pasemi: Stop using nand_release() > mtd: rawnand: plat_nand: Fix the probe error path > mtd: rawnand: plat_nand: Stop using nand_release() > mtd: rawnand: qcom: Stop using nand_release() > mtd: rawnand: r852: Stop using nand_release() > mtd: rawnand: s3c2410: Stop using nand_release() > mtd: rawnand: sh_flctl: Stop using nand_release() > mtd: rawnand: sharpsl: Fix the probe error path > mtd: rawnand: sharpsl: Stop using nand_release() > mtd: rawnand: socrates: Fix the probe error path > mtd: rawnand: socrates: Stop using nand_release() > mtd: rawnand: stm32_fmc2: Stop using nand_release() > mtd: rawnand: sunxi: Fix the probe error path > mtd: rawnand: sunxi: Stop using nand_release() > mtd: rawnand: tango: Stop using nand_release() > mtd: rawnand: tmio: Fix the probe error path > mtd: rawnand: tmio: Stop using nand_release() > mtd: rawnand: txx9ndfmc: Stop using nand_release() > mtd: rawnand: vf610: Stop using nand_release() > mtd: rawnand: xway: Fix the probe error path > mtd: rawnand: xway: Stop using nand_release() > mtd: rawnand: gpmi: Use nand_extract_bits() > mtd: rawnand: nandsim: Consistent use of 'ns' instead of 'dev' > mtd: rawnand: nandsim: Use octal permissions > mtd: rawnand: nandsim: Use a consistent ns_ prefix for all functions > mtd: rawnand: nandsim: Clean error handling > mtd: rawnand: nandsim: Keep track of the created debugfs entries > mtd: rawnand: nandsim: Remove debugfs entries at unload time > mtd: rawnand: nandsim: Fix the two ns_alloc_device() error paths > mtd: rawnand: nandsim: Free partition names on error in ns_init() > mtd: rawnand: nandsim: Free the allocated device on error in ns_init() > mtd: rawnand: nandsim: Free the partition names in ns_free() > mtd: rawnand: nandsim: Stop using nand_release() > mtd: rawnand: nandsim: Use an additional label when freeing the nandsim object > mtd: rawnand: nandsim: Free erase_block_wear on error > mtd: rawnand: nandsim: Fix the label pointing on nand_cleanup() > mtd: rawnand: nandsim: Manage lists on error in ns_init_module() > mtd: rawnand: nandsim: Rename a label in ns_init_module() > mtd: rawnand: nandsim: Reorganize ns_cleanup_module() > mtd: rawnand: Stop using nand_release() > mtd: Fix typo in mtd_ooblayout_set_databytes() description > mtd: rawnand: Avoid a typedef > mtd: rawnand: Drop OOB_FIRST placement scheme > mtd: rawnand: Return an enum from of_get_nand_ecc_algo() > mtd: rawnand: Add an invalid ECC mode to discriminate with valid ones > > YueHaibing (3): > mtd: rawnand: ingenic: Make qi_lb60_ooblayout_ops static > mtd: rawnand: cadence: Make cadence_nand_attach_chip static > mtd: rawnand: brcmnand: Remove unused including <linux/version.h> > > Álvaro Fernández Rojas (8): > mtd: rawnand: brcmnand: fix hamming oob layout > mtd: rawnand: brcmnand: improve hamming oob layout > mtd: rawnand: brcmnand: correctly verify erased pages > mtd: rawnand: brcmnand: rename v4 registers > mtd: rawnand: brcmnand: fix CS0 layout > mtd: rawnand: brcmnand: rename page sizes > dt-bindings: mtd: brcmnand: add v2.1 and v2.2 support > mtd: rawnand: brcmnand: support v2.1-v2.2 controllers > > Documentation/devicetree/bindings/mtd/arasan,nand-controller.yaml | 63 ++++++++ > Documentation/devicetree/bindings/mtd/brcm,brcmnand.txt | 2 + > Documentation/devicetree/bindings/mtd/partition.txt | 3 + > Documentation/driver-api/mtdnand.rst | 6 +- > MAINTAINERS | 13 +- > drivers/mtd/devices/docg3.c | 10 +- > drivers/mtd/mtdcore.c | 191 +++++++++++++++++++++-- > drivers/mtd/mtdpart.c | 54 ++++--- > drivers/mtd/nand/raw/Kconfig | 12 +- > drivers/mtd/nand/raw/Makefile | 2 +- > drivers/mtd/nand/raw/ams-delta.c | 5 +- > drivers/mtd/nand/raw/arasan-nand-controller.c | 1297 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > drivers/mtd/nand/raw/atmel/nand-controller.c | 2 +- > drivers/mtd/nand/raw/au1550nd.c | 417 +++++++++++++++++-------------------------------- > drivers/mtd/nand/raw/bcm47xxnflash/main.c | 6 +- > drivers/mtd/nand/raw/brcmnand/brcmnand.c | 164 +++++++++++++------ > drivers/mtd/nand/raw/cadence-nand-controller.c | 17 +- > drivers/mtd/nand/raw/cafe_nand.c | 16 +- > drivers/mtd/nand/raw/cmx270_nand.c | 236 ---------------------------- > drivers/mtd/nand/raw/cs553x_nand.c | 199 ++++++++++++++++-------- > drivers/mtd/nand/raw/davinci_nand.c | 324 +++++++++++++++++++++++--------------- > drivers/mtd/nand/raw/denali.c | 60 +++++-- > drivers/mtd/nand/raw/diskonchip.c | 497 ++++++++++++++++++++++------------------------------------ > drivers/mtd/nand/raw/fsl_elbc_nand.c | 7 +- > drivers/mtd/nand/raw/fsl_ifc_nand.c | 7 +- > drivers/mtd/nand/raw/fsl_upm.c | 9 +- > drivers/mtd/nand/raw/fsmc_nand.c | 19 ++- > drivers/mtd/nand/raw/gpio.c | 6 +- > drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 189 +++------------------- > drivers/mtd/nand/raw/hisi504_nand.c | 6 +- > drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c | 170 ++++++++++++-------- > drivers/mtd/nand/raw/internals.h | 12 ++ > drivers/mtd/nand/raw/lpc32xx_mlc.c | 7 +- > drivers/mtd/nand/raw/lpc32xx_slc.c | 6 +- > drivers/mtd/nand/raw/marvell_nand.c | 68 ++++---- > drivers/mtd/nand/raw/meson_nand.c | 5 +- > drivers/mtd/nand/raw/mpc5121_nfc.c | 5 +- > drivers/mtd/nand/raw/mtk_nand.c | 19 ++- > drivers/mtd/nand/raw/mxc_nand.c | 6 +- > drivers/mtd/nand/raw/mxic_nand.c | 10 +- > drivers/mtd/nand/raw/nand_base.c | 445 ++++++++++++++++++++++++++++++++-------------------- > drivers/mtd/nand/raw/nand_bch.c | 10 +- > drivers/mtd/nand/raw/nand_jedec.c | 30 ++-- > drivers/mtd/nand/raw/nand_legacy.c | 8 +- > drivers/mtd/nand/raw/nand_micron.c | 65 ++++++-- > drivers/mtd/nand/raw/nand_onfi.c | 69 ++++---- > drivers/mtd/nand/raw/nand_timings.c | 11 +- > drivers/mtd/nand/raw/nand_toshiba.c | 14 ++ > drivers/mtd/nand/raw/nandsim.c | 440 +++++++++++++++++++++++++++++---------------------- > drivers/mtd/nand/raw/ndfc.c | 8 +- > drivers/mtd/nand/raw/omap2.c | 8 +- > drivers/mtd/nand/raw/omap_elm.c | 1 + > drivers/mtd/nand/raw/orion_nand.c | 8 +- > drivers/mtd/nand/raw/oxnas_nand.c | 33 ++-- > drivers/mtd/nand/raw/pasemi_nand.c | 9 +- > drivers/mtd/nand/raw/plat_nand.c | 8 +- > drivers/mtd/nand/raw/qcom_nandc.c | 13 +- > drivers/mtd/nand/raw/r852.c | 6 +- > drivers/mtd/nand/raw/s3c2410.c | 3 +- > drivers/mtd/nand/raw/sh_flctl.c | 6 +- > drivers/mtd/nand/raw/sharpsl.c | 14 +- > drivers/mtd/nand/raw/socrates_nand.c | 8 +- > drivers/mtd/nand/raw/stm32_fmc2_nand.c | 1065 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------- > drivers/mtd/nand/raw/sunxi_nand.c | 16 +- > drivers/mtd/nand/raw/tango_nand.c | 13 +- > drivers/mtd/nand/raw/tegra_nand.c | 6 +- > drivers/mtd/nand/raw/tmio_nand.c | 8 +- > drivers/mtd/nand/raw/txx9ndfmc.c | 6 +- > drivers/mtd/nand/raw/vf610_nfc.c | 10 +- > drivers/mtd/nand/raw/xway_nand.c | 8 +- > drivers/mtd/parsers/cmdlinepart.c | 12 +- > drivers/mtd/parsers/ofpart.c | 3 + > drivers/mtd/ubi/build.c | 5 +- > include/linux/bch.h | 11 +- > include/linux/mtd/bbm.h | 2 +- > include/linux/mtd/mtd.h | 7 +- > include/linux/mtd/partitions.h | 2 + > include/linux/mtd/rawnand.h | 133 +++++++++------- > include/linux/platform_data/mtd-davinci.h | 2 +- > include/linux/platform_data/mtd-nand-s3c2410.h | 2 +- > include/uapi/mtd/mtd-abi.h | 1 + > lib/bch.c | 152 ++++++++++++------ > 82 files changed, 4275 insertions(+), 2553 deletions(-) > create mode 100644 Documentation/devicetree/bindings/mtd/arasan,nand-controller.yaml > create mode 100644 drivers/mtd/nand/raw/arasan-nand-controller.c > delete mode 100644 drivers/mtd/nand/raw/cmx270_nand.c Pulled, thanks! -- Thanks, //richard ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/