> 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 v2: > ================= > * Reworded the nand_controller structure documentation as suggested. > * Used Boris' explanation of the introduction of the > ->attach/detach_chip() hooks. > * Removed the initialization of controller->ops() in > nand_controller_init(). > * s/may be called/will be called/ in ->attach/detach_chip() > documentation line. > * Also mentioned that ->detach_chip() will be called from > nand_cleanup(). > > 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 | 29 +++++++++++++++++----- > 19 files changed, 95 insertions(+), 49 deletions(-) > Series applied to nand/next.