Skip to content

Introduce the new NAND core interface: ->exec_op()

Boris Brezillon linux-arm-kernel linux-mediatek linux-mtd 1 version New

Get series with b4
b4 am 20171201103748.5bbd8ccc@bbrezillon

Versions newest first

  1. v1 Latest5 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5mtd: nand: use usual return values for the ->erase() hook+0 -02 replies
1/5mtd: nand: use usual return values for the ->erase() hook+0 -00 replies
4/5mtd: nand: use a static data_interface in the nand_chip structure+0 -00 replies
5/5mtd: nand: add ->exec_op() implementation+0 -01 reply
5/5mtd: nand: add ->exec_op() implementation+0 -01 reply
5/5mtd: nand: add ->exec_op() implementation+0 -00 replies

Reviews trailers per patch

2 of 6 patches have a Reviewed-by or Acked-by.

PatchMasahiro Yamada
1/5A-b
1/5A-b
4/5
5/5
5/5
5/5

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/5] Introduce the new NAND core interface: ->exec_op()

Hi all,

Quoted 23 lines · On Thu, 30 Nov 2017 18:01:27 +0100 Miquel Raynal…

Hi,

This series adds the implementation of the NAND framework ->exec_op() interface with all the related hooks and helpers. The reasons for adding it are explained in details in the commit log:

        "mtd: nand: add ->exec_op() implementation"

Long story short: it will ease later expansion of the framework, as well as the implementation of new vendor specific commands, and should also ease driver development.

A lot of comments are written to explain how to use the new API. Several NAND controller drivers are already/almost converted to ->exec_op(), in particular a rework of the Marvell NAND controller driver, and will follow. One can have a look at them as examples to understand how to implement or rework NAND controller drivers. A proper external documentation is being written and will later be submitted.

Thank you,
Miqu?l

Quoted 8 lines

Boris Brezillon (2):
mtd: nand: provide several helpers to do common NAND operations
mtd: nand: force drivers to explicitly send READ/PROG commands

Miquel Raynal (3):
mtd: nand: use usual return values for the ->erase() hook
mtd: nand: use a static data_interface in the nand_chip structure
mtd: nand: add ->exec_op() implementation

Applied patches 1 to 4 (with a rewording of patch 4 commit message and a fix in patch 1 to make single_erase() compliant with the new ->erase() semantic).

Note that I was prompt to apply those patches because I want them to spend as much time as possible in linux-next so that we can detect and fix regressions before the merge window. So please test linux-next on your hardware.

This being said, nothing is set in stone, and if the series appears to break existing setups and we can't fix the problems before -rc6, I'll drop it.

Thanks,

Boris

Quoted 34 lines
 drivers/mtd/nand/atmel/nand-controller.c      |    9 +-
 drivers/mtd/nand/bf5xx_nand.c                 |    6 +-
 drivers/mtd/nand/brcmnand/brcmnand.c          |   20 +-
 drivers/mtd/nand/cafe_nand.c                  |   20 +-
 drivers/mtd/nand/denali.c                     |   40 +-
 drivers/mtd/nand/diskonchip.c                 |    4 +-
 drivers/mtd/nand/docg4.c                      |   21 +-
 drivers/mtd/nand/fsl_elbc_nand.c              |   10 +-
 drivers/mtd/nand/fsl_ifc_nand.c               |    6 +-
 drivers/mtd/nand/fsmc_nand.c                  |    5 +-
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c        |   77 +-
 drivers/mtd/nand/hisi504_nand.c               |    9 +-
 drivers/mtd/nand/jz4740_nand.c                |   16 +-
 drivers/mtd/nand/lpc32xx_mlc.c                |    7 +-
 drivers/mtd/nand/lpc32xx_slc.c                |   33 +-
 drivers/mtd/nand/mtk_nand.c                   |   25 +-
 drivers/mtd/nand/nand_base.c                  | 2161 ++++++++++++++++++++++---
 drivers/mtd/nand/nand_hynix.c                 |  124 +-
 drivers/mtd/nand/nand_micron.c                |   83 +-
 drivers/mtd/nand/nand_timings.c               |   21 +-
 drivers/mtd/nand/omap2.c                      |   18 +-
 drivers/mtd/nand/pxa3xx_nand.c                |   14 +-
 drivers/mtd/nand/qcom_nandc.c                 |   27 +-
 drivers/mtd/nand/r852.c                       |   11 +-
 drivers/mtd/nand/sh_flctl.c                   |    6 +-
 drivers/mtd/nand/sunxi_nand.c                 |   97 +-
 drivers/mtd/nand/tango_nand.c                 |   27 +-
 drivers/mtd/nand/tmio_nand.c                  |    5 +-
 drivers/mtd/nand/vf610_nfc.c                  |    6 +-
 drivers/staging/mt29f_spinand/mt29f_spinand.c |    5 +-
 include/linux/mtd/rawnand.h                   |  414 ++++-
 31 files changed, 2673 insertions(+), 654 deletions(-)