[MTD] Fix MTD device probing
authorRussell King <linux@arm.linux.org.uk>
Mon, 24 Jan 2005 23:49:54 +0000 (23:49 +0000)
committerThomas Gleixner <tglx@mtd.linutronix.de>
Mon, 23 May 2005 10:15:15 +0000 (12:15 +0200)
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>
drivers/mtd/chips/gen_probe.c

index fc982c4671f0cb7a976ce355cc01ecfb4eb6d5c6..dc065b22f79ece4ee37440038c965766cfcaa8d4 100644 (file)
@@ -2,7 +2,7 @@
  * Routines common to all CFI-type probes.
  * (C) 2001-2003 Red Hat, Inc.
  * GPL'd
- * $Id: gen_probe.c,v 1.21 2004/08/14 15:14:05 dwmw2 Exp $
+ * $Id: gen_probe.c,v 1.22 2005/01/24 23:49:50 rmk Exp $
  */
 
 #include <linux/kernel.h>
@@ -162,7 +162,7 @@ static int genprobe_new_chip(struct map_info *map, struct chip_probe *cp,
        int max_chips = map_bankwidth(map); /* And minimum 1 */
        int nr_chips, type;
 
-       for (nr_chips = min_chips; nr_chips <= max_chips; nr_chips <<= 1) {
+       for (nr_chips = max_chips; nr_chips >= min_chips; nr_chips >>= 1) {
 
                if (!cfi_interleave_supported(nr_chips))
                    continue;