Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / mtd / maps / ts5500_flash.c
index 3ebd90f..a7422c2 100644 (file)
  *
  * Note:
  * - In order for detection to work, jumper 3 must be set.
- * - Drive A and B use a proprietary FTL from General Software which isn't 
- *   supported as of yet so standard drives can't be mounted; you can create 
- *   your own (e.g. jffs) file system.
- * - If you have created your own jffs file system and the bios overwrites 
+ * - Drive A and B use the resident flash disk (RFD) flash translation layer.
+ * - If you have created your own jffs file system and the bios overwrites
  *   it during boot, try disabling Drive A: and B: in the boot order.
  *
- * $Id: ts5500_flash.c,v 1.2 2004/11/28 09:40:40 dwmw2 Exp $
+ * $Id: ts5500_flash.c,v 1.5 2005/11/07 11:14:28 gleixner Exp $
  */
 
 #include <linux/config.h>
+#include <linux/init.h>
 #include <linux/module.h>
-#include <linux/types.h>
 #include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
-
-#ifdef CONFIG_MTD_PARTITIONS
+#include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
-#endif
+#include <linux/types.h>
+
 
 #define WINDOW_ADDR    0x09400000
 #define WINDOW_SIZE    0x00200000
@@ -50,7 +46,6 @@ static struct map_info ts5500_map = {
        .phys = WINDOW_ADDR
 };
 
-#ifdef CONFIG_MTD_PARTITIONS
 static struct mtd_partition ts5500_partitions[] = {
        {
                .name = "Drive A",
@@ -69,9 +64,7 @@ static struct mtd_partition ts5500_partitions[] = {
        }
 };
 
-#define NUM_PARTITIONS (sizeof(ts5500_partitions)/sizeof(struct mtd_partition))
-
-#endif
+#define NUM_PARTITIONS ARRAY_SIZE(ts5500_partitions)
 
 static struct mtd_info *mymtd;
 
@@ -81,48 +74,39 @@ static int __init init_ts5500_map(void)
 
        ts5500_map.virt = ioremap_nocache(ts5500_map.phys, ts5500_map.size);
 
-       if(!ts5500_map.virt) {
+       if (!ts5500_map.virt) {
                printk(KERN_ERR "Failed to ioremap_nocache\n");
                rc = -EIO;
-               goto err_out_ioremap;
+               goto err2;
        }
 
        simple_map_init(&ts5500_map);
 
        mymtd = do_map_probe("jedec_probe", &ts5500_map);
-       if(!mymtd)
+       if (!mymtd)
                mymtd = do_map_probe("map_rom", &ts5500_map);
 
-       if(!mymtd) {
+       if (!mymtd) {
                rc = -ENXIO;
-               goto err_out_map;
+               goto err1;
        }
 
        mymtd->owner = THIS_MODULE;
-#ifdef CONFIG_MTD_PARTITIONS
        add_mtd_partitions(mymtd, ts5500_partitions, NUM_PARTITIONS);
-#else  
-       add_mtd_device(mymtd);
-#endif
 
        return 0;
 
-err_out_map:
+err1:
        map_destroy(mymtd);
-err_out_ioremap:
        iounmap(ts5500_map.virt);
-
+err2:
        return rc;
 }
 
 static void __exit cleanup_ts5500_map(void)
 {
        if (mymtd) {
-#ifdef CONFIG_MTD_PARTITIONS
                del_mtd_partitions(mymtd);
-#else
-               del_mtd_device(mymtd);
-#endif
                map_destroy(mymtd);
        }