diff options
author | Russell King <linux@arm.linux.org.uk> | 2005-01-24 18:49:54 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@mtd.linutronix.de> | 2005-05-23 06:15:15 -0400 |
commit | 6170b43401a3230756ff76287ee07db0d75eddde (patch) | |
tree | 771cda30b12defc6417086de0a41d1f8e81b576a | |
parent | 3118db3dfe7c16284d1d578e628fd87639b00731 (diff) |
[MTD] Fix MTD device probing
Try larger numbers of chips before smaller
numbers of chips across the bus width.
This means we'll avoid misdetecting a 2 x16 array as 1 x32 if the
high 16-bits happen to read as zeros in the QRY area.
Signed-off-by: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | drivers/mtd/chips/gen_probe.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/mtd/chips/gen_probe.c b/drivers/mtd/chips/gen_probe.c index fc982c4671f0..dc065b22f79e 100644 --- a/drivers/mtd/chips/gen_probe.c +++ b/drivers/mtd/chips/gen_probe.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * Routines common to all CFI-type probes. | 2 | * Routines common to all CFI-type probes. |
3 | * (C) 2001-2003 Red Hat, Inc. | 3 | * (C) 2001-2003 Red Hat, Inc. |
4 | * GPL'd | 4 | * GPL'd |
5 | * $Id: gen_probe.c,v 1.21 2004/08/14 15:14:05 dwmw2 Exp $ | 5 | * $Id: gen_probe.c,v 1.22 2005/01/24 23:49:50 rmk Exp $ |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
@@ -162,7 +162,7 @@ static int genprobe_new_chip(struct map_info *map, struct chip_probe *cp, | |||
162 | int max_chips = map_bankwidth(map); /* And minimum 1 */ | 162 | int max_chips = map_bankwidth(map); /* And minimum 1 */ |
163 | int nr_chips, type; | 163 | int nr_chips, type; |
164 | 164 | ||
165 | for (nr_chips = min_chips; nr_chips <= max_chips; nr_chips <<= 1) { | 165 | for (nr_chips = max_chips; nr_chips >= min_chips; nr_chips >>= 1) { |
166 | 166 | ||
167 | if (!cfi_interleave_supported(nr_chips)) | 167 | if (!cfi_interleave_supported(nr_chips)) |
168 | continue; | 168 | continue; |