[POWERPC] 4xx: Use machine_device_initcall() for warp_nand
authorValentine Barshak <vbarshak@ru.mvista.com>
Fri, 4 Apr 2008 18:24:37 +0000 (05:24 +1100)
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>
Sat, 5 Apr 2008 14:34:13 +0000 (09:34 -0500)
With a multiplatform kernel, once built we always have warp_setup_nand_flash()
called and NDFC probed, no matter what machine we actually run on. This
potentially can cause problems (such as kernel crash), since NDFC is probed at
a warp-predefined address.

Using machine_device_initcall() NAND devices are registered if we run on a warp only.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
arch/powerpc/platforms/44x/warp-nand.c

index 84ab78f..9150318 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/nand.h>
 #include <linux/mtd/ndfc.h>
+#include <asm/machdep.h>
 
 #ifdef CONFIG_MTD_NAND_NDFC
 
@@ -100,6 +101,6 @@ static int warp_setup_nand_flash(void)
 
        return 0;
 }
-device_initcall(warp_setup_nand_flash);
+machine_device_initcall(warp, warp_setup_nand_flash);
 
 #endif