On Tue, 17 Jul 2018 11:54:52 +0200 Miquel Raynal <miquel.raynal at bootlin.com> wrote: > In the raw NAND core, a NAND chip is described by a nand_chip structure, > while a NAND controller is described with a nand_hw_control structure > which is not very meaningful. 'control' is misleading and 'hw' has no > meaning here has it refers to hardware ECC operations only, I don't think hw refers to hardware ECC, but I agree that nand_controller is a better name for this structure. How about dropping the last sentence? > which is too > restrictive. > > Rename this structure nand_controller. > > Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com> Acked-by: Boris Brezillon <boris.brezillon at bootlin.com> > --- > drivers/mtd/nand/raw/atmel/nand-controller.c | 8 ++++---- > drivers/mtd/nand/raw/brcmnand/brcmnand.c | 2 +- > drivers/mtd/nand/raw/fsl_elbc_nand.c | 2 +- > drivers/mtd/nand/raw/fsl_ifc_nand.c | 2 +- > drivers/mtd/nand/raw/jz4780_nand.c | 5 +++-- > drivers/mtd/nand/raw/marvell_nand.c | 4 ++-- > drivers/mtd/nand/raw/mtk_nand.c | 2 +- > drivers/mtd/nand/raw/ndfc.c | 2 +- > drivers/mtd/nand/raw/omap2.c | 2 +- > drivers/mtd/nand/raw/oxnas_nand.c | 2 +- > drivers/mtd/nand/raw/qcom_nandc.c | 2 +- > drivers/mtd/nand/raw/s3c2410.c | 2 +- > drivers/mtd/nand/raw/sunxi_nand.c | 4 ++-- > drivers/mtd/nand/raw/tango_nand.c | 2 +- > drivers/mtd/nand/raw/tegra_nand.c | 4 ++-- > drivers/mtd/nand/raw/txx9ndfmc.c | 2 +- > include/linux/mtd/rawnand.h | 11 ++++++----- > 17 files changed, 30 insertions(+), 28 deletions(-) > > diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c b/drivers/mtd/nand/raw/atmel/nand-controller.c > index e686fe73159e..8fcb66df10ea 100644 > --- a/drivers/mtd/nand/raw/atmel/nand-controller.c > +++ b/drivers/mtd/nand/raw/atmel/nand-controller.c > @@ -216,7 +216,7 @@ struct atmel_nand_controller_caps { > }; > > struct atmel_nand_controller { > - struct nand_hw_control base; > + struct nand_controller base; > const struct atmel_nand_controller_caps *caps; > struct device *dev; > struct regmap *smc; > @@ -227,7 +227,7 @@ struct atmel_nand_controller { > }; > > static inline struct atmel_nand_controller * > -to_nand_controller(struct nand_hw_control *ctl) > +to_nand_controller(struct nand_controller *ctl) > { > return container_of(ctl, struct atmel_nand_controller, base); > } > @@ -239,7 +239,7 @@ struct atmel_smc_nand_controller { > }; > > static inline struct atmel_smc_nand_controller * > -to_smc_nand_controller(struct nand_hw_control *ctl) > +to_smc_nand_controller(struct nand_controller *ctl) > { > return container_of(to_nand_controller(ctl), > struct atmel_smc_nand_controller, base); > @@ -263,7 +263,7 @@ struct atmel_hsmc_nand_controller { > }; > > static inline struct atmel_hsmc_nand_controller * > -to_hsmc_nand_controller(struct nand_hw_control *ctl) > +to_hsmc_nand_controller(struct nand_controller *ctl) > { > return container_of(to_nand_controller(ctl), > struct atmel_hsmc_nand_controller, base); > diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/raw/brcmnand/brcmnand.c > index 1306aaa7a8bf..2c8e3d3977c0 100644 > --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c > +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c > @@ -114,7 +114,7 @@ enum { > > struct brcmnand_controller { > struct device *dev; > - struct nand_hw_control controller; > + struct nand_controller controller; > void __iomem *nand_base; > void __iomem *nand_fc; /* flash cache */ > void __iomem *flash_dma_base; > diff --git a/drivers/mtd/nand/raw/fsl_elbc_nand.c b/drivers/mtd/nand/raw/fsl_elbc_nand.c > index 51f0b340bc0d..756431ec055b 100644 > --- a/drivers/mtd/nand/raw/fsl_elbc_nand.c > +++ b/drivers/mtd/nand/raw/fsl_elbc_nand.c > @@ -61,7 +61,7 @@ struct fsl_elbc_mtd { > /* Freescale eLBC FCM controller information */ > > struct fsl_elbc_fcm_ctrl { > - struct nand_hw_control controller; > + struct nand_controller controller; > struct fsl_elbc_mtd *chips[MAX_BANKS]; > > u8 __iomem *addr; /* Address of assigned FCM buffer */ > diff --git a/drivers/mtd/nand/raw/fsl_ifc_nand.c b/drivers/mtd/nand/raw/fsl_ifc_nand.c > index 382b67e97174..92b8b63a8b75 100644 > --- a/drivers/mtd/nand/raw/fsl_ifc_nand.c > +++ b/drivers/mtd/nand/raw/fsl_ifc_nand.c > @@ -51,7 +51,7 @@ struct fsl_ifc_mtd { > > /* overview of the fsl ifc controller */ > struct fsl_ifc_nand_ctrl { > - struct nand_hw_control controller; > + struct nand_controller controller; > struct fsl_ifc_mtd *chips[FSL_IFC_BANK_COUNT]; > > void __iomem *addr; /* Address of assigned IFC buffer */ > diff --git a/drivers/mtd/nand/raw/jz4780_nand.c b/drivers/mtd/nand/raw/jz4780_nand.c > index e69f6ae4c539..b9afd41132ac 100644 > --- a/drivers/mtd/nand/raw/jz4780_nand.c > +++ b/drivers/mtd/nand/raw/jz4780_nand.c > @@ -44,7 +44,7 @@ struct jz4780_nand_cs { > struct jz4780_nand_controller { > struct device *dev; > struct jz4780_bch *bch; > - struct nand_hw_control controller; > + struct nand_controller controller; > unsigned int num_banks; > struct list_head chips; > int selected; > @@ -65,7 +65,8 @@ static inline struct jz4780_nand_chip *to_jz4780_nand_chip(struct mtd_info *mtd) > return container_of(mtd_to_nand(mtd), struct jz4780_nand_chip, chip); > } > > -static inline struct jz4780_nand_controller *to_jz4780_nand_controller(struct nand_hw_control *ctrl) > +static inline struct jz4780_nand_controller > +*to_jz4780_nand_controller(struct nand_controller *ctrl) > { > return container_of(ctrl, struct jz4780_nand_controller, controller); > } > diff --git a/drivers/mtd/nand/raw/marvell_nand.c b/drivers/mtd/nand/raw/marvell_nand.c > index 80a074cccb82..fa7d284ac8af 100644 > --- a/drivers/mtd/nand/raw/marvell_nand.c > +++ b/drivers/mtd/nand/raw/marvell_nand.c > @@ -318,7 +318,7 @@ struct marvell_nfc_caps { > * @dma_buf: 32-bit aligned buffer for DMA transfers (NFCv1 only) > */ > struct marvell_nfc { > - struct nand_hw_control controller; > + struct nand_controller controller; > struct device *dev; > void __iomem *regs; > struct clk *core_clk; > @@ -335,7 +335,7 @@ struct marvell_nfc { > u8 *dma_buf; > }; > > -static inline struct marvell_nfc *to_marvell_nfc(struct nand_hw_control *ctrl) > +static inline struct marvell_nfc *to_marvell_nfc(struct nand_controller *ctrl) > { > return container_of(ctrl, struct marvell_nfc, controller); > } > diff --git a/drivers/mtd/nand/raw/mtk_nand.c b/drivers/mtd/nand/raw/mtk_nand.c > index 75c845adb050..254ee76d354d 100644 > --- a/drivers/mtd/nand/raw/mtk_nand.c > +++ b/drivers/mtd/nand/raw/mtk_nand.c > @@ -145,7 +145,7 @@ struct mtk_nfc_clk { > }; > > struct mtk_nfc { > - struct nand_hw_control controller; > + struct nand_controller controller; > struct mtk_ecc_config ecc_cfg; > struct mtk_nfc_clk clk; > struct mtk_ecc *ecc; > diff --git a/drivers/mtd/nand/raw/ndfc.c b/drivers/mtd/nand/raw/ndfc.c > index d8a806894937..fdc55fda5db6 100644 > --- a/drivers/mtd/nand/raw/ndfc.c > +++ b/drivers/mtd/nand/raw/ndfc.c > @@ -39,7 +39,7 @@ struct ndfc_controller { > void __iomem *ndfcbase; > struct nand_chip chip; > int chip_select; > - struct nand_hw_control ndfc_control; > + struct nand_controller ndfc_control; > }; > > static struct ndfc_controller ndfc_ctrl[NDFC_MAX_CS]; > diff --git a/drivers/mtd/nand/raw/omap2.c b/drivers/mtd/nand/raw/omap2.c > index e50c64adc3c8..e943b2e5a5e2 100644 > --- a/drivers/mtd/nand/raw/omap2.c > +++ b/drivers/mtd/nand/raw/omap2.c > @@ -145,7 +145,7 @@ static u_char bch8_vector[] = {0xf3, 0xdb, 0x14, 0x16, 0x8b, 0xd2, 0xbe, 0xcc, > static u_char bch4_vector[] = {0x00, 0x6b, 0x31, 0xdd, 0x41, 0xbc, 0x10}; > > /* Shared among all NAND instances to synchronize access to the ECC Engine */ > -static struct nand_hw_control omap_gpmc_controller = { > +static struct nand_controller omap_gpmc_controller = { > .lock = __SPIN_LOCK_UNLOCKED(omap_gpmc_controller.lock), > .wq = __WAIT_QUEUE_HEAD_INITIALIZER(omap_gpmc_controller.wq), > }; > diff --git a/drivers/mtd/nand/raw/oxnas_nand.c b/drivers/mtd/nand/raw/oxnas_nand.c > index d649d5944826..3621c29e7221 100644 > --- a/drivers/mtd/nand/raw/oxnas_nand.c > +++ b/drivers/mtd/nand/raw/oxnas_nand.c > @@ -32,7 +32,7 @@ > #define OXNAS_NAND_MAX_CHIPS 1 > > struct oxnas_nand_ctrl { > - struct nand_hw_control base; > + struct nand_controller base; > void __iomem *io_base; > struct clk *clk; > struct nand_chip *chips[OXNAS_NAND_MAX_CHIPS]; > diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c > index 994f980c6d86..98800a26b2c7 100644 > --- a/drivers/mtd/nand/raw/qcom_nandc.c > +++ b/drivers/mtd/nand/raw/qcom_nandc.c > @@ -365,7 +365,7 @@ struct nandc_regs { > * from all connected NAND devices pagesize > */ > struct qcom_nand_controller { > - struct nand_hw_control controller; > + struct nand_controller controller; > struct list_head host_list; > > struct device *dev; > diff --git a/drivers/mtd/nand/raw/s3c2410.c b/drivers/mtd/nand/raw/s3c2410.c > index 19661c5d3220..aee043dd4fa9 100644 > --- a/drivers/mtd/nand/raw/s3c2410.c > +++ b/drivers/mtd/nand/raw/s3c2410.c > @@ -162,7 +162,7 @@ enum s3c_nand_clk_state { > */ > struct s3c2410_nand_info { > /* mtd info */ > - struct nand_hw_control controller; > + struct nand_controller controller; > struct s3c2410_nand_mtd *mtds; > struct s3c2410_platform_nand *platform; > > diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sunxi_nand.c > index d831a141a196..de19c81a1789 100644 > --- a/drivers/mtd/nand/raw/sunxi_nand.c > +++ b/drivers/mtd/nand/raw/sunxi_nand.c > @@ -234,7 +234,7 @@ static inline struct sunxi_nand_chip *to_sunxi_nand(struct nand_chip *nand) > * controller events > */ > struct sunxi_nfc { > - struct nand_hw_control controller; > + struct nand_controller controller; > struct device *dev; > void __iomem *regs; > struct clk *ahb_clk; > @@ -247,7 +247,7 @@ struct sunxi_nfc { > struct dma_chan *dmac; > }; > > -static inline struct sunxi_nfc *to_sunxi_nfc(struct nand_hw_control *ctrl) > +static inline struct sunxi_nfc *to_sunxi_nfc(struct nand_controller *ctrl) > { > return container_of(ctrl, struct sunxi_nfc, controller); > } > diff --git a/drivers/mtd/nand/raw/tango_nand.c b/drivers/mtd/nand/raw/tango_nand.c > index f2052fae21c7..94c8e9ac20b6 100644 > --- a/drivers/mtd/nand/raw/tango_nand.c > +++ b/drivers/mtd/nand/raw/tango_nand.c > @@ -83,7 +83,7 @@ > #define MAX_CS 4 > > struct tango_nfc { > - struct nand_hw_control hw; > + struct nand_controller hw; > void __iomem *reg_base; > void __iomem *mem_base; > void __iomem *pbus_base; > diff --git a/drivers/mtd/nand/raw/tegra_nand.c b/drivers/mtd/nand/raw/tegra_nand.c > index 22d6a7f9ff80..1d5a646ca1e5 100644 > --- a/drivers/mtd/nand/raw/tegra_nand.c > +++ b/drivers/mtd/nand/raw/tegra_nand.c > @@ -164,7 +164,7 @@ > HWSTATUS_RBSY_VALUE(NAND_STATUS_READY)) > > struct tegra_nand_controller { > - struct nand_hw_control controller; > + struct nand_controller controller; > struct device *dev; > void __iomem *regs; > int irq; > @@ -187,7 +187,7 @@ struct tegra_nand_chip { > }; > > static inline struct tegra_nand_controller * > - to_tegra_ctrl(struct nand_hw_control *hw_ctrl) > + to_tegra_ctrl(struct nand_controller *hw_ctrl) > { > return container_of(hw_ctrl, struct tegra_nand_controller, controller); > } > diff --git a/drivers/mtd/nand/raw/txx9ndfmc.c b/drivers/mtd/nand/raw/txx9ndfmc.c > index b567d212fe7d..89ec8d4c4e83 100644 > --- a/drivers/mtd/nand/raw/txx9ndfmc.c > +++ b/drivers/mtd/nand/raw/txx9ndfmc.c > @@ -73,7 +73,7 @@ struct txx9ndfmc_drvdata { > void __iomem *base; > unsigned char hold; /* in gbusclock */ > unsigned char spw; /* in gbusclock */ > - struct nand_hw_control hw_control; > + struct nand_controller hw_control; > }; > > static struct platform_device *mtd_to_platdev(struct mtd_info *mtd) > diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h > index e383c7f32574..cfe39fc18417 100644 > --- a/include/linux/mtd/rawnand.h > +++ b/include/linux/mtd/rawnand.h > @@ -510,20 +510,21 @@ struct nand_id { > }; > > /** > - * struct nand_hw_control - Control structure for hardware controller (e.g ECC generator) shared among independent devices > + * struct nand_controller - Control structure for hardware controller > + * shared among independent devices > * @lock: protection lock > * @active: the mtd device which holds the controller currently > * @wq: wait queue to sleep on if a NAND operation is in > * progress used instead of the per chip wait queue > * when a hw controller is available. > */ > -struct nand_hw_control { > +struct nand_controller { > spinlock_t lock; > struct nand_chip *active; > wait_queue_head_t wq; > }; > > -static inline void nand_hw_control_init(struct nand_hw_control *nfc) > +static inline void nand_hw_control_init(struct nand_controller *nfc) > { > nfc->active = NULL; > spin_lock_init(&nfc->lock); > @@ -1334,11 +1335,11 @@ struct nand_chip { > flstate_t state; > > uint8_t *oob_poi; > - struct nand_hw_control *controller; > + struct nand_controller *controller; > > struct nand_ecc_ctrl ecc; > unsigned long buf_align; > - struct nand_hw_control hwcontrol; > + struct nand_controller hwcontrol; > > uint8_t *bbt; > struct nand_bbt_descr *bbt_td;