[Top][All Lists]
[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [openap-cvs] : linux/drivers/mtd/maps Config.in,1.1.1.1,1.2 physmap.c,1.1.1.1,1.2,
David C Wang <address@hidden> <=