openap-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[openap-cvs] : linux/drivers/mtd/maps Config.in,1.1.1.1,1.2 physmap.c,1.


From: David C Wang <address@hidden>
Subject: [openap-cvs] : linux/drivers/mtd/maps Config.in,1.1.1.1,1.2 physmap.c,1.1.1.1,1.2
Date: Tue, 14 May 2002 15:53:33 -0400

Update of /cvsroot/openap/linux/drivers/mtd/maps
In directory subversions:/tmp/cvs-serv5742/drivers/mtd/maps

Modified Files:
        Config.in physmap.c 
Log Message:
updated linux kernel pristine sources to openap release 1.1



Index: Config.in
===================================================================
RCS file: /cvsroot/openap/linux/drivers/mtd/maps/Config.in,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- Config.in   14 May 2002 18:30:53 -0000      1.1.1.1
+++ Config.in   14 May 2002 19:53:30 -0000      1.2
@@ -11,6 +11,14 @@
    hex '    Physical start address of flash mapping' CONFIG_MTD_PHYSMAP_START 
0x8000000
    hex '    Physical length of flash mapping' CONFIG_MTD_PHYSMAP_LEN 0x4000000
    int '    Bus width in octets' CONFIG_MTD_PHYSMAP_BUSWIDTH 2
+   string '    Probe type?' CONFIG_MTD_PHYSMAP_TYPE "cfi_probe"
+fi
+dep_mbool '  2nd physically mapped device?' CONFIG_MTD_PHYSMAP_2DEVICES 
$CONFIG_MTD_PHYSMAP
+if [ "$CONFIG_MTD_PHYSMAP_2DEVICES" = "y" ]; then
+   hex '    Physical start address of flash mapping' CONFIG_MTD_PHYSMAP_START2 
0xc000000
+   hex '    Physical length of flash mapping' CONFIG_MTD_PHYSMAP_LEN2 0x4000000
+   int '    Bus width in octets' CONFIG_MTD_PHYSMAP_BUSWIDTH2 2
+   string '    Probe type?' CONFIG_MTD_PHYSMAP_TYPE2 "cfi_probe"
 fi
 
 if [ "$CONFIG_SPARC" = "y" -o "$CONFIG_SPARC64" = "y" ]; then

Index: physmap.c
===================================================================
RCS file: /cvsroot/openap/linux/drivers/mtd/maps/physmap.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- physmap.c   14 May 2002 18:30:51 -0000      1.1.1.1
+++ physmap.c   14 May 2002 19:53:30 -0000      1.2
@@ -13,11 +13,22 @@
 #include <linux/config.h>
 
 
-#define WINDOW_ADDR CONFIG_MTD_PHYSMAP_START
-#define WINDOW_SIZE CONFIG_MTD_PHYSMAP_LEN
-#define BUSWIDTH CONFIG_MTD_PHYSMAP_BUSWIDTH
-
-static struct mtd_info *mymtd;
+#define WINDOW_ADDR1 CONFIG_MTD_PHYSMAP_START
+#define WINDOW_SIZE1 CONFIG_MTD_PHYSMAP_LEN
+#define BUSWIDTH1 CONFIG_MTD_PHYSMAP_BUSWIDTH
+#define TYPE1 CONFIG_MTD_PHYSMAP_TYPE
+#define WINDOW_ADDR2 CONFIG_MTD_PHYSMAP_START2
+#define WINDOW_SIZE2 CONFIG_MTD_PHYSMAP_LEN2
+#define BUSWIDTH2 CONFIG_MTD_PHYSMAP_BUSWIDTH2
+#define TYPE2 CONFIG_MTD_PHYSMAP_TYPE2
+
+static void __exit cleanup_physmap(void);
+
+
+static struct mtd_info *mymtd1 = 0;
+#ifdef CONFIG_MTD_PHYSMAP_2DEVICES
+static struct mtd_info *mymtd2 = 0;
+#endif
 
 __u8 physmap_read8(struct map_info *map, unsigned long ofs)
 {
@@ -62,10 +73,26 @@
        memcpy_toio(map->map_priv_1 + to, from, len);
 }
 
-struct map_info physmap_map = {
-       name: "Physically mapped flash",
-       size: WINDOW_SIZE,
-       buswidth: BUSWIDTH,
+struct map_info physmap_map1 = {
+       name: "physically mapped mtd",
+       size: WINDOW_SIZE1,
+       buswidth: BUSWIDTH1,
+       read8: physmap_read8,
+       read16: physmap_read16,
+       read32: physmap_read32,
+       copy_from: physmap_copy_from,
+       write8: physmap_write8,
+       write16: physmap_write16,
+       write32: physmap_write32,
+       copy_to: physmap_copy_to,
+       map_priv_1: 0
+};
+
+#ifdef CONFIG_MTD_PHYSMAP_2DEVICES
+struct map_info physmap_map2 = {
+       name: "2nd physically mapped mtd",
+       size: WINDOW_SIZE2,
+       buswidth: BUSWIDTH2,
        read8: physmap_read8,
        read16: physmap_read16,
        read32: physmap_read32,
@@ -73,40 +100,68 @@
        write8: physmap_write8,
        write16: physmap_write16,
        write32: physmap_write32,
-       copy_to: physmap_copy_to
+       copy_to: physmap_copy_to,
+       map_priv_1: 0
 };
+#endif
 
 int __init init_physmap(void)
 {
-               printk(KERN_NOTICE "physmap flash device: %x at %x\n", 
WINDOW_SIZE, WINDOW_ADDR);
-       physmap_map.map_priv_1 = (unsigned long)ioremap(WINDOW_ADDR, 
WINDOW_SIZE);
-
-       if (!physmap_map.map_priv_1) {
+               printk(KERN_NOTICE "physmap flash device: 0x%x at 0x%x\n", 
WINDOW_SIZE1, WINDOW_ADDR1);
+       physmap_map1.map_priv_1 = (unsigned long)ioremap(WINDOW_ADDR1, 
WINDOW_SIZE1);
+#ifdef CONFIG_MTD_PHYSMAP_2DEVICES
+               printk(KERN_NOTICE "2nd physmap flash device: 0x%x at 0x%x\n", 
WINDOW_SIZE2, WINDOW_ADDR2);
+       physmap_map2.map_priv_1 = (unsigned long)ioremap(WINDOW_ADDR2, 
WINDOW_SIZE2);
+#endif
+
+       if (!physmap_map1.map_priv_1
+#ifdef CONFIG_MTD_PHYSMAP_2DEVICES
+           || !physmap_map2.map_priv_1
+#endif
+               ) {
                printk("Failed to ioremap\n");
-               return -EIO;
+               goto error;
        }
-       mymtd = do_map_probe("cfi_probe", &physmap_map);
-       if (mymtd) {
-               mymtd->module = THIS_MODULE;
+       mymtd1 = do_map_probe( TYPE1 , &physmap_map1);
+       if (!mymtd1) goto error;
+       mymtd1->module = THIS_MODULE;
+       add_mtd_device(mymtd1);
+#ifdef CONFIG_MTD_PHYSMAP_2DEVICES
+       mymtd2 = do_map_probe( TYPE2 , &physmap_map2);
+       if (!mymtd2) goto error;
+       mymtd2->module = THIS_MODULE;
+       add_mtd_device(mymtd2);
+#endif
 
-               add_mtd_device(mymtd);
-               return 0;
-       }
+       return 0;
 
-       iounmap((void *)physmap_map.map_priv_1);
+ error:
+       cleanup_physmap();
        return -ENXIO;
 }
 
 static void __exit cleanup_physmap(void)
 {
-       if (mymtd) {
-               del_mtd_device(mymtd);
-               map_destroy(mymtd);
+       if (mymtd1) {
+               del_mtd_device(mymtd1);
+               map_destroy(mymtd1);
+               mymtd1 = 0;
+       }
+       if (physmap_map1.map_priv_1) {
+               iounmap((void *)physmap_map1.map_priv_1);
+               physmap_map1.map_priv_1 = 0;
+       }
+#ifdef CONFIG_MTD_PHYSMAP_2DEVICES
+       if (mymtd2) {
+               del_mtd_device(mymtd2);
+               map_destroy(mymtd2);
+               mymtd2 = 0;
        }
-       if (physmap_map.map_priv_1) {
-               iounmap((void *)physmap_map.map_priv_1);
-               physmap_map.map_priv_1 = 0;
+       if (physmap_map2.map_priv_1) {
+               iounmap((void *)physmap_map2.map_priv_1);
+               physmap_map2.map_priv_1 = 0;
        }
+#endif
 }
 
 module_init(init_physmap);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]