[PULL] mtd: nand: changes for 4.12

Boris Brezillon boris.brezillon at free-electrons.com
Fri Apr 14 08:26:25 PDT 2017


On Fri, 14 Apr 2017 09:49:15 +0200
Boris Brezillon <boris.brezillon at free-electrons.com> wrote:

> Hi Brian,
> 
> Here is my PR for 4.12. As you can see, it's a pretty big one compared
> to 4.11, and it's mainly due to the Denali driver rework/cleanup (which
> I'd like to thank Masahiro for), the addition of the per-vendor
> initialization infrastructure and the complete rewrite of the Atmel
> driver.

Can you hold this PR back. We just found another bug in the new Atmel
driver and I'd like to fix the offending commit to avoid breaking
bisectability. I'll send a new PR during the week-end or early next
week.

Thanks,

Boris

> 
> The rest of the commits are just simple fixes/improvements to existing
> driver or to the core.
> 
> Let me know if you see any problem.
> 
> Thanks,
> 
> Boris
> 
> The following changes since commit c1ae3cfa0e89fa1a7ecc4c99031f5e9ae99d9201:
> 
>   Linux 4.11-rc1 (2017-03-05 12:59:56 -0800)
> 
> are available in the git repository at:
> 
>   git at github.com:linux-nand/linux.git tags/nand/for-4.12
> 
> for you to fetch changes up to 2b12c057cc2837312001f4fc3a4d89498fb6f463:
> 
>   mtd: nand: brcmnand: Check flash #WP pin status before nand erase/program (2017-04-11 13:46:55 +0200)
> 
> ----------------------------------------------------------------
> This pull request contains:
> 
>  - some minor fixes/improvements on existing drivers (fsmc, gpio, ifc,
>    davinci, brcmnand, omap)
>  - a huge cleanup/rework of the denali driver accompanied with core
>    fixes/improvements to simplify the driver code
>  - a complete rewrite of the atmel driver to support new DT bindings
>    make future evolution easier
>  - the addition of per-vendor detection/initialization steps to avoid
>    extending the nand_ids table with more extended-id entries
> 
> ----------------------------------------------------------------
> Alison Wang (2):
>       memory: ifc: Update dependency of IFC for LS1021A
>       mtd: nand: Update dependency of IFC for LS1021A
> 
> Boris Brezillon (20):
>       mtd: nand: Get rid of the mtd parameter in all auto-detection functions
>       mtd: nand: Store nand ID in struct nand_chip
>       mtd: nand: Get rid of busw parameter
>       mtd: nand: Rename nand_get_flash_type() into nand_detect()
>       mtd: nand: Rename the nand_manufacturers struct
>       mtd: nand: Kill the MTD_NAND_IDS Kconfig option
>       mtd: nand: Do not expose the NAND manufacturer table directly
>       mtd: nand: Add manufacturer specific initialization/detection steps
>       mtd: nand: Move Samsung specific init/detection logic in nand_samsung.c
>       mtd: nand: Move Hynix specific init/detection logic in nand_hynix.c
>       mtd: nand: Move Toshiba specific init/detection logic in nand_toshiba.c
>       mtd: nand: Move Micron specific init logic in nand_micron.c
>       mtd: nand: Move AMD/Spansion specific init/detection logic in nand_amd.c
>       mtd: nand: Move Macronix specific initialization in nand_macronix.c
>       mtd: nand: hynix: Rework NAND ID decoding to extract more information
>       mtd: nand: hynix: Add read-retry support for 1x nm MLC NANDs
>       mtd: nand: tango: Enforce DMA direction type
>       mtd: nand: Cleanup/rework the atmel_nand driver
>       mtd: nand: atmel: Document the new DT bindings
>       mtd: nand: Remove unused chip->write_page() hook
> 
> Christophe Jaillet (1):
>       mtd: nand: NULL terminate a of_device_id table
> 
> Christophe Leroy (1):
>       mtd: nand: gpio: make nCE GPIO optional
> 
> Colin Ian King (1):
>       mtd: nand: nandsim: fix spelling mistake: "weakpagess" -> "weakpages"
> 
> Dan Carpenter (2):
>       mtd: nand: hynix: Fix an error code in init
>       mtd: nand: Fix a couple error codes
> 
> Hans de Goede (1):
>       mtd: nand: samsung: Retrieve ECC requirements from extended ID
> 
> Kamal Dasu (1):
>       mtd: nand: brcmnand: Check flash #WP pin status before nand erase/program
> 
> Masahiro Yamada (31):
>       mtd: nand: allow to set only one of ECC size and ECC strength from DT
>       mtd: nand: use read_oob() instead of cmdfunc() for bad block check
>       mtd: nand: denali: remove unused CONFIG option and macros
>       mtd: nand: denali: remove redundant define of BANK(x)
>       mtd: nand: denali: remove more unused struct members
>       mtd: nand: denali: fix comment of denali_nand_info::flash_mem
>       mtd: nand: denali: consolidate INTR_STATUS__* and INTR_EN__* macros
>       mtd: nand: denali: introduce capability flag
>       mtd: nand: denali: use int where no reason to use fixed width variable
>       mtd: nand: do not check R/B# for CMD_READID in nand_command(_lp)
>       mtd: nand: do not check R/B# for CMD_SET_FEATURES in nand_command(_lp)
>       mtd: nand: denali: use nand_chip to hold frequently accessed data
>       mtd: nand: denali: call nand_set_flash_node() to set DT node
>       mtd: nand: denali: move multi device fixup code to a helper function
>       mtd: nand: denali: simplify multi device fixup code
>       mtd: nand: denali: set DEVICES_CONNECTED 1 if not set
>       mtd: nand: denali: remove meaningless writes to read-only registers
>       mtd: nand: denali: remove unnecessary writes to ECC_CORRECTION
>       mtd: nand: relax ecc.read_page() return value for uncorrectable ECC
>       mtd: nand: denali: allow to override mtd->name from label DT property
>       mtd: nand: denali: remove meaningless pipeline read-ahead operation
>       mtd: nand: denali: fix bitflips calculation in handle_ecc()
>       mtd: nand: denali: fix erased page checking
>       mtd: nand: denali: support HW_ECC_FIXUP capability
>       mtd: nand: denali_dt: enable HW_ECC_FIXUP for Altera SOCFPGA variant
>       mtd: nand: denali: support 64bit capable DMA engine
>       mtd: nand: denali_dt: remove dma-mask DT property
>       mtd: nand: denali_dt: use pdev instead of ofdev for platform_device
>       mtd: nand: denali: allow to override revision number
>       mtd: nand: allocate aligned buffers if NAND_OWN_BUFFERS is unset
>       mtd: nand: allow drivers to request minimum alignment for passed buffer
> 
> Philipp Zabel (1):
>       mtd: nand: sunxi: simplify optional reset handling
> 
> Roger Quadros (1):
>       mtd: nand: omap2: Fix partition creation via cmdline mtdparts
> 
> Sekhar Nori (1):
>       mtd: nand: davinci: add comment on NAND subpage write status on keystone
> 
> Simon Baatz (2):
>       mtd: nand: orion: fix clk handling
>       mtd: nand: orion: improve handling of optional clock
> 
> Thomas Petazzoni (11):
>       mtd: nand: fsmc: fix NAND width handling
>       mtd: nand: fsmc: move fsmc_nand_data definition
>       mtd: nand: fsmc: remove ->select_bank() from fsmc_nand_platform_data
>       mtd: nand: fsmc: remove fsmc_select_chip()
>       mtd: nand: fmsc: kill {read, write}_dma_priv from fsmc_nand_platform_data
>       mtd: nand: fsmc: kill {nr_, }partitions structure fields
>       mtd: nand: fsmc: remove duplicate nand_set_flash_node()
>       mtd: nand: fsmc: finally remove fsmc_nand_platform_data
>       mtd: nand: fsmc: use devm_clk_get()
>       mtd: nand: fsmc: remove unused definitions
>       mtd: nand: fsmc: remove CONFIG_OF conditional
> 
>  Documentation/devicetree/bindings/mtd/atmel-nand.txt  |  107 ++-
>  Documentation/devicetree/bindings/mtd/denali-nand.txt |    7 +-
>  MAINTAINERS                                           |    2 +-
>  arch/cris/arch-v32/drivers/Kconfig                    |    1 -
>  drivers/memory/Kconfig                                |    2 +-
>  drivers/mtd/nand/Kconfig                              |   23 +-
>  drivers/mtd/nand/Makefile                             |   11 +-
>  drivers/mtd/nand/atmel/Makefile                       |    4 +
>  drivers/mtd/nand/atmel/nand-controller.c              | 2199 ++++++++++++++++++++++++++++++++++++++++++++++++
>  drivers/mtd/nand/atmel/pmecc.c                        | 1020 ++++++++++++++++++++++
>  drivers/mtd/nand/atmel/pmecc.h                        |   73 ++
>  drivers/mtd/nand/atmel_nand.c                         | 2479 ------------------------------------------------------
>  drivers/mtd/nand/atmel_nand_ecc.h                     |  163 ----
>  drivers/mtd/nand/atmel_nand_nfc.h                     |  103 ---
>  drivers/mtd/nand/brcmnand/brcmnand.c                  |   61 +-
>  drivers/mtd/nand/davinci_nand.c                       |   11 +
>  drivers/mtd/nand/denali.c                             |  567 +++++++------
>  drivers/mtd/nand/denali.h                             |  192 +----
>  drivers/mtd/nand/denali_dt.c                          |   74 +-
>  drivers/mtd/nand/fsmc_nand.c                          |  236 ++----
>  drivers/mtd/nand/gpio.c                               |   18 +-
>  drivers/mtd/nand/nand_amd.c                           |   51 ++
>  drivers/mtd/nand/nand_base.c                          |  518 +++++-------
>  drivers/mtd/nand/nand_hynix.c                         |  631 ++++++++++++++
>  drivers/mtd/nand/nand_ids.c                           |   39 +-
>  drivers/mtd/nand/nand_macronix.c                      |   30 +
>  drivers/mtd/nand/nand_micron.c                        |   86 ++
>  drivers/mtd/nand/nand_samsung.c                       |  112 +++
>  drivers/mtd/nand/nand_toshiba.c                       |   51 ++
>  drivers/mtd/nand/nandsim.c                            |    2 +-
>  drivers/mtd/nand/omap2.c                              |    9 +
>  drivers/mtd/nand/orion_nand.c                         |   48 +-
>  drivers/mtd/nand/sunxi_nand.c                         |   20 +-
>  drivers/mtd/nand/tango_nand.c                         |    8 +-
>  include/linux/mtd/nand.h                              |   96 ++-
>  35 files changed, 5275 insertions(+), 3779 deletions(-)
>  create mode 100644 drivers/mtd/nand/atmel/Makefile
>  create mode 100644 drivers/mtd/nand/atmel/nand-controller.c
>  create mode 100644 drivers/mtd/nand/atmel/pmecc.c
>  create mode 100644 drivers/mtd/nand/atmel/pmecc.h
>  delete mode 100644 drivers/mtd/nand/atmel_nand.c
>  delete mode 100644 drivers/mtd/nand/atmel_nand_ecc.h
>  delete mode 100644 drivers/mtd/nand/atmel_nand_nfc.h
>  create mode 100644 drivers/mtd/nand/nand_amd.c
>  create mode 100644 drivers/mtd/nand/nand_hynix.c
>  create mode 100644 drivers/mtd/nand/nand_macronix.c
>  create mode 100644 drivers/mtd/nand/nand_micron.c
>  create mode 100644 drivers/mtd/nand/nand_samsung.c
>  create mode 100644 drivers/mtd/nand/nand_toshiba.c




More information about the linux-mtd mailing list