Skip to contentSkip to conversation

ARM: Fix gen_nand probe structures contents

PATCH In review Marek Vasut 3 participants 9 messages Aug 12, 2010

Subsystems (8)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/2 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"

---
v2: Added other broken boards outside arch-arm (mips and bfin)
v1: Initial patch

 arch/arm/mach-ixp4xx/ixdp425-setup.c      |    1 +
 arch/arm/mach-mx3/mach-qong.c             |    1 +
 arch/arm/mach-orion5x/ts78xx-setup.c      |    1 +
 arch/blackfin/mach-bf537/boards/stamp.c   |    1 +
 arch/blackfin/mach-bf561/boards/acvilon.c |    1 +
 arch/mips/nxp/pnx833x/common/platform.c   |    1 +
 6 files changed, 6 insertions(+), 0 deletions(-)
arch/arm/mach-ixp4xx/ixdp425-setup.c +1 -0
index 827cbc4..ea9ee4e 100644
@@ -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
arch/arm/mach-mx3/mach-qong.c +1 -0
index e5b5b83..1f9363f 100644
@@ -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,
 	},
arch/arm/mach-orion5x/ts78xx-setup.c +1 -0
index 5041d1b..696b1a9 100644
@@ -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),
arch/blackfin/mach-bf537/boards/stamp.c +1 -0
index 9eaf5b0..68a27bc 100644
@@ -400,6 +400,7 @@ static int bfin_plat_nand_dev_ready(struct mtd_info *mtd)
 
 static struct platform_nand_data bfin_plat_nand_data = {
 	.chip = {
+		.nr_chips = 1,
 		.chip_delay = 30,
 #ifdef CONFIG_MTD_PARTITIONS
 		.part_probe_types = part_probes,
arch/blackfin/mach-bf561/boards/acvilon.c +1 -0
index bfcfa86..35b6d12 100644
@@ -284,6 +284,7 @@ static int bfin_plat_nand_dev_ready(struct mtd_info *mtd)
 
 static struct platform_nand_data bfin_plat_nand_data = {
 	.chip = {
+		 .nr_chips = 1,
 		 .chip_delay = 30,
 #ifdef CONFIG_MTD_PARTITIONS
 		 .part_probe_types = part_probes,
arch/mips/nxp/pnx833x/common/platform.c +1 -0
index 01f8345..ce45df1 100644
@@ -266,6 +266,7 @@ pnx833x_flash_nand_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
 
 static struct platform_nand_data pnx833x_flash_nand_data = {
 	.chip = {
+		.nr_chips		= 1,
 		.chip_delay		= 25,
 		.part_probe_types 	= part_probes,
 	},
Signature · 1 line
1.7.1
#1 lore raw

PATCH 2/2 gen_nand: Test if nr_chips field is valid

---
 drivers/mtd/nand/plat_nand.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
drivers/mtd/nand/plat_nand.c +5 -0
index 90e143e..317aff4 100644
@@ -37,6 +37,11 @@ static int __devinit plat_nand_probe(struct platform_device *pdev)
 	struct resource *res;
 	int err = 0;
 
+	if (pdata->chip.nr_chips < 1) {
+		dev_err(&pdev->dev, "invalid number of chips specified\n");
+		return -EINVAL;
+	}
+
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	if (!res)
 		return -ENXIO;
Signature · 1 line
1.7.1
#2 lore raw
In reply to Marek Vasut

Dne ?t 12. srpna 2010 04:53:54 Marek Vasut napsal(a):

Quoted 4 lines

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:

NOTE for bfin guys: I'm slightly concerned about overall code quality on the BFIN architecture. Maybe someone should run it through checkpatch or something.

Quoted 92 lines

"mtd: gen_nand: fix support for multiple chips"

---
v2: Added other broken boards outside arch-arm (mips and bfin)
v1: Initial patch

 arch/arm/mach-ixp4xx/ixdp425-setup.c      |    1 +
 arch/arm/mach-mx3/mach-qong.c             |    1 +
 arch/arm/mach-orion5x/ts78xx-setup.c      |    1 +
 arch/blackfin/mach-bf537/boards/stamp.c   |    1 +
 arch/blackfin/mach-bf561/boards/acvilon.c |    1 +
 arch/mips/nxp/pnx833x/common/platform.c   |    1 +
 6 files changed, 6 insertions(+), 0 deletions(-)
(quoted diff) +0 -0

b/arch/arm/mach-ixp4xx/ixdp425-setup.c index 827cbc4..ea9ee4e 100644

arch/arm/mach-ixp4xx/ixdp425-setup.c +1 -0
@@ -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

arch/arm/mach-mx3/mach-qong.c +1 -0
index e5b5b83..1f9363f 100644
@@ -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,
arch/arm/mach-mx3/mach-qong.c +0 -0
 	},
(quoted diff) +0 -0

b/arch/arm/mach-orion5x/ts78xx-setup.c index 5041d1b..696b1a9 100644

arch/arm/mach-orion5x/ts78xx-setup.c +1 -0
@@ -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),
(quoted diff) +0 -0

b/arch/blackfin/mach-bf537/boards/stamp.c index 9eaf5b0..68a27bc 100644

arch/blackfin/mach-bf537/boards/stamp.c +1 -0
@@ -400,6 +400,7 @@ static int bfin_plat_nand_dev_ready(struct mtd_info
 *mtd)
 
 static struct platform_nand_data bfin_plat_nand_data = {
 	.chip = {
+		.nr_chips = 1,
 		.chip_delay = 30,
 #ifdef CONFIG_MTD_PARTITIONS
arch/blackfin/mach-bf537/boards/stamp.c +0 -0
 		.part_probe_types = part_probes,
(quoted diff) +0 -0

b/arch/blackfin/mach-bf561/boards/acvilon.c index bfcfa86..35b6d12 100644

arch/blackfin/mach-bf561/boards/acvilon.c +1 -0
@@ -284,6 +284,7 @@ static int bfin_plat_nand_dev_ready(struct mtd_info
 *mtd)
 
 static struct platform_nand_data bfin_plat_nand_data = {
 	.chip = {
+		 .nr_chips = 1,
 		 .chip_delay = 30,
 #ifdef CONFIG_MTD_PARTITIONS
arch/blackfin/mach-bf561/boards/acvilon.c +0 -0
 		 .part_probe_types = part_probes,
(quoted diff) +0 -0

b/arch/mips/nxp/pnx833x/common/platform.c index 01f8345..ce45df1 100644

arch/mips/nxp/pnx833x/common/platform.c +1 -0
@@ -266,6 +266,7 @@ pnx833x_flash_nand_cmd_ctrl(struct mtd_info *mtd, int
 cmd, unsigned int ctrl)
 
 static struct platform_nand_data pnx833x_flash_nand_data = {
 	.chip = {
+		.nr_chips		= 1,
 		.chip_delay		= 25,
 		.part_probe_types 	= part_probes,

},

#3 lore raw
Quoted 2 lines · Marek Vasut

NOTE for bfin guys: I'm slightly concerned about overall code quality on the BFIN architecture.

that makes one of us
-mike

Acked-by on v2 1/2
#4 lore raw
In reply to Marek Vasut
Quoted 2 lines · Marek Vasut

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:

the Blackfin arch has a mailing list ... no need to pick out people

Quoted 4 lines

"mtd: gen_nand: fix support for multiple chips"

?arch/blackfin/mach-bf537/boards/stamp.c ? | ? ?1 + ?arch/blackfin/mach-bf561/boards/acvilon.c | ? ?1 +

looks sane enough to me

-mike

#5 lore raw

Dne ?t 12. srpna 2010 05:36:31 Mike Frysinger napsal(a):

Quoted 6 lines · Marek Vasut
Quoted 4 lines

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:

the Blackfin arch has a mailing list ... no need to pick out people

Hi, that's true, but there's that "scripts/get_maintainer.pl" thing which gave me this list.

Cheers

Quoted 9 lines
Quoted 5 lines

"mtd: gen_nand: fix support for multiple chips"

 arch/blackfin/mach-bf537/boards/stamp.c   |    1 +
 arch/blackfin/mach-bf561/boards/acvilon.c |    1 +

looks sane enough to me

-mike

#6 lore raw
Quoted 10 lines · Marek Vasut

Dne ?t 12. srpna 2010 05:36:31 Mike Frysinger napsal(a):

Quoted 6 lines · Marek Vasut
Quoted 4 lines

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:

the Blackfin arch has a mailing list ... no need to pick out people

Hi, that's true, but there's that "scripts/get_maintainer.pl" thing which gave me this list.

yes, but typically that's a shotgun approach that grabs way more people and can easily fall out of date (people no longer exist/etc...). personally, i use it as a fallback when MAINTAINERS doesnt cover it.
-mike

#7 lore raw

Dne ?t 12. srpna 2010 14:47:06 Mike Frysinger napsal(a):

Quoted 9 lines · Marek Vasut
Quoted 8 lines

Dne ?t 12. srpna 2010 05:36:31 Mike Frysinger napsal(a):

Quoted 6 lines · Marek Vasut
Quoted 4 lines

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:

the Blackfin arch has a mailing list ... no need to pick out people

Quoted 8 lines
Quoted 2 lines

Hi, that's true, but there's that "scripts/get_maintainer.pl" thing which gave me this list.

yes, but typically that's a shotgun approach that grabs way more people and can easily fall out of date (people no longer exist/etc...). personally, i use it as a fallback when MAINTAINERS doesnt cover it.
-mike

The more eyes on the code, the better :)

Cheers

#8 lore raw

PATCH v2 1/2 ARM: Fix gen_nand probe structures contents

In reply to Marek Vasut
Quoted 10 lines · Marek Vasut

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"

---
v2: Added other broken boards outside arch-arm (mips and bfin)
v1: Initial patch

Quoted 7 lines
 arch/arm/mach-ixp4xx/ixdp425-setup.c      |    1 +
 arch/arm/mach-mx3/mach-qong.c             |    1 +
 arch/arm/mach-orion5x/ts78xx-setup.c      |    1 +
 arch/blackfin/mach-bf537/boards/stamp.c   |    1 +
 arch/blackfin/mach-bf561/boards/acvilon.c |    1 +
 arch/mips/nxp/pnx833x/common/platform.c   |    1 +
 6 files changed, 6 insertions(+), 0 deletions(-)

I'd already applied the three in arch/arm. Have now applied the others; thanks.

Signature · 2 lines
David Woodhouse                            Open Source Technology Centre
David.Woodhouse at intel.com                              Intel Corporation