Give a name to the nandemul2k MTD device.
[yaffs2.git] / mtdemul / nandemul2k.c
index 2980f9adcb791521e6798de634f5210b9e2a729f..f3c1c9a853c2377f4e5476d4c493ed4fe0cc1e40 100644 (file)
 #include <linux/mtd/mtd.h>
 #include <linux/interrupt.h>
 #include <linux/string.h>
 #include <linux/mtd/mtd.h>
 #include <linux/interrupt.h>
 #include <linux/string.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
 #include <linux/locks.h>
 #include <linux/locks.h>
+#endif
 
 #include <asm/uaccess.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/nand.h>
 
 #include <asm/uaccess.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/nand.h>
+#include "../yaffs_nandemul2k.h"
 
 
-#define T(f,x) printk x
 #define ALLOCATE(x) kmalloc(x,GFP_KERNEL)
 #define FREE(x)     kfree(x)
 
 #define ALLOCATE(x) kmalloc(x,GFP_KERNEL)
 #define FREE(x)     kfree(x)
 
@@ -284,11 +286,16 @@ static int nand_write (struct mtd_info *mtd, loff_t to, size_t len,
                        size_t *retlen, const u_char *buf);
 static int nand_write_ecc (struct mtd_info *mtd, loff_t to, size_t len,
                                size_t *retlen, const u_char *buf,
                        size_t *retlen, const u_char *buf);
 static int nand_write_ecc (struct mtd_info *mtd, loff_t to, size_t len,
                                size_t *retlen, const u_char *buf,
-                               const u_char *oob_buf, struct nand_oobinfo *dummy);
+                               u_char *oob_buf, struct nand_oobinfo *dummy);
 static int nand_write_oob (struct mtd_info *mtd, loff_t to, size_t len,
                                size_t *retlen, const u_char *buf);
 static int nand_write_oob (struct mtd_info *mtd, loff_t to, size_t len,
                                size_t *retlen, const u_char *buf);
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,7))
+static int nand_writev (struct mtd_info *mtd, const struct kvec *vecs,
+                               unsigned long count, loff_t to, size_t *retlen);
+#else
 static int nand_writev (struct mtd_info *mtd, const struct iovec *vecs,
                                unsigned long count, loff_t to, size_t *retlen);
 static int nand_writev (struct mtd_info *mtd, const struct iovec *vecs,
                                unsigned long count, loff_t to, size_t *retlen);
+#endif
 static int nand_erase (struct mtd_info *mtd, struct erase_info *instr);
 static void nand_sync (struct mtd_info *mtd);
 
 static int nand_erase (struct mtd_info *mtd, struct erase_info *instr);
 static void nand_sync (struct mtd_info *mtd);
 
@@ -411,7 +418,7 @@ static int nand_write (struct mtd_info *mtd, loff_t to, size_t len,
  */
 static int nand_write_ecc (struct mtd_info *mtd, loff_t to, size_t len,
                                size_t *retlen, const u_char *buf,
  */
 static int nand_write_ecc (struct mtd_info *mtd, loff_t to, size_t len,
                                size_t *retlen, const u_char *buf,
-                               const u_char *oob_buf, struct nand_oobinfo *dummy)
+                               u_char *oob_buf, struct nand_oobinfo *dummy)
 {
 
        int     start, page;
 {
 
        int     start, page;
@@ -507,8 +514,13 @@ static int nand_write_oob (struct mtd_info *mtd, loff_t to, size_t len,
 /*
  * NAND write with iovec
  */
 /*
  * NAND write with iovec
  */
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,7))
+static int nand_writev (struct mtd_info *mtd, const struct kvec *vecs,
+                               unsigned long count, loff_t to, size_t *retlen)
+#else
 static int nand_writev (struct mtd_info *mtd, const struct iovec *vecs,
                                unsigned long count, loff_t to, size_t *retlen)
 static int nand_writev (struct mtd_info *mtd, const struct iovec *vecs,
                                unsigned long count, loff_t to, size_t *retlen)
+#endif
 {
        return -EINVAL;
 }
 {
        return -EINVAL;
 }
@@ -562,12 +574,12 @@ static int nand_erase (struct mtd_info *mtd, struct erase_info *instr)
 }
 
 
 }
 
 
-int nand_block_isbad(struct mtd_info *mtd,int blockNo)
+static int nand_block_isbad(struct mtd_info *mtd, loff_t ofs)
 {
        return 0;
 }
 
 {
        return 0;
 }
 
-int nand_block_markbad(struct mtd_info *mtd, int blockNo)
+static int nand_block_markbad(struct mtd_info *mtd, loff_t ofs)
 {
        return 0;
 }
 {
        return 0;
 }
@@ -585,7 +597,7 @@ static void nand_sync (struct mtd_info *mtd)
 /*
  * Scan for the NAND device
  */
 /*
  * Scan for the NAND device
  */
-int nand_scan (struct mtd_info *mtd,int nchips)
+static int nandemul2k_scan (struct mtd_info *mtd,int nchips)
 {
        mtd->oobblock = PAGE_DATA_SIZE;
        mtd->oobsize =  PAGE_SPARE_SIZE;
 {
        mtd->oobblock = PAGE_DATA_SIZE;
        mtd->oobsize =  PAGE_SPARE_SIZE;
@@ -618,6 +630,8 @@ int nand_scan (struct mtd_info *mtd,int nchips)
        mtd->suspend = NULL;
        mtd->resume = NULL;
 
        mtd->suspend = NULL;
        mtd->resume = NULL;
 
+       mtd->name = "NANDemul2k";
+
        /* Return happy */
        return 0;
 }
        /* Return happy */
        return 0;
 }
@@ -653,7 +667,7 @@ int __init nandemul2k_init (void)
        
        CheckInit();
 
        
        CheckInit();
 
-       nand_scan(&nandemul2k_mtd,1);
+       nandemul2k_scan(&nandemul2k_mtd,1);
 
        // Build the partition table
 
 
        // Build the partition table