2010-08-12 01:15:29

by Marek Vasut

[permalink] [raw]
Subject: [PATCH] ARM: Fix gen_nand probe structures contents

These three platforms didn't properly fill nr_chips in gen_nand registration and
therefore depended on gen_nand bug fixed by the following patch:

"mtd: gen_nand: fix support for multiple chips"

Signed-off-by: Marek Vasut <[email protected]>
---
arch/arm/mach-ixp4xx/ixdp425-setup.c | 1 +
arch/arm/mach-mx3/mach-qong.c | 1 +
arch/arm/mach-orion5x/ts78xx-setup.c | 1 +
3 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c
index 827cbc4..ea9ee4e 100644
--- a/arch/arm/mach-ixp4xx/ixdp425-setup.c
+++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c
@@ -100,6 +100,7 @@ ixdp425_flash_nand_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)

static struct platform_nand_data ixdp425_flash_nand_data = {
.chip = {
+ .nr_chips = 1,
.chip_delay = 30,
.options = NAND_NO_AUTOINCR,
#ifdef CONFIG_MTD_PARTITIONS
diff --git a/arch/arm/mach-mx3/mach-qong.c b/arch/arm/mach-mx3/mach-qong.c
index e5b5b83..1f9363f 100644
--- a/arch/arm/mach-mx3/mach-qong.c
+++ b/arch/arm/mach-mx3/mach-qong.c
@@ -169,6 +169,7 @@ static void qong_nand_select_chip(struct mtd_info *mtd, int chip)

static struct platform_nand_data qong_nand_data = {
.chip = {
+ .nr_chips = 1,
.chip_delay = 20,
.options = 0,
},
diff --git a/arch/arm/mach-orion5x/ts78xx-setup.c b/arch/arm/mach-orion5x/ts78xx-setup.c
index 5041d1b..696b1a9 100644
--- a/arch/arm/mach-orion5x/ts78xx-setup.c
+++ b/arch/arm/mach-orion5x/ts78xx-setup.c
@@ -216,6 +216,7 @@ static struct mtd_partition ts78xx_ts_nand_parts[] = {

static struct platform_nand_data ts78xx_ts_nand_data = {
.chip = {
+ .nr_chips = 1,
.part_probe_types = ts_nand_part_probes,
.partitions = ts78xx_ts_nand_parts,
.nr_partitions = ARRAY_SIZE(ts78xx_ts_nand_parts),
--
1.7.1


2010-08-12 01:22:06

by David Woodhouse

[permalink] [raw]
Subject: Re: [PATCH] ARM: Fix gen_nand probe structures contents

On Thu, 2010-08-12 at 02:14 +0100, Marek Vasut wrote:
> These three platforms didn't properly fill nr_chips in gen_nand
> registration and
> therefore depended on gen_nand bug fixed by the following patch:
>
> "mtd: gen_nand: fix support for multiple chips"
>
> Signed-off-by: Marek Vasut <[email protected]>

Thanks. I've applied that to the mtd-2.6.git tree, which has a few
straggling commits I'll be asking Linus to pull shortly.

In case there are any more, would you care to complement it with a check
in the driver that detects the nonsensical case of nr_chips == 0,
assumes it means 1, and also warns about it?

--
David Woodhouse Open Source Technology Centre
[email protected] Intel Corporation

2010-08-12 02:43:55

by Marek Vasut

[permalink] [raw]
Subject: Re: [PATCH] ARM: Fix gen_nand probe structures contents

Dne Čt 12. srpna 2010 03:21:52 David Woodhouse napsal(a):
> On Thu, 2010-08-12 at 02:14 +0100, Marek Vasut wrote:
> > These three platforms didn't properly fill nr_chips in gen_nand
> > registration and
> > therefore depended on gen_nand bug fixed by the following patch:
> >
> > "mtd: gen_nand: fix support for multiple chips"
> >
> > Signed-off-by: Marek Vasut <[email protected]>
>
> Thanks. I've applied that to the mtd-2.6.git tree, which has a few
> straggling commits I'll be asking Linus to pull shortly.
>
> In case there are any more, would you care to complement it with a check
> in the driver that detects the nonsensical case of nr_chips == 0,
> assumes it means 1, and also warns about it?

I checked whole arch-arm and there are no more. nr_chips check would be a nice
thing, I was thinking of it already when I sent the first patch. I just checked
the other archs and there are more breaks. I'll implement the check in a
separate patch.