mbox series

[v2,0/2] Changes in the internal raw NAND API

Message ID 20180718215056.1242-1-miquel.raynal@bootlin.com
Headers show
Series Changes in the internal raw NAND API | expand

Message

Miquel Raynal July 18, 2018, 9:50 p.m. UTC
Hello,

After having sent two versions of a series removing the
nand_scan_ident/nand_scan_tail limitation that prevents us to allocate
memory at critical moments, we are still discussing the internal API.

To avoid sending again more than 20 patches, this is an RFC of the
internal changes prior to the above modifications in each driver:

1/ Rename struct nand_hw_control -> struct nand_controller which is
   much more meaningful.
2/ Rename the function initializing the above structure
   nand_hw_control_init() -> nand_controller_init().
3/ Rename the dummy controller implementation in the nand_chip structure
   hwcontrol -> dummy_controller.
3/ Create a nand_controller_ops structure which will be embedded in the
   nand_controller structure. These operations are:
   int (*attach_chip)(struct nand_chip *) and
   void (*detach_chip)(struct nand_chip *).

If we agree on this, I could merge them first and then send the bunch of
patches making use of these API changes.

Thanks,
Miquèl

Changes since v1 (RFC):
=======================
* Added Acked-by tags from Boris.
* Updated the commit logs as commented.
* Squashed the 2 patches about nand_hw_control and
  nand_init_hw_control().
* Also added the rename of hwcontrol in patch 1.
* Added helpers to 1/ check the controller operations are present and
  2/ ->attach_chip() or ->detach_chip() is available, as suggested by
  Boris.


Miquel Raynal (2):
  mtd: rawnand: better name for the controller structure
  mtd: rawnand: add hooks that may be called during nand_scan()

 drivers/mtd/nand/raw/atmel/nand-controller.c | 10 ++++----
 drivers/mtd/nand/raw/brcmnand/brcmnand.c     |  4 ++--
 drivers/mtd/nand/raw/docg4.c                 |  4 ++--
 drivers/mtd/nand/raw/fsl_elbc_nand.c         |  4 ++--
 drivers/mtd/nand/raw/fsl_ifc_nand.c          |  4 ++--
 drivers/mtd/nand/raw/jz4780_nand.c           |  7 +++---
 drivers/mtd/nand/raw/marvell_nand.c          |  6 ++---
 drivers/mtd/nand/raw/mtk_nand.c              |  2 +-
 drivers/mtd/nand/raw/nand_base.c             | 36 ++++++++++++++++++++++++----
 drivers/mtd/nand/raw/ndfc.c                  |  4 ++--
 drivers/mtd/nand/raw/omap2.c                 |  2 +-
 drivers/mtd/nand/raw/oxnas_nand.c            |  4 ++--
 drivers/mtd/nand/raw/qcom_nandc.c            |  4 ++--
 drivers/mtd/nand/raw/s3c2410.c               |  4 ++--
 drivers/mtd/nand/raw/sunxi_nand.c            |  6 ++---
 drivers/mtd/nand/raw/tango_nand.c            |  4 ++--
 drivers/mtd/nand/raw/tegra_nand.c            |  6 ++---
 drivers/mtd/nand/raw/txx9ndfmc.c             |  4 ++--
 include/linux/mtd/rawnand.h                  | 30 ++++++++++++++++++-----
 19 files changed, 96 insertions(+), 49 deletions(-)