Convert the nand driver to a platform_device, should only allow routerboards to use it
[openwrt.git] / target / linux / adm5120-2.6 / files / drivers / mtd / maps / adm5120_mtd.c
index a353926..3abad32 100644 (file)
@@ -43,6 +43,7 @@
 #include <linux/wait.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
+#include <linux/sched.h>
 #ifdef CONFIG_MTD_PARTITIONS
 #include <linux/mtd/partitions.h>
 #endif
@@ -391,10 +392,8 @@ init_mtd_partitions(struct mtd_info *mtd, size_t size)
        }
 
        /* find and size rootfs */
-       if (find_root(mtd,size,&adm5120_cfe_parts[2])==0) {
-               adm5120_cfe_parts[2].size = size - adm5120_cfe_parts[2].offset -
-                               adm5120_cfe_parts[3].size;
-       }
+       find_root(mtd,size,&adm5120_cfe_parts[2]);
+       adm5120_cfe_parts[2].size = size - adm5120_cfe_parts[2].offset - adm5120_cfe_parts[3].size;
 
        return adm5120_cfe_parts;
 }
@@ -408,8 +407,12 @@ int __init init_adm5120_map(void)
        struct mtd_partition *parts;
        int i, parsed_nr_parts = 0;
 #endif
-       printk("adm5120 : flash init : 0x%08x 0x%08x\n", WINDOW_ADDR, WINDOW_SIZE);
-       adm5120_map.virt = ioremap_nocache(WINDOW_ADDR, WINDOW_SIZE);
+
+       if (adm5120_nand_boot)
+               return -ENODEV;
+
+       printk("adm5120 : flash init : 0x%08x 0x%08x\n", WINDOW_ADDR, adm5120_board.flash0_size);
+       adm5120_map.virt = ioremap_nocache(WINDOW_ADDR, adm5120_board.flash0_size);
 
        if (!adm5120_map.virt) {
                printk("Failed to ioremap\n");
@@ -434,7 +437,7 @@ int __init init_adm5120_map(void)
 
 #ifdef CONFIG_MTD_PARTITIONS
 
-       if (adm5120_boot_loader == BOOT_LOADER_CFE)
+       if (adm5120_boot_loader == BOOT_LOADER_CFE || adm5120_boot_loader == BOOT_LOADER_UNKNOWN)
        {
                printk(KERN_NOTICE "adm5120 : using CFE flash mapping\n");
                parts = init_mtd_partitions(adm5120_mtd, size);
This page took 0.027413 seconds and 4 git commands to generate.