[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 09:59:15 CEST 2016


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).

> 
> Though some of the changes seem to be removing SPL mtd pointers rather than
> converting chip->mtd.  I don't care much whether those pointers are retained
> but it's not "directly accessing chip->mtd".

Yes, I dropped all the unnecessary changes.

Regards,

Boris

> 
> -Scott
> 

--->8---
From 8e0ff4f7af34e28b4623e5f798e2b2dec7f23e8b 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..7d048c5 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 = mtd_to_nand(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..dd538e0 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 = mtd_to_nand(&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..cadba04 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 = mtd_to_nand(&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