[U-Boot] [PATCH 5/7] mtd: nand: Add+use mtd_to/from_nand and nand_get/set_controller_data

Boris Brezillon boris.brezillon at free-electrons.com
Wed Jun 15 10:07:29 CEST 2016


On Wed, 15 Jun 2016 09:59:15 +0200
Boris Brezillon <boris.brezillon at free-electrons.com> wrote:

> Hi Scott,
> 
> On Thu, 09 Jun 2016 21:07:00 -0500
> Scott Wood <oss at buserror.net> wrote:
> 
> > On Mon, 2016-06-06 at 18:02 +0200, Boris Brezillon wrote:  
> > > On Mon, 30 May 2016 13:57:56 -0500
> > > Scott Wood <oss at buserror.net> wrote:
> > >     
> > > > These functions are part of the Linux 4.6 sync.  They are being added
> > > > before the main sync patch in order to make it easier to address the
> > > > issue across all NAND drivers (many/most of which do not closely track
> > > > their Linux counterparts) separately from other merge issues.    
> > > 
> > > Some drivers are still directly accessing chip->mtd. Here is a patch
> > > fixing those places [1] (not tested).
> > > 
> > > [1] http://code.bulix.org/inu69a-100476    
> > 
> > Could you send this as a proper patch?  
> 
> Sure, see below. You can squash the changes into you patch (hence the
> !fixup prefix).

Oops, sorry this version was buggy: mtd_to_nand() was called instead of
nand_to_mtd() in a few places. Here is an updated one.

--->8---
From 9c885ff8b3d96f29dfa5ef9850c4519a88a7912d Mon Sep 17 00:00:00 2001
From: Boris Brezillon <boris.brezillon at free-electrons.com>
Date: Wed, 15 Jun 2016 09:48:48 +0200
Subject: [PATCH] fixup! mtd: nand: Add+use mtd_to/from_nand and
 nand_get/set_controller_data

---
 doc/README.nand                     | 2 +-
 drivers/mtd/nand/am335x_spl_bch.c   | 2 +-
 drivers/mtd/nand/atmel_nand.c       | 2 +-
 drivers/mtd/nand/lpc32xx_nand_mlc.c | 2 +-
 drivers/mtd/nand/mxs_nand_spl.c     | 2 +-
 drivers/mtd/nand/nand_spl_simple.c  | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/doc/README.nand b/doc/README.nand
index 96ffc48..ff6fa9b 100644
--- a/doc/README.nand
+++ b/doc/README.nand
@@ -137,7 +137,7 @@ Configuration Options:
       init:
 
 	/* chip is struct nand_chip, and is now provided by the driver. */
-	mtd = &chip.mtd;
+	mtd = nand_to_mtd(&chip);
 
 	/*
 	 * Fill in appropriate values if this driver uses these fields,
diff --git a/drivers/mtd/nand/am335x_spl_bch.c b/drivers/mtd/nand/am335x_spl_bch.c
index 04d5a80..3e63249 100644
--- a/drivers/mtd/nand/am335x_spl_bch.c
+++ b/drivers/mtd/nand/am335x_spl_bch.c
@@ -210,7 +210,7 @@ void nand_init(void)
 	/*
 	 * Init board specific nand support
 	 */
-	mtd = &nand_chip.mtd;
+	mtd = nand_to_mtd(&nand_chip);
 	nand_chip.IO_ADDR_R = nand_chip.IO_ADDR_W =
 		(void  __iomem *)CONFIG_SYS_NAND_BASE;
 	board_nand_init(&nand_chip);
diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
index 75e8307..a66cfc1 100644
--- a/drivers/mtd/nand/atmel_nand.c
+++ b/drivers/mtd/nand/atmel_nand.c
@@ -1448,7 +1448,7 @@ int board_nand_init(struct nand_chip *nand)
 
 void nand_init(void)
 {
-	mtd = &nand_chip.mtd;
+	mtd = nand_to_mtd(&nand_chip);
 	mtd->writesize = CONFIG_SYS_NAND_PAGE_SIZE;
 	mtd->oobsize = CONFIG_SYS_NAND_OOBSIZE;
 	nand_chip.IO_ADDR_R = (void __iomem *)CONFIG_SYS_NAND_BASE;
diff --git a/drivers/mtd/nand/lpc32xx_nand_mlc.c b/drivers/mtd/nand/lpc32xx_nand_mlc.c
index 4262029..a793115 100644
--- a/drivers/mtd/nand/lpc32xx_nand_mlc.c
+++ b/drivers/mtd/nand/lpc32xx_nand_mlc.c
@@ -541,7 +541,7 @@ static struct nand_chip lpc32xx_chip;
 
 void board_nand_init(void)
 {
-	struct mtd_info *mtd = &lpc32xx_chip.mtd;
+	struct mtd_info *mtd = nand_to_mtd(&lpc32xx_chip);
 	int ret;
 
 	/* Set all BOARDSPECIFIC (actually core-specific) fields  */
diff --git a/drivers/mtd/nand/mxs_nand_spl.c b/drivers/mtd/nand/mxs_nand_spl.c
index a8a3084..ff28df4 100644
--- a/drivers/mtd/nand/mxs_nand_spl.c
+++ b/drivers/mtd/nand/mxs_nand_spl.c
@@ -147,7 +147,7 @@ static int mxs_nand_init(void)
 
 	/* init mxs nand driver */
 	board_nand_init(&nand_chip);
-	mtd = &nand_chip.mtd;
+	mtd = nand_to_mtd(&nand_chip);
 	/* set mtd functions */
 	nand_chip.cmdfunc = mxs_nand_command;
 	nand_chip.numchips = 1;
diff --git a/drivers/mtd/nand/nand_spl_simple.c b/drivers/mtd/nand/nand_spl_simple.c
index b023e00..60a7607 100644
--- a/drivers/mtd/nand/nand_spl_simple.c
+++ b/drivers/mtd/nand/nand_spl_simple.c
@@ -249,7 +249,7 @@ void nand_init(void)
 	/*
 	 * Init board specific nand support
 	 */
-	mtd = &nand_chip.mtd;
+	mtd = nand_to_mtd(&nand_chip);
 	nand_chip.IO_ADDR_R = nand_chip.IO_ADDR_W =
 		(void  __iomem *)CONFIG_SYS_NAND_BASE;
 	board_nand_init(&nand_chip);


More information about the U-Boot mailing list