Merge to Fedora kernel-2.6.18-1.2224_FC5 patched with stable patch-2.6.18.1-vs2.0...
[linux-2.6.git] / drivers / mtd / maps / nettel.c
index 53a9934..0994b5b 100644 (file)
@@ -6,7 +6,7 @@
  *      (C) Copyright 2000-2001, Greg Ungerer (gerg@snapgear.com)
  *      (C) Copyright 2001-2002, SnapGear (www.snapgear.com)
  *
- *     $Id: nettel.c,v 1.4 2003/05/20 20:59:30 dwmw2 Exp $
+ *     $Id: nettel.c,v 1.12 2005/11/29 14:30:00 gleixner Exp $
  */
 
 /****************************************************************************/
@@ -20,6 +20,8 @@
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/cfi.h>
 #include <linux/reboot.h>
+#include <linux/kdev_t.h>
+#include <linux/root_dev.h>
 #include <asm/io.h>
 
 /****************************************************************************/
@@ -65,7 +67,7 @@ static struct mtd_info *amd_mtd;
 static struct map_info nettel_intel_map = {
        .name = "SnapGear Intel",
        .size = 0,
-       .buswidth = INTEL_BUSWIDTH,
+       .bankwidth = INTEL_BUSWIDTH,
 };
 
 static struct mtd_partition nettel_intel_partitions[] = {
@@ -103,7 +105,7 @@ static struct mtd_partition nettel_intel_partitions[] = {
 static struct map_info nettel_amd_map = {
        .name = "SnapGear AMD",
        .size = AMD_WINDOW_MAXSIZE,
-       .buswidth = AMD_BUSWIDTH,
+       .bankwidth = AMD_BUSWIDTH,
 };
 
 static struct mtd_partition nettel_amd_partitions[] = {
@@ -128,8 +130,7 @@ static struct mtd_partition nettel_amd_partitions[] = {
        }
 };
 
-#define NUM_AMD_PARTITIONS \
-       (sizeof(nettel_amd_partitions)/sizeof(nettel_amd_partitions[0]))
+#define NUM_AMD_PARTITIONS ARRAY_SIZE(nettel_amd_partitions)
 
 /****************************************************************************/
 
@@ -143,7 +144,7 @@ static int nettel_reboot_notifier(struct notifier_block *nb, unsigned long val,
 {
        struct cfi_private *cfi = nettel_intel_map.fldrv_priv;
        unsigned long b;
-       
+
        /* Make sure all FLASH chips are put back into read mode */
        for (b = 0; (b < nettel_intel_partitions[3].size); b += 0x100000) {
                cfi_send_gen_cmd(0xff, 0x55, b, &nettel_intel_map, cfi,
@@ -180,7 +181,7 @@ int nettel_eraseconfig(void)
        if (mtd) {
                nettel_erase.mtd = mtd;
                nettel_erase.callback = nettel_erasecallback;
-               nettel_erase.callback = 0;
+               nettel_erase.callback = NULL;
                nettel_erase.addr = 0;
                nettel_erase.len = mtd->size;
                nettel_erase.priv = (u_long) &wait_q;
@@ -189,7 +190,7 @@ int nettel_eraseconfig(void)
                set_current_state(TASK_INTERRUPTIBLE);
                add_wait_queue(&wait_q, &wait);
 
-               ret = MTD_ERASE(mtd, &nettel_erase);
+               ret = mtd->erase(mtd, &nettel_erase);
                if (ret) {
                        set_current_state(TASK_RUNNING);
                        remove_wait_queue(&wait_q, &wait);
@@ -199,7 +200,7 @@ int nettel_eraseconfig(void)
 
                schedule();  /* Wait for erase to finish. */
                remove_wait_queue(&wait_q, &wait);
-               
+
                put_mtd_device(mtd);
        }
 
@@ -273,8 +274,7 @@ int __init nettel_init(void)
        __asm__ ("wbinvd");
 
        nettel_amd_map.phys = amdaddr;
-       nettel_amd_map.virt = (unsigned long)
-               ioremap_nocache(amdaddr, maxsize);
+       nettel_amd_map.virt = ioremap_nocache(amdaddr, maxsize);
        if (!nettel_amd_map.virt) {
                printk("SNAPGEAR: failed to ioremap() BOOTCS\n");
                return(-EIO);
@@ -333,8 +333,8 @@ int __init nettel_init(void)
 
                /* Destroy useless AMD MTD mapping */
                amd_mtd = NULL;
-               iounmap((void *) nettel_amd_map.virt);
-               nettel_amd_map.virt = (unsigned long) NULL;
+               iounmap(nettel_amd_map.virt);
+               nettel_amd_map.virt = NULL;
 #else
                /* Only AMD flash supported */
                return(-ENXIO);
@@ -358,8 +358,7 @@ int __init nettel_init(void)
        /* Probe for the the size of the first Intel flash */
        nettel_intel_map.size = maxsize;
        nettel_intel_map.phys = intel0addr;
-       nettel_intel_map.virt = (unsigned long)
-               ioremap_nocache(intel0addr, maxsize);
+       nettel_intel_map.virt = ioremap_nocache(intel0addr, maxsize);
        if (!nettel_intel_map.virt) {
                printk("SNAPGEAR: failed to ioremap() ROMCS1\n");
                return(-EIO);
@@ -367,8 +366,8 @@ int __init nettel_init(void)
        simple_map_init(&nettel_intel_map);
 
        intel_mtd = do_map_probe("cfi_probe", &nettel_intel_map);
-       if (! intel_mtd) {
-               iounmap((void *) nettel_intel_map.virt);
+       if (!intel_mtd) {
+               iounmap(nettel_intel_map.virt);
                return(-ENXIO);
        }
 
@@ -389,11 +388,10 @@ int __init nettel_init(void)
        /* Delete the old map and probe again to do both chips */
        map_destroy(intel_mtd);
        intel_mtd = NULL;
-       iounmap((void *) nettel_intel_map.virt);
+       iounmap(nettel_intel_map.virt);
 
        nettel_intel_map.size = maxsize;
-       nettel_intel_map.virt = (unsigned long)
-               ioremap_nocache(intel0addr, maxsize);
+       nettel_intel_map.virt = ioremap_nocache(intel0addr, maxsize);
        if (!nettel_intel_map.virt) {
                printk("SNAPGEAR: failed to ioremap() ROMCS1/2\n");
                return(-EIO);
@@ -433,7 +431,7 @@ int __init nettel_init(void)
                nettel_intel_partitions[1].size = (intel0size + intel1size) -
                        (1024*1024 + intel_mtd->erasesize);
                nettel_intel_partitions[3].size = intel0size + intel1size;
-               nettel_intel_partitions[4].offset = 
+               nettel_intel_partitions[4].offset =
                        (intel0size + intel1size) - intel_mtd->erasesize;
                nettel_intel_partitions[4].size = intel_mtd->erasesize;
                nettel_intel_partitions[5].offset =
@@ -472,8 +470,8 @@ void __exit nettel_cleanup(void)
                map_destroy(amd_mtd);
        }
        if (nettel_amd_map.virt) {
-               iounmap((void *)nettel_amd_map.virt);
-               nettel_amd_map.virt = 0;
+               iounmap(nettel_amd_map.virt);
+               nettel_amd_map.virt = NULL;
        }
 #ifdef CONFIG_MTD_CFI_INTELEXT
        if (intel_mtd) {
@@ -481,8 +479,8 @@ void __exit nettel_cleanup(void)
                map_destroy(intel_mtd);
        }
        if (nettel_intel_map.virt) {
-               iounmap((void *)nettel_intel_map.virt);
-               nettel_intel_map.virt = 0;
+               iounmap(nettel_intel_map.virt);
+               nettel_intel_map.virt = NULL;
        }
 #endif
 }