[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