* [U-Boot] [PATCH] mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
@ 2012-08-30 23:39 Marek Vasut
2012-08-30 23:45 ` Marek Vasut
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Marek Vasut @ 2012-08-30 23:39 UTC (permalink / raw)
To: u-boot
This is based on Linux kernel -next:
commit a1256b0e087ed3cdb584c683acb966ee885f733c
Author: Brian Norris <computersforpeace@gmail.com>
Date: Fri Jul 13 09:28:24 2012 -0700
mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
The NAND_CHIPOPTIONS_MSK has limited utility and is causing real bugs. It
silently masks off at least one flag that might be set by the driver
(NAND_NO_SUBPAGE_WRITE). This breaks the GPMI NAND driver and possibly
others.
Really, as long as driver writers exercise a small amount of care with
NAND_* options, this mask is not necessary at all; it was only here to
prevent certain options from accidentally being set by the driver. But the
original thought turns out to be a bad idea occasionally. Thus, kill it.
Note, this patch fixes some major gpmi-nand breakage.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Brian Norris <computersforpeace@gmail.com>
Cc: Eric Nelson <eric.nelson@boundarydevices.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Cc: Scott Wood <scottwood@freescale.com>
---
drivers/mtd/nand/nand_base.c | 7 ++-----
include/linux/mtd/nand.h | 3 ---
2 files changed, 2 insertions(+), 8 deletions(-)
NOTE: Please test before applying, I'd like to know it doesn't cause breakage.
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index bfd668f..658b3ad 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -2578,9 +2578,7 @@ static int nand_flash_detect_onfi(struct mtd_info *mtd, struct nand_chip *chip,
if (le16_to_cpu(p->features) & 1)
*busw = NAND_BUSWIDTH_16;
- chip->options &= ~NAND_CHIPOPTIONS_MSK;
- chip->options |= (NAND_NO_READRDY |
- NAND_NO_AUTOINCR) & NAND_CHIPOPTIONS_MSK;
+ chip->options |= NAND_NO_READRDY | NAND_NO_AUTOINCR;
return 1;
}
@@ -2752,8 +2750,7 @@ static const struct nand_flash_dev *nand_get_flash_type(struct mtd_info *mtd,
}
}
/* Get chip options, preserve non chip based options */
- chip->options &= ~NAND_CHIPOPTIONS_MSK;
- chip->options |= type->options & NAND_CHIPOPTIONS_MSK;
+ chip->options |= type->options;
/* Check if chip is a not a samsung device. Do not clear the
* options for chips which are not having an extended id.
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
index 82704de..0a5aa64 100644
--- a/include/linux/mtd/nand.h
+++ b/include/linux/mtd/nand.h
@@ -205,9 +205,6 @@ typedef enum {
#define NAND_SUBPAGE_READ(chip) ((chip->ecc.mode == NAND_ECC_SOFT) \
&& (chip->page_shift > 9))
-/* Mask to zero out the chip options, which come from the id table */
-#define NAND_CHIPOPTIONS_MSK (0x0000ffff & ~NAND_NO_AUTOINCR)
-
/* Non chip related options */
/*
* Use a flash based bad block table. OOB identifier is saved in OOB area.
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread* [U-Boot] [PATCH] mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
2012-08-30 23:39 [U-Boot] [PATCH] mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver Marek Vasut
@ 2012-08-30 23:45 ` Marek Vasut
2012-09-01 20:24 ` Stefano Babic
2012-09-17 23:55 ` [U-Boot] " Scott Wood
2 siblings, 0 replies; 7+ messages in thread
From: Marek Vasut @ 2012-08-30 23:45 UTC (permalink / raw)
To: u-boot
Dear Marek Vasut,
> This is based on Linux kernel -next:
>
> commit a1256b0e087ed3cdb584c683acb966ee885f733c
> Author: Brian Norris <computersforpeace@gmail.com>
> Date: Fri Jul 13 09:28:24 2012 -0700
>
> mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
>
> The NAND_CHIPOPTIONS_MSK has limited utility and is causing real bugs.
> It silently masks off at least one flag that might be set by the driver
> (NAND_NO_SUBPAGE_WRITE). This breaks the GPMI NAND driver and possibly
> others.
>
> Really, as long as driver writers exercise a small amount of care with
> NAND_* options, this mask is not necessary at all; it was only here to
> prevent certain options from accidentally being set by the driver. But
> the original thought turns out to be a bad idea occasionally. Thus, kill
> it.
>
> Note, this patch fixes some major gpmi-nand breakage.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Brian Norris <computersforpeace@gmail.com>
> Cc: Eric Nelson <eric.nelson@boundarydevices.com>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Otavio Salvador <otavio@ossystems.com.br>
> Cc: Scott Wood <scottwood@freescale.com>
> ---
> drivers/mtd/nand/nand_base.c | 7 ++-----
> include/linux/mtd/nand.h | 3 ---
> 2 files changed, 2 insertions(+), 8 deletions(-)
>
> NOTE: Please test before applying, I'd like to know it doesn't cause
> breakage.
NOTE2: This fixes UBI on MX28, MX6Q and soon-to-be MX233 GPMI NAND. Thanks
again, Brian!
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index bfd668f..658b3ad 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -2578,9 +2578,7 @@ static int nand_flash_detect_onfi(struct mtd_info
> *mtd, struct nand_chip *chip, if (le16_to_cpu(p->features) & 1)
> *busw = NAND_BUSWIDTH_16;
>
> - chip->options &= ~NAND_CHIPOPTIONS_MSK;
> - chip->options |= (NAND_NO_READRDY |
> - NAND_NO_AUTOINCR) & NAND_CHIPOPTIONS_MSK;
> + chip->options |= NAND_NO_READRDY | NAND_NO_AUTOINCR;
>
> return 1;
> }
> @@ -2752,8 +2750,7 @@ static const struct nand_flash_dev
> *nand_get_flash_type(struct mtd_info *mtd, }
> }
> /* Get chip options, preserve non chip based options */
> - chip->options &= ~NAND_CHIPOPTIONS_MSK;
> - chip->options |= type->options & NAND_CHIPOPTIONS_MSK;
> + chip->options |= type->options;
>
> /* Check if chip is a not a samsung device. Do not clear the
> * options for chips which are not having an extended id.
> diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
> index 82704de..0a5aa64 100644
> --- a/include/linux/mtd/nand.h
> +++ b/include/linux/mtd/nand.h
> @@ -205,9 +205,6 @@ typedef enum {
> #define NAND_SUBPAGE_READ(chip) ((chip->ecc.mode == NAND_ECC_SOFT) \
> && (chip->page_shift > 9))
>
> -/* Mask to zero out the chip options, which come from the id table */
> -#define NAND_CHIPOPTIONS_MSK (0x0000ffff & ~NAND_NO_AUTOINCR)
> -
> /* Non chip related options */
> /*
> * Use a flash based bad block table. OOB identifier is saved in OOB area.
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 7+ messages in thread* [U-Boot] [PATCH] mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
2012-08-30 23:39 [U-Boot] [PATCH] mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver Marek Vasut
2012-08-30 23:45 ` Marek Vasut
@ 2012-09-01 20:24 ` Stefano Babic
2012-09-01 20:27 ` Marek Vasut
2012-09-17 23:55 ` [U-Boot] " Scott Wood
2 siblings, 1 reply; 7+ messages in thread
From: Stefano Babic @ 2012-09-01 20:24 UTC (permalink / raw)
To: u-boot
On 31/08/2012 01:39, Marek Vasut wrote:
> This is based on Linux kernel -next:
>
> commit a1256b0e087ed3cdb584c683acb966ee885f733c
> Author: Brian Norris <computersforpeace@gmail.com>
> Date: Fri Jul 13 09:28:24 2012 -0700
>
> mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
>
> The NAND_CHIPOPTIONS_MSK has limited utility and is causing real bugs. It
> silently masks off at least one flag that might be set by the driver
> (NAND_NO_SUBPAGE_WRITE). This breaks the GPMI NAND driver and possibly
> others.
>
> Really, as long as driver writers exercise a small amount of care with
> NAND_* options, this mask is not necessary at all; it was only here to
> prevent certain options from accidentally being set by the driver. But the
> original thought turns out to be a bad idea occasionally. Thus, kill it.
>
> Note, this patch fixes some major gpmi-nand breakage.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Brian Norris <computersforpeace@gmail.com>
> Cc: Eric Nelson <eric.nelson@boundarydevices.com>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Otavio Salvador <otavio@ossystems.com.br>
> Cc: Scott Wood <scottwood@freescale.com>
> ---
Hi Marek,
> drivers/mtd/nand/nand_base.c | 7 ++-----
> include/linux/mtd/nand.h | 3 ---
> 2 files changed, 2 insertions(+), 8 deletions(-)
>
> NOTE: Please test before applying, I'd like to know it doesn't cause breakage.
>
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index bfd668f..658b3ad 100644
This fixes the same issue on the ea20 (davinci), and drop the painful
NAND_CHIPOPTIONS_MSK. Thanks !
Regards,
Stefano
--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH] mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
2012-09-01 20:24 ` Stefano Babic
@ 2012-09-01 20:27 ` Marek Vasut
0 siblings, 0 replies; 7+ messages in thread
From: Marek Vasut @ 2012-09-01 20:27 UTC (permalink / raw)
To: u-boot
Dear Stefano Babic,
> On 31/08/2012 01:39, Marek Vasut wrote:
> > This is based on Linux kernel -next:
> >
> > commit a1256b0e087ed3cdb584c683acb966ee885f733c
> > Author: Brian Norris <computersforpeace@gmail.com>
> > Date: Fri Jul 13 09:28:24 2012 -0700
> >
> > mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
> >
> > The NAND_CHIPOPTIONS_MSK has limited utility and is causing real
> > bugs. It silently masks off at least one flag that might be set by
> > the driver (NAND_NO_SUBPAGE_WRITE). This breaks the GPMI NAND driver
> > and possibly others.
> >
> > Really, as long as driver writers exercise a small amount of care
> > with NAND_* options, this mask is not necessary at all; it was only
> > here to prevent certain options from accidentally being set by the
> > driver. But the original thought turns out to be a bad idea
> > occasionally. Thus, kill it.
> >
> > Note, this patch fixes some major gpmi-nand breakage.
> >
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Brian Norris <computersforpeace@gmail.com>
> > Cc: Eric Nelson <eric.nelson@boundarydevices.com>
> > Cc: Fabio Estevam <festevam@gmail.com>
> > Cc: Otavio Salvador <otavio@ossystems.com.br>
> > Cc: Scott Wood <scottwood@freescale.com>
> > ---
>
> Hi Marek,
>
> > drivers/mtd/nand/nand_base.c | 7 ++-----
> > include/linux/mtd/nand.h | 3 ---
> > 2 files changed, 2 insertions(+), 8 deletions(-)
> >
> > NOTE: Please test before applying, I'd like to know it doesn't cause
> > breakage.
> >
> > diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> > index bfd668f..658b3ad 100644
>
> This fixes the same issue on the ea20 (davinci), and drop the painful
> NAND_CHIPOPTIONS_MSK. Thanks !
I'm glad. I hope I didn't infringe anything with this patch and that I properly
followed this "porting Linux patches" procedure.
> Regards,
> Stefano
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
2012-08-30 23:39 [U-Boot] [PATCH] mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver Marek Vasut
2012-08-30 23:45 ` Marek Vasut
2012-09-01 20:24 ` Stefano Babic
@ 2012-09-17 23:55 ` Scott Wood
2012-09-18 0:01 ` Marek Vasut
2 siblings, 1 reply; 7+ messages in thread
From: Scott Wood @ 2012-09-17 23:55 UTC (permalink / raw)
To: u-boot
On Thu, Aug 30, 2012 at 01:39:38PM -0000, Marek Vasut wrote:
> This is based on Linux kernel -next:
>
> commit a1256b0e087ed3cdb584c683acb966ee885f733c
> Author: Brian Norris <computersforpeace@gmail.com>
> Date: Fri Jul 13 09:28:24 2012 -0700
>
> mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
>
> The NAND_CHIPOPTIONS_MSK has limited utility and is causing real bugs. It
> silently masks off at least one flag that might be set by the driver
> (NAND_NO_SUBPAGE_WRITE). This breaks the GPMI NAND driver and possibly
> others.
>
> Really, as long as driver writers exercise a small amount of care with
> NAND_* options, this mask is not necessary at all; it was only here to
> prevent certain options from accidentally being set by the driver. But the
> original thought turns out to be a bad idea occasionally. Thus, kill it.
>
> Note, this patch fixes some major gpmi-nand breakage.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Brian Norris <computersforpeace@gmail.com>
> Cc: Eric Nelson <eric.nelson@boundarydevices.com>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Otavio Salvador <otavio@ossystems.com.br>
> Cc: Scott Wood <scottwood@freescale.com>
Applied to u-boot-nand-flash with the SHA1 updated based on current
linux-next: 14f44abf1dafc20ba42ce8616a8fc8fbd1b3712b
-Scott
^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
2012-09-17 23:55 ` [U-Boot] " Scott Wood
@ 2012-09-18 0:01 ` Marek Vasut
2012-09-18 0:06 ` Scott Wood
0 siblings, 1 reply; 7+ messages in thread
From: Marek Vasut @ 2012-09-18 0:01 UTC (permalink / raw)
To: u-boot
Dear Scott Wood,
> On Thu, Aug 30, 2012 at 01:39:38PM -0000, Marek Vasut wrote:
> > This is based on Linux kernel -next:
> >
> > commit a1256b0e087ed3cdb584c683acb966ee885f733c
> > Author: Brian Norris <computersforpeace@gmail.com>
> > Date: Fri Jul 13 09:28:24 2012 -0700
> >
> > mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
> >
> > The NAND_CHIPOPTIONS_MSK has limited utility and is causing real
> > bugs. It silently masks off at least one flag that might be set by
> > the driver (NAND_NO_SUBPAGE_WRITE). This breaks the GPMI NAND driver
> > and possibly others.
> >
> > Really, as long as driver writers exercise a small amount of care
> > with NAND_* options, this mask is not necessary at all; it was only
> > here to prevent certain options from accidentally being set by the
> > driver. But the original thought turns out to be a bad idea
> > occasionally. Thus, kill it.
> >
> > Note, this patch fixes some major gpmi-nand breakage.
> >
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Brian Norris <computersforpeace@gmail.com>
> > Cc: Eric Nelson <eric.nelson@boundarydevices.com>
> > Cc: Fabio Estevam <festevam@gmail.com>
> > Cc: Otavio Salvador <otavio@ossystems.com.br>
> > Cc: Scott Wood <scottwood@freescale.com>
>
> Applied to u-boot-nand-flash with the SHA1 updated based on current
> linux-next: 14f44abf1dafc20ba42ce8616a8fc8fbd1b3712b
Thanks ... I think the sha1 is irrelevant as next is being constantly rebased
anyway :/
btw. this should definitelly go to current release.
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
2012-09-18 0:01 ` Marek Vasut
@ 2012-09-18 0:06 ` Scott Wood
0 siblings, 0 replies; 7+ messages in thread
From: Scott Wood @ 2012-09-18 0:06 UTC (permalink / raw)
To: u-boot
On 09/17/2012 07:01:39 PM, Marek Vasut wrote:
> Dear Scott Wood,
>
> > On Thu, Aug 30, 2012 at 01:39:38PM -0000, Marek Vasut wrote:
> > > This is based on Linux kernel -next:
> > >
> > > commit a1256b0e087ed3cdb584c683acb966ee885f733c
> > > Author: Brian Norris <computersforpeace@gmail.com>
> > > Date: Fri Jul 13 09:28:24 2012 -0700
> > >
> > > mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver
> > >
> > > The NAND_CHIPOPTIONS_MSK has limited utility and is causing
> real
> > > bugs. It silently masks off at least one flag that might be
> set by
> > > the driver (NAND_NO_SUBPAGE_WRITE). This breaks the GPMI NAND
> driver
> > > and possibly others.
> > >
> > > Really, as long as driver writers exercise a small amount of
> care
> > > with NAND_* options, this mask is not necessary at all; it
> was only
> > > here to prevent certain options from accidentally being set
> by the
> > > driver. But the original thought turns out to be a bad idea
> > > occasionally. Thus, kill it.
> > >
> > > Note, this patch fixes some major gpmi-nand breakage.
> > >
> > > Signed-off-by: Marek Vasut <marex@denx.de>
> > > Cc: Brian Norris <computersforpeace@gmail.com>
> > > Cc: Eric Nelson <eric.nelson@boundarydevices.com>
> > > Cc: Fabio Estevam <festevam@gmail.com>
> > > Cc: Otavio Salvador <otavio@ossystems.com.br>
> > > Cc: Scott Wood <scottwood@freescale.com>
> >
> > Applied to u-boot-nand-flash with the SHA1 updated based on current
> > linux-next: 14f44abf1dafc20ba42ce8616a8fc8fbd1b3712b
>
> Thanks ... I think the sha1 is irrelevant as next is being constantly
> rebased
> anyway :/
They're at -rc6 or so, so maybe this'll be the final one. :-)
The SHA1 should only change if the tree it was pulled from got rebased.
> btw. this should definitelly go to current release.
Yes.
-Scott
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-09-18 0:06 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-30 23:39 [U-Boot] [PATCH] mtd: nand: allow NAND_NO_SUBPAGE_WRITE to be set from driver Marek Vasut
2012-08-30 23:45 ` Marek Vasut
2012-09-01 20:24 ` Stefano Babic
2012-09-01 20:27 ` Marek Vasut
2012-09-17 23:55 ` [U-Boot] " Scott Wood
2012-09-18 0:01 ` Marek Vasut
2012-09-18 0:06 ` Scott Wood
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox