[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