From patchwork Sun May 31 09:18:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Miquel Raynal X-Patchwork-Id: 1301376 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20170209 header.b=GyRhoQC3; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49ZXmN1j6hz9sRN for ; Sun, 31 May 2020 19:18:44 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Subject:To:From :Date:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=rEBS5Y3VcrvQuhmj0fzSIH9Sy2nyeaFwiboBVd16+Ic=; b=GyRhoQC3ASXn5T pH6sifiziUngnGzIiZMqh3hQoc8nEdz19Y0RyxHljlhFUoQyDWG4U4aGmqC4NyQinimUt6o5S2fkD ZTzlyyMpPaigHwlWl9wehGUEd3bFQ5j+ED6tQYUg6cjGwhbPqB06ABGvuoKuJq23i3RFtowQ3RjDO iQRb8It4u6/qb3mMcm7qRXL75I5VrRoKuZA2jaLxYlo4I6AZKI9m3YEF/drR2USTn8Ft4bhRc3IxP zjfB5QPWl6JOEscRM9KFmZksWMO5+6T2Jp/eeh5lgZ+XZnmPbBpRfYN07l2EMAwXhG2cNtZxmjo6i mjacpw2w0akGgGPCpvrQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jfK6x-00044z-4l; Sun, 31 May 2020 09:18:31 +0000 Received: from relay7-d.mail.gandi.net ([217.70.183.200]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jfK6r-000449-SG for linux-mtd@lists.infradead.org; Sun, 31 May 2020 09:18:28 +0000 X-Originating-IP: 91.224.148.103 Received: from xps13 (unknown [91.224.148.103]) (Authenticated sender: miquel.raynal@bootlin.com) by relay7-d.mail.gandi.net (Postfix) with ESMTPSA id D9F1520008; Sun, 31 May 2020 09:18:17 +0000 (UTC) Date: Sun, 31 May 2020 11:18:16 +0200 From: Miquel Raynal To: Richard Weinberger Subject: [GIT PULL] mtd: nand: Changes for 5.8 Message-ID: <20200531111816.099ed365@xps13> Organization: Bootlin X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200531_021826_190935_FBC396A8 X-CRM114-Status: GOOD ( 19.00 ) X-Spam-Score: -0.7 (/) X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: Content analysis details: (-0.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [217.70.183.200 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-mtd@lists.infradead.org, Vignesh Raghavendra , Frieder Schrempf , Tudor Ambarus Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org 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 . - 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 Á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