* [PATCH 06/18] pcmcia: remove cs_types.h
[not found] ` <20100805220511.GA7040-S7uyTPAaJ/sb6pqDj42GsMgv3T4z79SOrE5yTffgRl4@public.gmane.org>
@ 2010-08-05 22:06 ` Dominik Brodowski
0 siblings, 0 replies; 23+ messages in thread
From: Dominik Brodowski @ 2010-08-05 22:06 UTC (permalink / raw)
To: linux-pcmcia-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Cc: Dominik Brodowski, linux-ide-u79uwXL29TY76Z2rM5mHXA,
linux-usb-u79uwXL29TY76Z2rM5mHXA, laforge-TgoAw6mPHtdg9hUCZPvPmw,
linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw,
linux-serial-u79uwXL29TY76Z2rM5mHXA
Remove cs_types.h which is no longer needed: Most definitions aren't
used at all, a few can be made away with, and two remaining definitions
(typedefs, unfortunatley) may be moved to more specific places.
CC: linux-ide-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
CC: linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
CC: laforge-TgoAw6mPHtdg9hUCZPvPmw@public.gmane.org
CC: linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
CC: alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org
CC: linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Acked-by: Marcel Holtmann <marcel-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org> (for drivers/bluetooth/)
Acked-by: David S. Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Signed-off-by: Dominik Brodowski <linux-X3ehHDuj6sIIGcDfoQAp7OTW4wlIGRCZ@public.gmane.org>
---
Documentation/pcmcia/driver-changes.txt | 5 +++
drivers/ata/pata_pcmcia.c | 1 -
drivers/bluetooth/bluecard_cs.c | 1 -
drivers/bluetooth/bt3c_cs.c | 1 -
drivers/bluetooth/btuart_cs.c | 1 -
drivers/bluetooth/dtl1_cs.c | 1 -
drivers/char/pcmcia/cm4000_cs.c | 1 -
drivers/char/pcmcia/cm4040_cs.c | 1 -
drivers/char/pcmcia/ipwireless/main.h | 1 -
drivers/char/pcmcia/ipwireless/tty.h | 1 -
drivers/char/pcmcia/synclink_cs.c | 1 -
drivers/ide/ide-cs.c | 1 -
drivers/isdn/hardware/avm/avm_cs.c | 1 -
drivers/isdn/hisax/avma1_cs.c | 1 -
drivers/isdn/hisax/elsa_cs.c | 1 -
drivers/isdn/hisax/sedlbauer_cs.c | 1 -
drivers/isdn/hisax/teles_cs.c | 1 -
drivers/mmc/host/sdricoh_cs.c | 1 -
drivers/mtd/maps/pcmciamtd.c | 1 -
drivers/net/pcmcia/3c574_cs.c | 1 -
drivers/net/pcmcia/3c589_cs.c | 1 -
drivers/net/pcmcia/axnet_cs.c | 1 -
drivers/net/pcmcia/com20020_cs.c | 1 -
drivers/net/pcmcia/fmvj18x_cs.c | 1 -
drivers/net/pcmcia/ibmtr_cs.c | 1 -
drivers/net/pcmcia/nmclan_cs.c | 1 -
drivers/net/pcmcia/pcnet_cs.c | 5 +--
drivers/net/pcmcia/smc91c92_cs.c | 1 -
drivers/net/pcmcia/xirc2ps_cs.c | 1 -
drivers/net/wireless/airo_cs.c | 1 -
drivers/net/wireless/atmel_cs.c | 1 -
drivers/net/wireless/b43/pcmcia.c | 1 -
drivers/net/wireless/hostap/hostap_cs.c | 3 +-
drivers/net/wireless/libertas/if_cs.c | 1 -
drivers/net/wireless/orinoco/orinoco_cs.c | 1 -
drivers/net/wireless/orinoco/spectrum_cs.c | 1 -
drivers/net/wireless/ray_cs.c | 1 -
drivers/net/wireless/wl3501_cs.c | 10 +-----
drivers/parport/parport_cs.c | 1 -
drivers/pcmcia/au1000_generic.h | 1 -
drivers/pcmcia/au1000_pb1x00.c | 2 -
drivers/pcmcia/cistpl.c | 1 -
drivers/pcmcia/cs.c | 1 -
drivers/pcmcia/db1xxx_ss.c | 1 -
drivers/pcmcia/ds.c | 1 -
drivers/pcmcia/i82092.c | 1 -
drivers/pcmcia/i82365.c | 1 -
drivers/pcmcia/m32r_cfc.c | 1 -
drivers/pcmcia/m32r_pcc.c | 1 -
drivers/pcmcia/m8xx_pcmcia.c | 1 -
drivers/pcmcia/pcmcia_cis.c | 1 -
drivers/pcmcia/pcmcia_resource.c | 1 -
drivers/pcmcia/pd6729.c | 1 -
drivers/pcmcia/pxa2xx_base.c | 1 -
drivers/pcmcia/rsrc_iodyn.c | 1 -
drivers/pcmcia/rsrc_mgr.c | 1 -
drivers/pcmcia/rsrc_nonstatic.c | 1 -
drivers/pcmcia/sa1100_generic.c | 1 -
drivers/pcmcia/soc_common.h | 1 -
drivers/pcmcia/socket_sysfs.c | 1 -
drivers/pcmcia/tcic.c | 1 -
drivers/pcmcia/xxs1500_ss.c | 1 -
drivers/pcmcia/yenta_socket.c | 1 -
drivers/scsi/pcmcia/aha152x_stub.c | 1 -
drivers/scsi/pcmcia/fdomain_stub.c | 1 -
drivers/scsi/pcmcia/nsp_cs.c | 1 -
drivers/scsi/pcmcia/qlogic_stub.c | 1 -
drivers/scsi/pcmcia/sym53c500_cs.c | 1 -
drivers/serial/serial_cs.c | 1 -
drivers/ssb/main.c | 1 -
drivers/ssb/pcmcia.c | 1 -
drivers/ssb/scan.c | 1 -
drivers/staging/comedi/drivers/cb_das16_cs.c | 1 -
drivers/staging/comedi/drivers/das08_cs.c | 1 -
drivers/staging/comedi/drivers/ni_daq_700.c | 1 -
drivers/staging/comedi/drivers/ni_daq_dio24.c | 1 -
drivers/staging/comedi/drivers/ni_labpc_cs.c | 1 -
drivers/staging/comedi/drivers/ni_mio_cs.c | 1 -
drivers/staging/comedi/drivers/quatech_daqp_cs.c | 1 -
drivers/staging/wlags49_h2/wl_cs.c | 1 -
drivers/staging/wlags49_h2/wl_internal.h | 1 -
drivers/telephony/ixj_pcmcia.c | 1 -
drivers/usb/host/sl811_cs.c | 5 +--
include/pcmcia/cistpl.h | 2 +
include/pcmcia/cs.h | 10 +-----
include/pcmcia/cs_types.h | 40 ----------------------
include/pcmcia/ds.h | 3 +-
include/pcmcia/ss.h | 1 -
sound/pcmcia/pdaudiocf/pdaudiocf.h | 1 -
sound/pcmcia/vx/vxpocket.h | 1 -
90 files changed, 14 insertions(+), 151 deletions(-)
delete mode 100644 include/pcmcia/cs_types.h
diff --git a/Documentation/pcmcia/driver-changes.txt b/Documentation/pcmcia/driver-changes.txt
index 61bc4e9..ff5f0be 100644
--- a/Documentation/pcmcia/driver-changes.txt
+++ b/Documentation/pcmcia/driver-changes.txt
@@ -1,4 +1,9 @@
This file details changes in 2.6 which affect PCMCIA card driver authors:
+* No dev_info_t, no cs_types.h (as of 2.6.36)
+ dev_info_t and a few other typedefs are removed. No longer use them
+ in PCMCIA device drivers. Also, do not include pcmcia/cs_types.h, as
+ this file is gone.
+
* No dev_node_t (as of 2.6.35)
There is no more need to fill out a "dev_node_t" structure.
diff --git a/drivers/ata/pata_pcmcia.c b/drivers/ata/pata_pcmcia.c
index 118c28e..3dcb2b1 100644
--- a/drivers/ata/pata_pcmcia.c
+++ b/drivers/ata/pata_pcmcia.c
@@ -34,7 +34,6 @@
#include <linux/ata.h>
#include <linux/libata.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c
index 6d34f40..eb085de 100644
--- a/drivers/bluetooth/bluecard_cs.c
+++ b/drivers/bluetooth/bluecard_cs.c
@@ -39,7 +39,6 @@
#include <linux/skbuff.h>
#include <linux/io.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c
index 21e05fd..457b603 100644
--- a/drivers/bluetooth/bt3c_cs.c
+++ b/drivers/bluetooth/bt3c_cs.c
@@ -45,7 +45,6 @@
#include <linux/device.h>
#include <linux/firmware.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
diff --git a/drivers/bluetooth/btuart_cs.c b/drivers/bluetooth/btuart_cs.c
index 4ed7288..e7e0a17 100644
--- a/drivers/bluetooth/btuart_cs.c
+++ b/drivers/bluetooth/btuart_cs.c
@@ -41,7 +41,6 @@
#include <asm/system.h>
#include <asm/io.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
diff --git a/drivers/bluetooth/dtl1_cs.c b/drivers/bluetooth/dtl1_cs.c
index ef044d5..7c94aad 100644
--- a/drivers/bluetooth/dtl1_cs.c
+++ b/drivers/bluetooth/dtl1_cs.c
@@ -41,7 +41,6 @@
#include <asm/system.h>
#include <asm/io.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
diff --git a/drivers/char/pcmcia/cm4000_cs.c b/drivers/char/pcmcia/cm4000_cs.c
index e7956ac..a8be2a7 100644
--- a/drivers/char/pcmcia/cm4000_cs.c
+++ b/drivers/char/pcmcia/cm4000_cs.c
@@ -34,7 +34,6 @@
#include <linux/uaccess.h>
#include <linux/io.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/char/pcmcia/cm4040_cs.c b/drivers/char/pcmcia/cm4040_cs.c
index c0775c8..44adae9 100644
--- a/drivers/char/pcmcia/cm4040_cs.c
+++ b/drivers/char/pcmcia/cm4040_cs.c
@@ -29,7 +29,6 @@
#include <asm/uaccess.h>
#include <asm/io.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/char/pcmcia/ipwireless/main.h b/drivers/char/pcmcia/ipwireless/main.h
index 96d0ef3..c207be8 100644
--- a/drivers/char/pcmcia/ipwireless/main.h
+++ b/drivers/char/pcmcia/ipwireless/main.h
@@ -21,7 +21,6 @@
#include <linux/sched.h>
#include <linux/types.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/char/pcmcia/ipwireless/tty.h b/drivers/char/pcmcia/ipwireless/tty.h
index 4da6c20..3e163d4 100644
--- a/drivers/char/pcmcia/ipwireless/tty.h
+++ b/drivers/char/pcmcia/ipwireless/tty.h
@@ -21,7 +21,6 @@
#include <linux/types.h>
#include <linux/sched.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
index 308903e..522992e 100644
--- a/drivers/char/pcmcia/synclink_cs.c
+++ b/drivers/char/pcmcia/synclink_cs.c
@@ -70,7 +70,6 @@
#include <linux/workqueue.h>
#include <linux/hdlc.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/ide/ide-cs.c b/drivers/ide/ide-cs.c
index 0b7815d..27dbab8 100644
--- a/drivers/ide/ide-cs.c
+++ b/drivers/ide/ide-cs.c
@@ -43,7 +43,6 @@
#include <asm/io.h>
#include <asm/system.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/isdn/hardware/avm/avm_cs.c b/drivers/isdn/hardware/avm/avm_cs.c
index f410d0e..e804a01 100644
--- a/drivers/isdn/hardware/avm/avm_cs.c
+++ b/drivers/isdn/hardware/avm/avm_cs.c
@@ -20,7 +20,6 @@
#include <asm/io.h>
#include <asm/system.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
diff --git a/drivers/isdn/hisax/avma1_cs.c b/drivers/isdn/hisax/avma1_cs.c
index a80a761..49e141e 100644
--- a/drivers/isdn/hisax/avma1_cs.c
+++ b/drivers/isdn/hisax/avma1_cs.c
@@ -20,7 +20,6 @@
#include <asm/io.h>
#include <asm/system.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/isdn/hisax/elsa_cs.c b/drivers/isdn/hisax/elsa_cs.c
index 218927e..425deea 100644
--- a/drivers/isdn/hisax/elsa_cs.c
+++ b/drivers/isdn/hisax/elsa_cs.c
@@ -46,7 +46,6 @@
#include <asm/io.h>
#include <asm/system.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/isdn/hisax/sedlbauer_cs.c b/drivers/isdn/hisax/sedlbauer_cs.c
index 1f4feaa..5dbad96 100644
--- a/drivers/isdn/hisax/sedlbauer_cs.c
+++ b/drivers/isdn/hisax/sedlbauer_cs.c
@@ -46,7 +46,6 @@
#include <asm/io.h>
#include <asm/system.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/isdn/hisax/teles_cs.c b/drivers/isdn/hisax/teles_cs.c
index 5771955..d3fb1b7 100644
--- a/drivers/isdn/hisax/teles_cs.c
+++ b/drivers/isdn/hisax/teles_cs.c
@@ -27,7 +27,6 @@
#include <asm/io.h>
#include <asm/system.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/mmc/host/sdricoh_cs.c b/drivers/mmc/host/sdricoh_cs.c
index e7507af..7aa65bb 100644
--- a/drivers/mmc/host/sdricoh_cs.c
+++ b/drivers/mmc/host/sdricoh_cs.c
@@ -30,7 +30,6 @@
#include <linux/ioport.h>
#include <linux/scatterlist.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/mtd/maps/pcmciamtd.c b/drivers/mtd/maps/pcmciamtd.c
index e699e6a..7948816 100644
--- a/drivers/mtd/maps/pcmciamtd.c
+++ b/drivers/mtd/maps/pcmciamtd.c
@@ -16,7 +16,6 @@
#include <asm/io.h>
#include <asm/system.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index 10ee106..e249b89 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -87,7 +87,6 @@ earlier 3Com products.
#include <linux/bitops.h>
#include <linux/mii.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index ce63c37..b0772df 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -41,7 +41,6 @@
#include <linux/bitops.h>
#include <linux/jiffies.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index 33525bf..467fd4b 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -39,7 +39,6 @@
#include <linux/mii.h>
#include "../8390.h"
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
diff --git a/drivers/net/pcmcia/com20020_cs.c b/drivers/net/pcmcia/com20020_cs.c
index 5643f94..99957af 100644
--- a/drivers/net/pcmcia/com20020_cs.c
+++ b/drivers/net/pcmcia/com20020_cs.c
@@ -43,7 +43,6 @@
#include <linux/arcdevice.h>
#include <linux/com20020.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index 7c27c50..95a991b 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -49,7 +49,6 @@
#include <linux/ioport.h>
#include <linux/crc32.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
diff --git a/drivers/net/pcmcia/ibmtr_cs.c b/drivers/net/pcmcia/ibmtr_cs.c
index 67ee985..c36dcd1 100644
--- a/drivers/net/pcmcia/ibmtr_cs.c
+++ b/drivers/net/pcmcia/ibmtr_cs.c
@@ -57,7 +57,6 @@
#include <linux/trdevice.h>
#include <linux/ibmtr.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index 9b63dec..c0eacfa 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -146,7 +146,6 @@ Include Files
#include <linux/ioport.h>
#include <linux/bitops.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cisreg.h>
#include <pcmcia/cistpl.h>
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index bfdef72..db6dbda 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -42,7 +42,6 @@
#include <linux/mii.h>
#include "../8390.h"
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
@@ -113,8 +112,6 @@ static int setup_dma_config(struct pcmcia_device *link, int start_pg,
static void pcnet_detach(struct pcmcia_device *p_dev);
-static dev_info_t dev_info = "pcnet_cs";
-
/*====================================================================*/
typedef struct hw_info_t {
@@ -956,7 +953,7 @@ static int pcnet_open(struct net_device *dev)
set_misc_reg(dev);
outb_p(0xFF, nic_base + EN0_ISR); /* Clear bogus intr. */
- ret = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, dev_info, dev);
+ ret = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, dev->name, dev);
if (ret)
return ret;
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index 307cd17..88f503a 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -44,7 +44,6 @@
#include <linux/jiffies.h>
#include <linux/firmware.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index b6c3644..a7662f0 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -82,7 +82,6 @@
#include <linux/bitops.h>
#include <linux/mii.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/net/wireless/airo_cs.c b/drivers/net/wireless/airo_cs.c
index 33bdc6a..9389ba0 100644
--- a/drivers/net/wireless/airo_cs.c
+++ b/drivers/net/wireless/airo_cs.c
@@ -32,7 +32,6 @@
#include <linux/timer.h>
#include <linux/netdevice.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/net/wireless/atmel_cs.c b/drivers/net/wireless/atmel_cs.c
index c2746fc..91ee74a 100644
--- a/drivers/net/wireless/atmel_cs.c
+++ b/drivers/net/wireless/atmel_cs.c
@@ -42,7 +42,6 @@
#include <linux/moduleparam.h>
#include <linux/device.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/net/wireless/b43/pcmcia.c b/drivers/net/wireless/b43/pcmcia.c
index 0e99b63..f71bc78 100644
--- a/drivers/net/wireless/b43/pcmcia.c
+++ b/drivers/net/wireless/b43/pcmcia.c
@@ -26,7 +26,6 @@
#include <linux/ssb/ssb.h>
#include <linux/slab.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
index 29b31a6..2f4b6d4 100644
--- a/drivers/net/wireless/hostap/hostap_cs.c
+++ b/drivers/net/wireless/hostap/hostap_cs.c
@@ -12,7 +12,6 @@
#include <linux/wireless.h>
#include <net/iw_handler.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
@@ -23,7 +22,7 @@
#include "hostap_wlan.h"
-static dev_info_t dev_info = "hostap_cs";
+static char *dev_info = "hostap_cs";
MODULE_AUTHOR("Jouni Malinen");
MODULE_DESCRIPTION("Support for Intersil Prism2-based 802.11 wireless LAN "
diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
index 08e4e39..1d3a7e0 100644
--- a/drivers/net/wireless/libertas/if_cs.c
+++ b/drivers/net/wireless/libertas/if_cs.c
@@ -28,7 +28,6 @@
#include <linux/firmware.h>
#include <linux/netdevice.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/net/wireless/orinoco/orinoco_cs.c b/drivers/net/wireless/orinoco/orinoco_cs.c
index b16d5db..41ca4f1 100644
--- a/drivers/net/wireless/orinoco/orinoco_cs.c
+++ b/drivers/net/wireless/orinoco/orinoco_cs.c
@@ -17,7 +17,6 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/delay.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/net/wireless/orinoco/spectrum_cs.c b/drivers/net/wireless/orinoco/spectrum_cs.c
index b51a9ad..cad30e4 100644
--- a/drivers/net/wireless/orinoco/spectrum_cs.c
+++ b/drivers/net/wireless/orinoco/spectrum_cs.c
@@ -25,7 +25,6 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/delay.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index abff893..165beb6 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -46,7 +46,6 @@
#include <linux/ethtool.h>
#include <linux/ieee80211.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index 376c6b9..35f431b 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -48,7 +48,6 @@
#include <net/iw_handler.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
@@ -89,13 +88,6 @@
static int wl3501_config(struct pcmcia_device *link);
static void wl3501_release(struct pcmcia_device *link);
-/*
- * The dev_info variable is the "key" that is used to match up this
- * device driver with appropriate cards, through the card configuration
- * database.
- */
-static dev_info_t wl3501_dev_info = "wl3501_cs";
-
static const struct {
int reg_domain;
int min, max, deflt;
@@ -1421,7 +1413,7 @@ static struct iw_statistics *wl3501_get_wireless_stats(struct net_device *dev)
static void wl3501_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
{
- strlcpy(info->driver, wl3501_dev_info, sizeof(info->driver));
+ strlcpy(info->driver, "wl3501_cs", sizeof(info->driver));
}
static const struct ethtool_ops ops = {
diff --git a/drivers/parport/parport_cs.c b/drivers/parport/parport_cs.c
index fd8cfe9..ee56fd6 100644
--- a/drivers/parport/parport_cs.c
+++ b/drivers/parport/parport_cs.c
@@ -48,7 +48,6 @@
#include <linux/parport.h>
#include <linux/parport_pc.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/pcmcia/au1000_generic.h b/drivers/pcmcia/au1000_generic.h
index a324d32..67530ce 100644
--- a/drivers/pcmcia/au1000_generic.h
+++ b/drivers/pcmcia/au1000_generic.h
@@ -23,7 +23,6 @@
/* include the world */
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/ss.h>
#include <pcmcia/cistpl.h>
diff --git a/drivers/pcmcia/au1000_pb1x00.c b/drivers/pcmcia/au1000_pb1x00.c
index 5a979cb..807f2d7 100644
--- a/drivers/pcmcia/au1000_pb1x00.c
+++ b/drivers/pcmcia/au1000_pb1x00.c
@@ -31,11 +31,9 @@
#include <linux/proc_fs.h>
#include <linux/types.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/ss.h>
#include <pcmcia/cistpl.h>
-#include <pcmcia/bus_ops.h>
#include <asm/io.h>
#include <asm/irq.h>
diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c
index 8844bc3..ba4a5ac 100644
--- a/drivers/pcmcia/cistpl.c
+++ b/drivers/pcmcia/cistpl.c
@@ -27,7 +27,6 @@
#include <asm/byteorder.h>
#include <asm/unaligned.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c
index efa30b8..2ec8ac9 100644
--- a/drivers/pcmcia/cs.c
+++ b/drivers/pcmcia/cs.c
@@ -32,7 +32,6 @@
#include <asm/system.h>
#include <asm/irq.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
diff --git a/drivers/pcmcia/db1xxx_ss.c b/drivers/pcmcia/db1xxx_ss.c
index 0f4cc3f..27575e6 100644
--- a/drivers/pcmcia/db1xxx_ss.c
+++ b/drivers/pcmcia/db1xxx_ss.c
@@ -29,7 +29,6 @@
#include <linux/slab.h>
#include <linux/spinlock.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <asm/mach-au1x00/au1000.h>
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 0861771..bacfc55 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -26,7 +26,6 @@
#include <linux/dma-mapping.h>
#include <linux/slab.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/pcmcia/i82092.c b/drivers/pcmcia/i82092.c
index 3003bb3..05d0879 100644
--- a/drivers/pcmcia/i82092.c
+++ b/drivers/pcmcia/i82092.c
@@ -15,7 +15,6 @@
#include <linux/interrupt.h>
#include <linux/device.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
diff --git a/drivers/pcmcia/i82365.c b/drivers/pcmcia/i82365.c
index 9e2a156..61746bd 100644
--- a/drivers/pcmcia/i82365.c
+++ b/drivers/pcmcia/i82365.c
@@ -50,7 +50,6 @@
#include <asm/io.h>
#include <asm/system.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
diff --git a/drivers/pcmcia/m32r_cfc.c b/drivers/pcmcia/m32r_cfc.c
index 7e16ed8..24de499 100644
--- a/drivers/pcmcia/m32r_cfc.c
+++ b/drivers/pcmcia/m32r_cfc.c
@@ -26,7 +26,6 @@
#include <asm/io.h>
#include <asm/system.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
diff --git a/drivers/pcmcia/m32r_pcc.c b/drivers/pcmcia/m32r_pcc.c
index 6c5c3f9..8e47238 100644
--- a/drivers/pcmcia/m32r_pcc.c
+++ b/drivers/pcmcia/m32r_pcc.c
@@ -27,7 +27,6 @@
#include <asm/system.h>
#include <asm/addrspace.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
diff --git a/drivers/pcmcia/m8xx_pcmcia.c b/drivers/pcmcia/m8xx_pcmcia.c
index 25e5e30..f2f90a7 100644
--- a/drivers/pcmcia/m8xx_pcmcia.c
+++ b/drivers/pcmcia/m8xx_pcmcia.c
@@ -59,7 +59,6 @@
#include <asm/irq.h>
#include <asm/fs_pd.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/ss.h>
diff --git a/drivers/pcmcia/pcmcia_cis.c b/drivers/pcmcia/pcmcia_cis.c
index 4a65eaf..0ac54da 100644
--- a/drivers/pcmcia/pcmcia_cis.c
+++ b/drivers/pcmcia/pcmcia_cis.c
@@ -19,7 +19,6 @@
#include <linux/kernel.h>
#include <linux/netdevice.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cisreg.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ss.h>
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index a4cd9ad..2394de4 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -25,7 +25,6 @@
#include <asm/irq.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
diff --git a/drivers/pcmcia/pd6729.c b/drivers/pcmcia/pd6729.c
index b61a136..b8a869a 100644
--- a/drivers/pcmcia/pd6729.c
+++ b/drivers/pcmcia/pd6729.c
@@ -17,7 +17,6 @@
#include <linux/device.h>
#include <linux/io.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c
index df4532e..66c0225 100644
--- a/drivers/pcmcia/pxa2xx_base.c
+++ b/drivers/pcmcia/pxa2xx_base.c
@@ -32,7 +32,6 @@
#include <mach/pxa2xx-regs.h>
#include <asm/mach-types.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cistpl.h>
diff --git a/drivers/pcmcia/rsrc_iodyn.c b/drivers/pcmcia/rsrc_iodyn.c
index 6ed7bf1..3b1dce2 100644
--- a/drivers/pcmcia/rsrc_iodyn.c
+++ b/drivers/pcmcia/rsrc_iodyn.c
@@ -16,7 +16,6 @@
#include <linux/module.h>
#include <linux/kernel.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
diff --git a/drivers/pcmcia/rsrc_mgr.c b/drivers/pcmcia/rsrc_mgr.c
index b12ecf7..b433a79 100644
--- a/drivers/pcmcia/rsrc_mgr.c
+++ b/drivers/pcmcia/rsrc_mgr.c
@@ -16,7 +16,6 @@
#include <linux/module.h>
#include <linux/kernel.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index 13245a2..0cca08f 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -28,7 +28,6 @@
#include <asm/irq.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
diff --git a/drivers/pcmcia/sa1100_generic.c b/drivers/pcmcia/sa1100_generic.c
index edbd8c4..e098514 100644
--- a/drivers/pcmcia/sa1100_generic.c
+++ b/drivers/pcmcia/sa1100_generic.c
@@ -35,7 +35,6 @@
#include <linux/slab.h>
#include <linux/platform_device.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/ss.h>
diff --git a/drivers/pcmcia/soc_common.h b/drivers/pcmcia/soc_common.h
index e40824c..3fba3a6 100644
--- a/drivers/pcmcia/soc_common.h
+++ b/drivers/pcmcia/soc_common.h
@@ -11,7 +11,6 @@
/* include the world */
#include <linux/cpufreq.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/ss.h>
#include <pcmcia/cistpl.h>
diff --git a/drivers/pcmcia/socket_sysfs.c b/drivers/pcmcia/socket_sysfs.c
index 80e36bc..cb0d3ac 100644
--- a/drivers/pcmcia/socket_sysfs.c
+++ b/drivers/pcmcia/socket_sysfs.c
@@ -26,7 +26,6 @@
#include <asm/system.h>
#include <asm/irq.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
diff --git a/drivers/pcmcia/tcic.c b/drivers/pcmcia/tcic.c
index 56004a1..be0d841 100644
--- a/drivers/pcmcia/tcic.c
+++ b/drivers/pcmcia/tcic.c
@@ -49,7 +49,6 @@
#include <asm/io.h>
#include <asm/system.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/ss.h>
#include "tcic.h"
diff --git a/drivers/pcmcia/xxs1500_ss.c b/drivers/pcmcia/xxs1500_ss.c
index 201ccfa..fa88c36 100644
--- a/drivers/pcmcia/xxs1500_ss.c
+++ b/drivers/pcmcia/xxs1500_ss.c
@@ -17,7 +17,6 @@
#include <linux/slab.h>
#include <linux/spinlock.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/ss.h>
#include <pcmcia/cistpl.h>
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c
index f1d4137..414d9a6 100644
--- a/drivers/pcmcia/yenta_socket.c
+++ b/drivers/pcmcia/yenta_socket.c
@@ -19,7 +19,6 @@
#include <linux/io.h>
#include <linux/slab.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/ss.h>
#include <pcmcia/cs.h>
diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c
index 9d70aef..b07b53e 100644
--- a/drivers/scsi/pcmcia/aha152x_stub.c
+++ b/drivers/scsi/pcmcia/aha152x_stub.c
@@ -49,7 +49,6 @@
#include <scsi/scsi_host.h>
#include "aha152x.h"
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/scsi/pcmcia/fdomain_stub.c b/drivers/scsi/pcmcia/fdomain_stub.c
index 21b1411..ee04897 100644
--- a/drivers/scsi/pcmcia/fdomain_stub.c
+++ b/drivers/scsi/pcmcia/fdomain_stub.c
@@ -46,7 +46,6 @@
#include <scsi/scsi_host.h>
#include "fdomain.h"
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c
index 0f0e112..d414207 100644
--- a/drivers/scsi/pcmcia/nsp_cs.c
+++ b/drivers/scsi/pcmcia/nsp_cs.c
@@ -47,7 +47,6 @@
#include <scsi/scsi.h>
#include <scsi/scsi_ioctl.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/scsi/pcmcia/qlogic_stub.c b/drivers/scsi/pcmcia/qlogic_stub.c
index f0fc6ba..c1cf7f4 100644
--- a/drivers/scsi/pcmcia/qlogic_stub.c
+++ b/drivers/scsi/pcmcia/qlogic_stub.c
@@ -48,7 +48,6 @@
#include <scsi/scsi_host.h>
#include "../qlogicfas408.h"
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c
index a511641..bd79e45 100644
--- a/drivers/scsi/pcmcia/sym53c500_cs.c
+++ b/drivers/scsi/pcmcia/sym53c500_cs.c
@@ -71,7 +71,6 @@
#include <scsi/scsi.h>
#include <scsi/scsi_host.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
index ab17c08..2b99c7b 100644
--- a/drivers/serial/serial_cs.c
+++ b/drivers/serial/serial_cs.c
@@ -45,7 +45,6 @@
#include <asm/io.h>
#include <asm/system.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
index 51275aa..06f04b4 100644
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -20,7 +20,6 @@
#include <linux/mmc/sdio_func.h>
#include <linux/slab.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/ssb/pcmcia.c b/drivers/ssb/pcmcia.c
index e72f404..2152030 100644
--- a/drivers/ssb/pcmcia.c
+++ b/drivers/ssb/pcmcia.c
@@ -13,7 +13,6 @@
#include <linux/io.h>
#include <linux/etherdevice.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
diff --git a/drivers/ssb/scan.c b/drivers/ssb/scan.c
index 0d6c028..9738cad 100644
--- a/drivers/ssb/scan.c
+++ b/drivers/ssb/scan.c
@@ -17,7 +17,6 @@
#include <linux/pci.h>
#include <linux/io.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c
index cfeb11f..acef29c 100644
--- a/drivers/staging/comedi/drivers/cb_das16_cs.c
+++ b/drivers/staging/comedi/drivers/cb_das16_cs.c
@@ -37,7 +37,6 @@ Status: experimental
#include <linux/delay.h>
#include <linux/pci.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/staging/comedi/drivers/das08_cs.c b/drivers/staging/comedi/drivers/das08_cs.c
index 8761a6d..3eddb7c 100644
--- a/drivers/staging/comedi/drivers/das08_cs.c
+++ b/drivers/staging/comedi/drivers/das08_cs.c
@@ -48,7 +48,6 @@ Command support does not exist, but could be added for this board.
#include "das08.h"
/* pcmcia includes */
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/staging/comedi/drivers/ni_daq_700.c b/drivers/staging/comedi/drivers/ni_daq_700.c
index 6ec77bf..f3c4d2f 100644
--- a/drivers/staging/comedi/drivers/ni_daq_700.c
+++ b/drivers/staging/comedi/drivers/ni_daq_700.c
@@ -47,7 +47,6 @@ IRQ is assigned but not used.
#include <linux/ioport.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/staging/comedi/drivers/ni_daq_dio24.c b/drivers/staging/comedi/drivers/ni_daq_dio24.c
index e4865b1..f0c4367 100644
--- a/drivers/staging/comedi/drivers/ni_daq_dio24.c
+++ b/drivers/staging/comedi/drivers/ni_daq_dio24.c
@@ -48,7 +48,6 @@ the PCMCIA interface.
#include "8255.h"
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/staging/comedi/drivers/ni_labpc_cs.c b/drivers/staging/comedi/drivers/ni_labpc_cs.c
index 163245e..1ee78f8 100644
--- a/drivers/staging/comedi/drivers/ni_labpc_cs.c
+++ b/drivers/staging/comedi/drivers/ni_labpc_cs.c
@@ -71,7 +71,6 @@ NI manuals:
#include "comedi_fc.h"
#include "ni_labpc.h"
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/staging/comedi/drivers/ni_mio_cs.c b/drivers/staging/comedi/drivers/ni_mio_cs.c
index 3a46f0c..0bce220 100644
--- a/drivers/staging/comedi/drivers/ni_mio_cs.c
+++ b/drivers/staging/comedi/drivers/ni_mio_cs.c
@@ -48,7 +48,6 @@ See the notes in the ni_atmio.o driver.
#include "ni_stc.h"
#include "8255.h"
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c
index a91db6c..67c0fa6 100644
--- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c
+++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c
@@ -50,7 +50,6 @@ Devices: [Quatech] DAQP-208 (daqp), DAQP-308
#include "../comedidev.h"
#include <linux/semaphore.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/staging/wlags49_h2/wl_cs.c b/drivers/staging/wlags49_h2/wl_cs.c
index 10abd40..afe4575 100644
--- a/drivers/staging/wlags49_h2/wl_cs.c
+++ b/drivers/staging/wlags49_h2/wl_cs.c
@@ -83,7 +83,6 @@
#include <linux/if_arp.h>
#include <linux/ioport.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/staging/wlags49_h2/wl_internal.h b/drivers/staging/wlags49_h2/wl_internal.h
index d9a0ad0..02f0a20 100644
--- a/drivers/staging/wlags49_h2/wl_internal.h
+++ b/drivers/staging/wlags49_h2/wl_internal.h
@@ -69,7 +69,6 @@
******************************************************************************/
#include <linux/version.h>
#ifdef BUS_PCMCIA
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
diff --git a/drivers/telephony/ixj_pcmcia.c b/drivers/telephony/ixj_pcmcia.c
index 99cb224..f6c7e6f 100644
--- a/drivers/telephony/ixj_pcmcia.c
+++ b/drivers/telephony/ixj_pcmcia.c
@@ -8,7 +8,6 @@
#include <linux/errno.h> /* error codes */
#include <linux/slab.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/drivers/usb/host/sl811_cs.c b/drivers/usb/host/sl811_cs.c
index 58cb73c..acb7e25 100644
--- a/drivers/usb/host/sl811_cs.c
+++ b/drivers/usb/host/sl811_cs.c
@@ -20,7 +20,6 @@
#include <linux/ioport.h>
#include <linux/platform_device.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/cisreg.h>
@@ -43,8 +42,6 @@ MODULE_LICENSE("GPL");
/* VARIABLES */
/*====================================================================*/
-static const char driver_name[DEV_NAME_LEN] = "sl811_cs";
-
typedef struct local_info_t {
struct pcmcia_device *p_dev;
} local_info_t;
@@ -246,7 +243,7 @@ MODULE_DEVICE_TABLE(pcmcia, sl811_ids);
static struct pcmcia_driver sl811_cs_driver = {
.owner = THIS_MODULE,
.drv = {
- .name = (char *)driver_name,
+ .name = "sl811_cs",
},
.probe = sl811_cs_probe,
.remove = sl811_cs_detach,
diff --git a/include/pcmcia/cistpl.h b/include/pcmcia/cistpl.h
index cfdd5af..1c5088c 100644
--- a/include/pcmcia/cistpl.h
+++ b/include/pcmcia/cistpl.h
@@ -15,6 +15,8 @@
#ifndef _LINUX_CISTPL_H
#define _LINUX_CISTPL_H
+typedef unsigned char cisdata_t;
+
#define CISTPL_NULL 0x00
#define CISTPL_DEVICE 0x01
#define CISTPL_LONGLINK_CB 0x02
diff --git a/include/pcmcia/cs.h b/include/pcmcia/cs.h
index c943c96..c78d9b1 100644
--- a/include/pcmcia/cs.h
+++ b/include/pcmcia/cs.h
@@ -43,14 +43,6 @@ typedef struct conf_reg_t {
#define CV_COPY_VALUE 0x08
#define CV_EXT_STATUS 0x10
-/* For GetFirst/NextClient */
-typedef struct client_req_t {
- socket_t Socket;
- u_int Attributes;
-} client_req_t;
-
-#define CLIENT_THIS_SOCKET 0x01
-
/* ModifyConfiguration */
typedef struct modconf_t {
u_int Attributes;
@@ -133,7 +125,7 @@ typedef struct io_req_t {
/* For GetMemPage, MapMemPage */
typedef struct memreq_t {
u_int CardOffset;
- page_t Page;
+ u_short Page;
} memreq_t;
/* For ModifyWindow */
diff --git a/include/pcmcia/cs_types.h b/include/pcmcia/cs_types.h
deleted file mode 100644
index f5e3b83..0000000
--- a/include/pcmcia/cs_types.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * cs_types.h
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * (C) 1999 David A. Hinds
- */
-
-#ifndef _LINUX_CS_TYPES_H
-#define _LINUX_CS_TYPES_H
-
-#ifdef __KERNEL__
-#include <linux/types.h>
-#else
-#include <sys/types.h>
-#endif
-
-typedef u_short socket_t;
-typedef u_int event_t;
-typedef u_char cisdata_t;
-typedef u_short page_t;
-
-typedef unsigned long window_handle_t;
-
-struct region_t;
-typedef struct region_t *memory_handle_t;
-
-#ifndef DEV_NAME_LEN
-#define DEV_NAME_LEN 32
-#endif
-
-typedef char dev_info_t[DEV_NAME_LEN];
-
-#endif /* _LINUX_CS_TYPES_H */
diff --git a/include/pcmcia/ds.h b/include/pcmcia/ds.h
index 7d7721e..e614aa0 100644
--- a/include/pcmcia/ds.h
+++ b/include/pcmcia/ds.h
@@ -20,7 +20,6 @@
#include <linux/mod_devicetable.h>
#endif
-#include <pcmcia/cs_types.h>
#include <pcmcia/device_id.h>
#ifdef __KERNEL__
@@ -37,6 +36,8 @@ struct pcmcia_device;
struct config_t;
struct net_device;
+typedef unsigned long window_handle_t;
+
/* dynamic device IDs for PCMCIA device drivers. See
* Documentation/pcmcia/driver.txt for details.
*/
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h
index aeac271..626b63c 100644
--- a/include/pcmcia/ss.h
+++ b/include/pcmcia/ss.h
@@ -19,7 +19,6 @@
#include <linux/sched.h> /* task_struct, completion */
#include <linux/mutex.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#ifdef CONFIG_CARDBUS
#include <linux/pci.h>
diff --git a/sound/pcmcia/pdaudiocf/pdaudiocf.h b/sound/pcmcia/pdaudiocf/pdaudiocf.h
index a0a7ec6..5cc3e45 100644
--- a/sound/pcmcia/pdaudiocf/pdaudiocf.h
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf.h
@@ -24,7 +24,6 @@
#include <sound/pcm.h>
#include <asm/io.h>
#include <linux/interrupt.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
diff --git a/sound/pcmcia/vx/vxpocket.h b/sound/pcmcia/vx/vxpocket.h
index ea4df16..d911066 100644
--- a/sound/pcmcia/vx/vxpocket.h
+++ b/sound/pcmcia/vx/vxpocket.h
@@ -23,7 +23,6 @@
#include <sound/vx_core.h>
-#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
--
1.7.0.4
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 07/18] pcmcia: use pcmica_{read,write}_config_byte
[not found] <20100805220511.GA7040@comet.dominikbrodowski.net>
[not found] ` <20100805220511.GA7040-S7uyTPAaJ/sb6pqDj42GsMgv3T4z79SOrE5yTffgRl4@public.gmane.org>
@ 2010-08-05 22:06 ` Dominik Brodowski
2010-08-05 22:06 ` [PATCH 10/18] pcmcia: do not use io_req_t after call to pcmcia_request_io() Dominik Brodowski
` (6 subsequent siblings)
8 siblings, 0 replies; 23+ messages in thread
From: Dominik Brodowski @ 2010-08-05 22:06 UTC (permalink / raw)
To: linux-pcmcia
Cc: Dominik Brodowski, netdev, linux-wireless, linux-serial,
Michael Buesch
Use pcmcia_read_config_byte and pcmcia_write_config_byte instead
of pcmcia_access_configuration_register.
CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-serial@vger.kernel.org
CC: Michael Buesch <mb@bu3sch.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
---
drivers/net/pcmcia/axnet_cs.c | 3 +-
drivers/net/pcmcia/nmclan_cs.c | 21 ++-----
drivers/net/pcmcia/xirc2ps_cs.c | 16 ++---
drivers/net/wireless/hostap/hostap_cs.c | 91 ++++++++--------------------
drivers/net/wireless/orinoco/spectrum_cs.c | 32 +++-------
drivers/pcmcia/cistpl.c | 7 +-
drivers/pcmcia/cs_internal.h | 4 +-
drivers/pcmcia/pcmcia_resource.c | 72 +++++++++++++---------
drivers/serial/serial_cs.c | 8 +--
drivers/ssb/pcmcia.c | 14 +----
include/pcmcia/cs.h | 12 ----
include/pcmcia/ds.h | 4 +-
12 files changed, 105 insertions(+), 179 deletions(-)
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index 467fd4b..ee0a6d0 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -378,8 +378,7 @@ static int axnet_config(struct pcmcia_device *link)
/* Maybe PHY is in power down mode. (PPD_SET = 1)
Bit 2 of CCSR is active low. */
if (i == 32) {
- conf_reg_t reg = { 0, CS_WRITE, CISREG_CCSR, 0x04 };
- pcmcia_access_configuration_register(link, ®);
+ pcmcia_write_config_byte(link, CISREG_CCSR, 0x04);
for (i = 0; i < 32; i++) {
j = mdio_read(dev->base_addr + AXNET_MII_EEP, i, 1);
j2 = mdio_read(dev->base_addr + AXNET_MII_EEP, i, 2);
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index c0eacfa..c0d85af 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -757,29 +757,20 @@ static void nmclan_reset(struct net_device *dev)
#if RESET_XILINX
struct pcmcia_device *link = &lp->link;
- conf_reg_t reg;
- u_long OrigCorValue;
+ u8 OrigCorValue;
/* Save original COR value */
- reg.Function = 0;
- reg.Action = CS_READ;
- reg.Offset = CISREG_COR;
- reg.Value = 0;
- pcmcia_access_configuration_register(link, ®);
- OrigCorValue = reg.Value;
+ pcmcia_read_config_byte(link, CISREG_COR, &OrigCorValue);
/* Reset Xilinx */
- reg.Action = CS_WRITE;
- reg.Offset = CISREG_COR;
- dev_dbg(&link->dev, "nmclan_reset: OrigCorValue=0x%lX, resetting...\n",
+ dev_dbg(&link->dev, "nmclan_reset: OrigCorValue=0x%x, resetting...\n",
OrigCorValue);
- reg.Value = COR_SOFT_RESET;
- pcmcia_access_configuration_register(link, ®);
+ pcmcia_write_config_byte(link, CISREG_COR, COR_SOFT_RESET);
/* Need to wait for 20 ms for PCMCIA to finish reset. */
/* Restore original COR configuration index */
- reg.Value = COR_LEVEL_REQ | (OrigCorValue & COR_CONFIG_MASK);
- pcmcia_access_configuration_register(link, ®);
+ pcmcia_write_config_byte(link, CISREG_COR,
+ (COR_LEVEL_REQ | (OrigCorValue & COR_CONFIG_MASK)));
/* Xilinx is now completely reset along with the MACE chip. */
lp->tx_free_frames=AM2150_MAX_TX_FRAMES;
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index a7662f0..e3a85ce 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -869,7 +869,6 @@ xirc2ps_config(struct pcmcia_device * link)
goto config_error;
if (local->dingo) {
- conf_reg_t reg;
win_req_t req;
memreq_t mem;
@@ -878,15 +877,14 @@ xirc2ps_config(struct pcmcia_device * link)
* the base address of the ethernet port (BasePort1) is written
* to the BAR registers of the modem.
*/
- reg.Action = CS_WRITE;
- reg.Offset = CISREG_IOBASE_0;
- reg.Value = link->io.BasePort2 & 0xff;
- if ((err = pcmcia_access_configuration_register(link, ®)))
+ err = pcmcia_write_config_byte(link, CISREG_IOBASE_0,
+ link->io.BasePort2 & 0xff);
+ if (err)
goto config_error;
- reg.Action = CS_WRITE;
- reg.Offset = CISREG_IOBASE_1;
- reg.Value = (link->io.BasePort2 >> 8) & 0xff;
- if ((err = pcmcia_access_configuration_register(link, ®)))
+
+ err = pcmcia_write_config_byte(link, CISREG_IOBASE_1,
+ (link->io.BasePort2 >> 8) & 0xff);
+ if (err)
goto config_error;
/* There is no config entry for the Ethernet part which
diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
index 2f4b6d4..6912936 100644
--- a/drivers/net/wireless/hostap/hostap_cs.c
+++ b/drivers/net/wireless/hostap/hostap_cs.c
@@ -224,27 +224,18 @@ static int prism2_pccard_card_present(local_info_t *local)
static void sandisk_set_iobase(local_info_t *local)
{
int res;
- conf_reg_t reg;
struct hostap_cs_priv *hw_priv = local->hw_priv;
- reg.Function = 0;
- reg.Action = CS_WRITE;
- reg.Offset = 0x10; /* 0x3f0 IO base 1 */
- reg.Value = hw_priv->link->io.BasePort1 & 0x00ff;
- res = pcmcia_access_configuration_register(hw_priv->link,
- ®);
+ res = pcmcia_write_config_byte(hw_priv->link, 0x10,
+ hw_priv->link->io.BasePort1 & 0x00ff);
if (res != 0) {
printk(KERN_DEBUG "Prism3 SanDisk - failed to set I/O base 0 -"
" res=%d\n", res);
}
udelay(10);
- reg.Function = 0;
- reg.Action = CS_WRITE;
- reg.Offset = 0x12; /* 0x3f2 IO base 2 */
- reg.Value = (hw_priv->link->io.BasePort1 & 0xff00) >> 8;
- res = pcmcia_access_configuration_register(hw_priv->link,
- ®);
+ res = pcmcia_write_config_byte(hw_priv->link, 0x12,
+ (hw_priv->link->io.BasePort1 >> 8) & 0x00ff);
if (res != 0) {
printk(KERN_DEBUG "Prism3 SanDisk - failed to set I/O base 1 -"
" res=%d\n", res);
@@ -270,7 +261,6 @@ static void sandisk_write_hcr(local_info_t *local, int hcr)
static int sandisk_enable_wireless(struct net_device *dev)
{
int res, ret = 0;
- conf_reg_t reg;
struct hostap_interface *iface = netdev_priv(dev);
local_info_t *local = iface->local;
struct hostap_cs_priv *hw_priv = local->hw_priv;
@@ -297,12 +287,8 @@ static int sandisk_enable_wireless(struct net_device *dev)
" - using vendor-specific initialization\n", dev->name);
hw_priv->sandisk_connectplus = 1;
- reg.Function = 0;
- reg.Action = CS_WRITE;
- reg.Offset = CISREG_COR;
- reg.Value = COR_SOFT_RESET;
- res = pcmcia_access_configuration_register(hw_priv->link,
- ®);
+ res = pcmcia_write_config_byte(hw_priv->link, CISREG_COR,
+ COR_SOFT_RESET);
if (res != 0) {
printk(KERN_DEBUG "%s: SanDisk - COR sreset failed (%d)\n",
dev->name, res);
@@ -310,16 +296,13 @@ static int sandisk_enable_wireless(struct net_device *dev)
}
mdelay(5);
- reg.Function = 0;
- reg.Action = CS_WRITE;
- reg.Offset = CISREG_COR;
/*
* Do not enable interrupts here to avoid some bogus events. Interrupts
* will be enabled during the first cor_sreset call.
*/
- reg.Value = COR_LEVEL_REQ | 0x8 | COR_ADDR_DECODE | COR_FUNC_ENA;
- res = pcmcia_access_configuration_register(hw_priv->link,
- ®);
+ res = pcmcia_write_config_byte(hw_priv->link, CISREG_COR,
+ (COR_LEVEL_REQ | 0x8 | COR_ADDR_DECODE |
+ COR_FUNC_ENA));
if (res != 0) {
printk(KERN_DEBUG "%s: SanDisk - COR sreset failed (%d)\n",
dev->name, res);
@@ -342,30 +325,23 @@ done:
static void prism2_pccard_cor_sreset(local_info_t *local)
{
int res;
- conf_reg_t reg;
+ u8 val;
struct hostap_cs_priv *hw_priv = local->hw_priv;
if (!prism2_pccard_card_present(local))
return;
- reg.Function = 0;
- reg.Action = CS_READ;
- reg.Offset = CISREG_COR;
- reg.Value = 0;
- res = pcmcia_access_configuration_register(hw_priv->link,
- ®);
+ res = pcmcia_read_config_byte(hw_priv->link, CISREG_COR, &val);
if (res != 0) {
printk(KERN_DEBUG "prism2_pccard_cor_sreset failed 1 (%d)\n",
res);
return;
}
printk(KERN_DEBUG "prism2_pccard_cor_sreset: original COR %02x\n",
- reg.Value);
+ val);
- reg.Action = CS_WRITE;
- reg.Value |= COR_SOFT_RESET;
- res = pcmcia_access_configuration_register(hw_priv->link,
- ®);
+ val |= COR_SOFT_RESET;
+ res = pcmcia_write_config_byte(hw_priv->link, CISREG_COR, val);
if (res != 0) {
printk(KERN_DEBUG "prism2_pccard_cor_sreset failed 2 (%d)\n",
res);
@@ -374,11 +350,10 @@ static void prism2_pccard_cor_sreset(local_info_t *local)
mdelay(hw_priv->sandisk_connectplus ? 5 : 2);
- reg.Value &= ~COR_SOFT_RESET;
+ val &= ~COR_SOFT_RESET;
if (hw_priv->sandisk_connectplus)
- reg.Value |= COR_IREQ_ENA;
- res = pcmcia_access_configuration_register(hw_priv->link,
- ®);
+ val |= COR_IREQ_ENA;
+ res = pcmcia_write_config_byte(hw_priv->link, CISREG_COR, val);
if (res != 0) {
printk(KERN_DEBUG "prism2_pccard_cor_sreset failed 3 (%d)\n",
res);
@@ -395,8 +370,7 @@ static void prism2_pccard_cor_sreset(local_info_t *local)
static void prism2_pccard_genesis_reset(local_info_t *local, int hcr)
{
int res;
- conf_reg_t reg;
- int old_cor;
+ u8 old_cor;
struct hostap_cs_priv *hw_priv = local->hw_priv;
if (!prism2_pccard_card_present(local))
@@ -407,25 +381,17 @@ static void prism2_pccard_genesis_reset(local_info_t *local, int hcr)
return;
}
- reg.Function = 0;
- reg.Action = CS_READ;
- reg.Offset = CISREG_COR;
- reg.Value = 0;
- res = pcmcia_access_configuration_register(hw_priv->link,
- ®);
+ res = pcmcia_read_config_byte(hw_priv->link, CISREG_COR, &old_cor);
if (res != 0) {
printk(KERN_DEBUG "prism2_pccard_genesis_sreset failed 1 "
"(%d)\n", res);
return;
}
printk(KERN_DEBUG "prism2_pccard_genesis_sreset: original COR %02x\n",
- reg.Value);
- old_cor = reg.Value;
+ old_cor);
- reg.Action = CS_WRITE;
- reg.Value |= COR_SOFT_RESET;
- res = pcmcia_access_configuration_register(hw_priv->link,
- ®);
+ res = pcmcia_write_config_byte(hw_priv->link, CISREG_COR,
+ old_cor | COR_SOFT_RESET);
if (res != 0) {
printk(KERN_DEBUG "prism2_pccard_genesis_sreset failed 2 "
"(%d)\n", res);
@@ -435,11 +401,7 @@ static void prism2_pccard_genesis_reset(local_info_t *local, int hcr)
mdelay(10);
/* Setup Genesis mode */
- reg.Action = CS_WRITE;
- reg.Value = hcr;
- reg.Offset = CISREG_CCSR;
- res = pcmcia_access_configuration_register(hw_priv->link,
- ®);
+ res = pcmcia_write_config_byte(hw_priv->link, CISREG_CCSR, hcr);
if (res != 0) {
printk(KERN_DEBUG "prism2_pccard_genesis_sreset failed 3 "
"(%d)\n", res);
@@ -447,11 +409,8 @@ static void prism2_pccard_genesis_reset(local_info_t *local, int hcr)
}
mdelay(10);
- reg.Action = CS_WRITE;
- reg.Offset = CISREG_COR;
- reg.Value = old_cor & ~COR_SOFT_RESET;
- res = pcmcia_access_configuration_register(hw_priv->link,
- ®);
+ res = pcmcia_write_config_byte(hw_priv->link, CISREG_COR,
+ old_cor & ~COR_SOFT_RESET);
if (res != 0) {
printk(KERN_DEBUG "prism2_pccard_genesis_sreset failed 4 "
"(%d)\n", res);
diff --git a/drivers/net/wireless/orinoco/spectrum_cs.c b/drivers/net/wireless/orinoco/spectrum_cs.c
index cad30e4..39399cd 100644
--- a/drivers/net/wireless/orinoco/spectrum_cs.c
+++ b/drivers/net/wireless/orinoco/spectrum_cs.c
@@ -79,35 +79,27 @@ static int
spectrum_reset(struct pcmcia_device *link, int idle)
{
int ret;
- conf_reg_t reg;
- u_int save_cor;
+ u8 save_cor;
+ u8 ccsr;
/* Doing it if hardware is gone is guaranteed crash */
if (!pcmcia_dev_present(link))
return -ENODEV;
/* Save original COR value */
- reg.Function = 0;
- reg.Action = CS_READ;
- reg.Offset = CISREG_COR;
- ret = pcmcia_access_configuration_register(link, ®);
+ ret = pcmcia_read_config_byte(link, CISREG_COR, &save_cor);
if (ret)
goto failed;
- save_cor = reg.Value;
/* Soft-Reset card */
- reg.Action = CS_WRITE;
- reg.Offset = CISREG_COR;
- reg.Value = (save_cor | COR_SOFT_RESET);
- ret = pcmcia_access_configuration_register(link, ®);
+ ret = pcmcia_write_config_byte(link, CISREG_COR,
+ (save_cor | COR_SOFT_RESET));
if (ret)
goto failed;
udelay(1000);
/* Read CCSR */
- reg.Action = CS_READ;
- reg.Offset = CISREG_CCSR;
- ret = pcmcia_access_configuration_register(link, ®);
+ ret = pcmcia_read_config_byte(link, CISREG_CCSR, &ccsr);
if (ret)
goto failed;
@@ -115,19 +107,15 @@ spectrum_reset(struct pcmcia_device *link, int idle)
* Start or stop the firmware. Memory width bit should be
* preserved from the value we've just read.
*/
- reg.Action = CS_WRITE;
- reg.Offset = CISREG_CCSR;
- reg.Value = (idle ? HCR_IDLE : HCR_RUN) | (reg.Value & HCR_MEM16);
- ret = pcmcia_access_configuration_register(link, ®);
+ ccsr = (idle ? HCR_IDLE : HCR_RUN) | (ccsr & HCR_MEM16);
+ ret = pcmcia_write_config_byte(link, CISREG_CCSR, ccsr);
if (ret)
goto failed;
udelay(1000);
/* Restore original COR configuration index */
- reg.Action = CS_WRITE;
- reg.Offset = CISREG_COR;
- reg.Value = (save_cor & ~COR_SOFT_RESET);
- ret = pcmcia_access_configuration_register(link, ®);
+ ret = pcmcia_write_config_byte(link, CISREG_COR,
+ (save_cor & ~COR_SOFT_RESET));
if (ret)
goto failed;
udelay(1000);
diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c
index ba4a5ac..1733fab 100644
--- a/drivers/pcmcia/cistpl.c
+++ b/drivers/pcmcia/cistpl.c
@@ -209,7 +209,7 @@ int pcmcia_read_cis_mem(struct pcmcia_socket *s, int attr, u_int addr,
* Probably only useful for writing one-byte registers. Must be called
* with ops_mutex held.
*/
-void pcmcia_write_cis_mem(struct pcmcia_socket *s, int attr, u_int addr,
+int pcmcia_write_cis_mem(struct pcmcia_socket *s, int attr, u_int addr,
u_int len, void *ptr)
{
void __iomem *sys, *end;
@@ -231,7 +231,7 @@ void pcmcia_write_cis_mem(struct pcmcia_socket *s, int attr, u_int addr,
((cis_width) ? MAP_16BIT : 0));
if (!sys) {
dev_dbg(&s->dev, "could not map memory\n");
- return; /* FIXME: Error */
+ return -EINVAL;
}
writeb(flags, sys+CISREG_ICTRL0);
@@ -256,7 +256,7 @@ void pcmcia_write_cis_mem(struct pcmcia_socket *s, int attr, u_int addr,
sys = set_cis_map(s, card_offset, flags);
if (!sys) {
dev_dbg(&s->dev, "could not map memory\n");
- return; /* FIXME: error */
+ return -EINVAL;
}
end = sys + s->map_size;
@@ -270,6 +270,7 @@ void pcmcia_write_cis_mem(struct pcmcia_socket *s, int attr, u_int addr,
addr = 0;
}
}
+ return 0;
}
diff --git a/drivers/pcmcia/cs_internal.h b/drivers/pcmcia/cs_internal.h
index 45e7fd1..cebd40d 100644
--- a/drivers/pcmcia/cs_internal.h
+++ b/drivers/pcmcia/cs_internal.h
@@ -158,8 +158,8 @@ extern struct bin_attribute pccard_cis_attr;
int pcmcia_read_cis_mem(struct pcmcia_socket *s, int attr,
u_int addr, u_int len, void *ptr);
-void pcmcia_write_cis_mem(struct pcmcia_socket *s, int attr,
- u_int addr, u_int len, void *ptr);
+int pcmcia_write_cis_mem(struct pcmcia_socket *s, int attr,
+ u_int addr, u_int len, void *ptr);
void release_cis_mem(struct pcmcia_socket *s);
void destroy_cis_cache(struct pcmcia_socket *s);
int pccard_read_tuple(struct pcmcia_socket *s, unsigned int function,
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index 2394de4..563750e 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -108,25 +108,25 @@ static void release_io_space(struct pcmcia_socket *s, unsigned int base,
} /* release_io_space */
-/** pccard_access_configuration_register
+/**
+ * pcmcia_access_config() - read or write card configuration registers
*
- * Access_configuration_register() reads and writes configuration
- * registers in attribute memory. Memory window 0 is reserved for
- * this and the tuple reading services.
+ * pcmcia_access_config() reads and writes configuration registers in
+ * attribute memory. Memory window 0 is reserved for this and the tuple
+ * reading services. Drivers must use pcmcia_read_config_byte() or
+ * pcmcia_write_config_byte().
*/
-
-int pcmcia_access_configuration_register(struct pcmcia_device *p_dev,
- conf_reg_t *reg)
+static int pcmcia_access_config(struct pcmcia_device *p_dev,
+ off_t where, u8 *val,
+ int (*accessf) (struct pcmcia_socket *s,
+ int attr, unsigned int addr,
+ unsigned int len, void *ptr))
{
struct pcmcia_socket *s;
config_t *c;
int addr;
- u_char val;
int ret = 0;
- if (!p_dev || !p_dev->function_config)
- return -EINVAL;
-
s = p_dev->socket;
mutex_lock(&s->ops_mutex);
@@ -138,26 +138,40 @@ int pcmcia_access_configuration_register(struct pcmcia_device *p_dev,
return -EACCES;
}
- addr = (c->ConfigBase + reg->Offset) >> 1;
+ addr = (c->ConfigBase + where) >> 1;
+
+ ret = accessf(s, 1, addr, 1, val);
- switch (reg->Action) {
- case CS_READ:
- ret = pcmcia_read_cis_mem(s, 1, addr, 1, &val);
- reg->Value = val;
- break;
- case CS_WRITE:
- val = reg->Value;
- pcmcia_write_cis_mem(s, 1, addr, 1, &val);
- break;
- default:
- dev_dbg(&s->dev, "Invalid conf register request\n");
- ret = -EINVAL;
- break;
- }
mutex_unlock(&s->ops_mutex);
+
return ret;
-} /* pcmcia_access_configuration_register */
-EXPORT_SYMBOL(pcmcia_access_configuration_register);
+} /* pcmcia_access_config */
+
+
+/**
+ * pcmcia_read_config_byte() - read a byte from a card configuration register
+ *
+ * pcmcia_read_config_byte() reads a byte from a configuration register in
+ * attribute memory.
+ */
+int pcmcia_read_config_byte(struct pcmcia_device *p_dev, off_t where, u8 *val)
+{
+ return pcmcia_access_config(p_dev, where, val, pcmcia_read_cis_mem);
+}
+EXPORT_SYMBOL(pcmcia_read_config_byte);
+
+
+/**
+ * pcmcia_write_config_byte() - write a byte to a card configuration register
+ *
+ * pcmcia_write_config_byte() writes a byte to a configuration register in
+ * attribute memory.
+ */
+int pcmcia_write_config_byte(struct pcmcia_device *p_dev, off_t where, u8 val)
+{
+ return pcmcia_access_config(p_dev, where, &val, pcmcia_write_cis_mem);
+}
+EXPORT_SYMBOL(pcmcia_write_config_byte);
int pcmcia_map_mem_page(struct pcmcia_device *p_dev, window_handle_t wh,
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
index 2b99c7b..2be8b10 100644
--- a/drivers/serial/serial_cs.c
+++ b/drivers/serial/serial_cs.c
@@ -114,16 +114,14 @@ static void quirk_setup_brainboxes_0104(struct pcmcia_device *link, struct uart_
static int quirk_post_ibm(struct pcmcia_device *link)
{
- conf_reg_t reg = { 0, CS_READ, 0x800, 0 };
+ u8 val;
int ret;
- ret = pcmcia_access_configuration_register(link, ®);
+ ret = pcmcia_read_config_byte(link, 0x800, &val);
if (ret)
goto failed;
- reg.Action = CS_WRITE;
- reg.Value = reg.Value | 1;
- ret = pcmcia_access_configuration_register(link, ®);
+ ret = pcmcia_write_config_byte(link, 0x800, val | 1);
if (ret)
goto failed;
return 0;
diff --git a/drivers/ssb/pcmcia.c b/drivers/ssb/pcmcia.c
index 2152030..526682d 100644
--- a/drivers/ssb/pcmcia.c
+++ b/drivers/ssb/pcmcia.c
@@ -71,14 +71,9 @@
/* Write to a PCMCIA configuration register. */
static int ssb_pcmcia_cfg_write(struct ssb_bus *bus, u8 offset, u8 value)
{
- conf_reg_t reg;
int res;
- memset(®, 0, sizeof(reg));
- reg.Offset = offset;
- reg.Action = CS_WRITE;
- reg.Value = value;
- res = pcmcia_access_configuration_register(bus->host_pcmcia, ®);
+ res = pcmcia_write_config_byte(bus->host_pcmcia, offset, value);
if (unlikely(res != 0))
return -EBUSY;
@@ -88,16 +83,11 @@ static int ssb_pcmcia_cfg_write(struct ssb_bus *bus, u8 offset, u8 value)
/* Read from a PCMCIA configuration register. */
static int ssb_pcmcia_cfg_read(struct ssb_bus *bus, u8 offset, u8 *value)
{
- conf_reg_t reg;
int res;
- memset(®, 0, sizeof(reg));
- reg.Offset = offset;
- reg.Action = CS_READ;
- res = pcmcia_access_configuration_register(bus->host_pcmcia, ®);
+ res = pcmcia_read_config_byte(bus->host_pcmcia, offset, value);
if (unlikely(res != 0))
return -EBUSY;
- *value = reg.Value;
return 0;
}
diff --git a/include/pcmcia/cs.h b/include/pcmcia/cs.h
index c78d9b1..64e853d 100644
--- a/include/pcmcia/cs.h
+++ b/include/pcmcia/cs.h
@@ -19,18 +19,6 @@
#include <linux/interrupt.h>
#endif
-/* For AccessConfigurationRegister */
-typedef struct conf_reg_t {
- u_char Function;
- u_int Action;
- off_t Offset;
- u_int Value;
-} conf_reg_t;
-
-/* Actions */
-#define CS_READ 1
-#define CS_WRITE 2
-
/* for AdjustResourceInfo */
/* Action field */
#define REMOVE_MANAGED_RESOURCE 1
diff --git a/include/pcmcia/ds.h b/include/pcmcia/ds.h
index e614aa0..d494ce4 100644
--- a/include/pcmcia/ds.h
+++ b/include/pcmcia/ds.h
@@ -174,8 +174,8 @@ struct pcmcia_device *pcmcia_dev_present(struct pcmcia_device *p_dev);
int pcmcia_reset_card(struct pcmcia_socket *skt);
/* CIS config */
-int pcmcia_access_configuration_register(struct pcmcia_device *p_dev,
- conf_reg_t *reg);
+int pcmcia_read_config_byte(struct pcmcia_device *p_dev, off_t where, u8 *val);
+int pcmcia_write_config_byte(struct pcmcia_device *p_dev, off_t where, u8 val);
/* device configuration */
int pcmcia_request_io(struct pcmcia_device *p_dev, io_req_t *req);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 10/18] pcmcia: do not use io_req_t after call to pcmcia_request_io()
[not found] <20100805220511.GA7040@comet.dominikbrodowski.net>
[not found] ` <20100805220511.GA7040-S7uyTPAaJ/sb6pqDj42GsMgv3T4z79SOrE5yTffgRl4@public.gmane.org>
2010-08-05 22:06 ` [PATCH 07/18] pcmcia: use pcmica_{read,write}_config_byte Dominik Brodowski
@ 2010-08-05 22:06 ` Dominik Brodowski
2010-08-05 22:06 ` [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io() Dominik Brodowski
` (5 subsequent siblings)
8 siblings, 0 replies; 23+ messages in thread
From: Dominik Brodowski @ 2010-08-05 22:06 UTC (permalink / raw)
To: linux-pcmcia
Cc: Dominik Brodowski, netdev, linux-wireless, linux-ide, linux-usb,
laforge, linux-mtd, alsa-devel, linux-serial
After pcmcia_request_io(), do not make use of the values stored in
io_req_t, but instead use those found in struct pcmcia_device->resource[].
CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-ide@vger.kernel.org
CC: linux-usb@vger.kernel.org
CC: laforge@gnumonks.org
CC: linux-mtd@lists.infradead.org
CC: alsa-devel@alsa-project.org
CC: linux-serial@vger.kernel.org
Acked-by: Marcel Holtmann <marcel@holtmann.org> (for drivers/bluetooth/)
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
---
drivers/ata/pata_pcmcia.c | 8 +++---
drivers/bluetooth/bluecard_cs.c | 18 ++++++++--------
drivers/bluetooth/bt3c_cs.c | 8 +++---
drivers/bluetooth/btuart_cs.c | 12 +++++-----
drivers/bluetooth/dtl1_cs.c | 13 ++++++-----
drivers/char/pcmcia/cm4000_cs.c | 12 +++++-----
drivers/char/pcmcia/cm4040_cs.c | 16 +++++++-------
drivers/char/pcmcia/ipwireless/main.c | 10 +++-----
drivers/char/pcmcia/synclink_cs.c | 7 ++---
drivers/ide/ide-cs.c | 8 +++---
drivers/isdn/hardware/avm/avm_cs.c | 9 ++++---
drivers/isdn/hisax/avma1_cs.c | 8 ++++--
drivers/isdn/hisax/elsa_cs.c | 16 ++++++--------
drivers/isdn/hisax/sedlbauer_cs.c | 16 ++++++--------
drivers/isdn/hisax/teles_cs.c | 14 +++++-------
drivers/net/pcmcia/3c574_cs.c | 2 +-
drivers/net/pcmcia/3c589_cs.c | 2 +-
drivers/net/pcmcia/axnet_cs.c | 4 +-
drivers/net/pcmcia/com20020_cs.c | 2 +-
drivers/net/pcmcia/fmvj18x_cs.c | 6 ++--
drivers/net/pcmcia/ibmtr_cs.c | 2 +-
drivers/net/pcmcia/nmclan_cs.c | 2 +-
drivers/net/pcmcia/pcnet_cs.c | 4 +-
drivers/net/pcmcia/smc91c92_cs.c | 18 ++++++++--------
drivers/net/pcmcia/xirc2ps_cs.c | 10 ++++----
drivers/net/wireless/airo_cs.c | 12 ++++------
drivers/net/wireless/atmel_cs.c | 2 +-
drivers/net/wireless/hostap/hostap_cs.c | 18 +++++++--------
drivers/net/wireless/libertas/if_cs.c | 7 ++---
drivers/net/wireless/orinoco/orinoco_cs.c | 5 ++-
drivers/net/wireless/orinoco/spectrum_cs.c | 5 ++-
drivers/net/wireless/wl3501_cs.c | 2 +-
drivers/parport/parport_cs.c | 6 +++-
drivers/scsi/pcmcia/aha152x_stub.c | 2 +-
drivers/scsi/pcmcia/fdomain_stub.c | 4 +-
drivers/scsi/pcmcia/nsp_cs.c | 25 ++++++++++-----------
drivers/scsi/pcmcia/qlogic_stub.c | 18 ++++++++--------
drivers/scsi/pcmcia/sym53c500_cs.c | 16 +++++++-------
drivers/serial/serial_cs.c | 22 +++++++++---------
drivers/staging/comedi/drivers/cb_das16_cs.c | 12 ++++------
drivers/staging/comedi/drivers/das08_cs.c | 12 ++++------
drivers/staging/comedi/drivers/ni_daq_700.c | 12 ++++------
drivers/staging/comedi/drivers/ni_daq_dio24.c | 12 ++++------
drivers/staging/comedi/drivers/ni_labpc_cs.c | 12 ++++------
drivers/staging/comedi/drivers/ni_mio_cs.c | 2 +-
drivers/staging/comedi/drivers/quatech_daqp_cs.c | 12 ++++------
drivers/staging/wlags49_h2/wl_cs.c | 2 +-
drivers/telephony/ixj_pcmcia.c | 3 +-
drivers/usb/host/sl811_cs.c | 7 ++---
sound/pcmcia/pdaudiocf/pdaudiocf.c | 3 +-
sound/pcmcia/vx/vxpocket.c | 3 +-
51 files changed, 223 insertions(+), 240 deletions(-)
diff --git a/drivers/ata/pata_pcmcia.c b/drivers/ata/pata_pcmcia.c
index 3dcb2b1..1fcd065 100644
--- a/drivers/ata/pata_pcmcia.c
+++ b/drivers/ata/pata_pcmcia.c
@@ -210,13 +210,13 @@ static int pcmcia_check_one_config(struct pcmcia_device *pdev,
pdev->io.NumPorts2 = (stk->is_kme) ? 2 : 1;
if (pcmcia_request_io(pdev, &pdev->io) != 0)
return -ENODEV;
- stk->ctl_base = pdev->io.BasePort2;
+ stk->ctl_base = pdev->resource[1]->start;
} else if ((io->nwin == 1) && (io->win[0].len >= 16)) {
pdev->io.NumPorts1 = io->win[0].len;
pdev->io.NumPorts2 = 0;
if (pcmcia_request_io(pdev, &pdev->io) != 0)
return -ENODEV;
- stk->ctl_base = pdev->io.BasePort1 + 0x0e;
+ stk->ctl_base = pdev->resource[0]->start + 0x0e;
} else
return -ENODEV;
/* If we've got this far, we're done */
@@ -270,7 +270,7 @@ static int pcmcia_init_one(struct pcmcia_device *pdev)
if (pcmcia_loop_config(pdev, pcmcia_check_one_config, stk))
goto failed; /* No suitable config found */
}
- io_base = pdev->io.BasePort1;
+ io_base = pdev->resource[0]->start;
ctl_base = stk->ctl_base;
if (!pdev->irq)
goto failed;
@@ -293,7 +293,7 @@ static int pcmcia_init_one(struct pcmcia_device *pdev)
/* FIXME: Could be more ports at base + 0x10 but we only deal with
one right now */
- if (pdev->io.NumPorts1 >= 0x20)
+ if (resource_size(pdev->resource[0]) >= 0x20)
n_ports = 2;
if (pdev->manf_id == 0x0097 && pdev->card_id == 0x1620)
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c
index eb085de..24d2007 100644
--- a/drivers/bluetooth/bluecard_cs.c
+++ b/drivers/bluetooth/bluecard_cs.c
@@ -159,7 +159,7 @@ static void bluecard_detach(struct pcmcia_device *p_dev);
static void bluecard_activity_led_timeout(u_long arg)
{
bluecard_info_t *info = (bluecard_info_t *)arg;
- unsigned int iobase = info->p_dev->io.BasePort1;
+ unsigned int iobase = info->p_dev->resource[0]->start;
if (!test_bit(CARD_HAS_PCCARD_ID, &(info->hw_state)))
return;
@@ -176,7 +176,7 @@ static void bluecard_activity_led_timeout(u_long arg)
static void bluecard_enable_activity_led(bluecard_info_t *info)
{
- unsigned int iobase = info->p_dev->io.BasePort1;
+ unsigned int iobase = info->p_dev->resource[0]->start;
if (!test_bit(CARD_HAS_PCCARD_ID, &(info->hw_state)))
return;
@@ -232,7 +232,7 @@ static void bluecard_write_wakeup(bluecard_info_t *info)
}
do {
- register unsigned int iobase = info->p_dev->io.BasePort1;
+ register unsigned int iobase = info->p_dev->resource[0]->start;
register unsigned int offset;
register unsigned char command;
register unsigned long ready_bit;
@@ -379,7 +379,7 @@ static void bluecard_receive(bluecard_info_t *info, unsigned int offset)
return;
}
- iobase = info->p_dev->io.BasePort1;
+ iobase = info->p_dev->resource[0]->start;
if (test_bit(XMIT_SENDING_READY, &(info->tx_state)))
bluecard_enable_activity_led(info);
@@ -508,7 +508,7 @@ static irqreturn_t bluecard_interrupt(int irq, void *dev_inst)
if (!test_bit(CARD_READY, &(info->hw_state)))
return IRQ_HANDLED;
- iobase = info->p_dev->io.BasePort1;
+ iobase = info->p_dev->resource[0]->start;
spin_lock(&(info->lock));
@@ -622,7 +622,7 @@ static int bluecard_hci_flush(struct hci_dev *hdev)
static int bluecard_hci_open(struct hci_dev *hdev)
{
bluecard_info_t *info = (bluecard_info_t *)(hdev->driver_data);
- unsigned int iobase = info->p_dev->io.BasePort1;
+ unsigned int iobase = info->p_dev->resource[0]->start;
if (test_bit(CARD_HAS_PCCARD_ID, &(info->hw_state)))
bluecard_hci_set_baud_rate(hdev, DEFAULT_BAUD_RATE);
@@ -642,7 +642,7 @@ static int bluecard_hci_open(struct hci_dev *hdev)
static int bluecard_hci_close(struct hci_dev *hdev)
{
bluecard_info_t *info = (bluecard_info_t *)(hdev->driver_data);
- unsigned int iobase = info->p_dev->io.BasePort1;
+ unsigned int iobase = info->p_dev->resource[0]->start;
if (!test_and_clear_bit(HCI_RUNNING, &(hdev->flags)))
return 0;
@@ -709,7 +709,7 @@ static int bluecard_hci_ioctl(struct hci_dev *hdev, unsigned int cmd, unsigned l
static int bluecard_open(bluecard_info_t *info)
{
- unsigned int iobase = info->p_dev->io.BasePort1;
+ unsigned int iobase = info->p_dev->resource[0]->start;
struct hci_dev *hdev;
unsigned char id;
@@ -828,7 +828,7 @@ static int bluecard_open(bluecard_info_t *info)
static int bluecard_close(bluecard_info_t *info)
{
- unsigned int iobase = info->p_dev->io.BasePort1;
+ unsigned int iobase = info->p_dev->resource[0]->start;
struct hci_dev *hdev = info->hdev;
if (!hdev)
diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c
index 457b603..8ab494c 100644
--- a/drivers/bluetooth/bt3c_cs.c
+++ b/drivers/bluetooth/bt3c_cs.c
@@ -188,7 +188,7 @@ static void bt3c_write_wakeup(bt3c_info_t *info)
return;
do {
- register unsigned int iobase = info->p_dev->io.BasePort1;
+ register unsigned int iobase = info->p_dev->resource[0]->start;
register struct sk_buff *skb;
register int len;
@@ -226,7 +226,7 @@ static void bt3c_receive(bt3c_info_t *info)
return;
}
- iobase = info->p_dev->io.BasePort1;
+ iobase = info->p_dev->resource[0]->start;
avail = bt3c_read(iobase, 0x7006);
//printk("bt3c_cs: receiving %d bytes\n", avail);
@@ -347,7 +347,7 @@ static irqreturn_t bt3c_interrupt(int irq, void *dev_inst)
/* our irq handler is shared */
return IRQ_NONE;
- iobase = info->p_dev->io.BasePort1;
+ iobase = info->p_dev->resource[0]->start;
spin_lock(&(info->lock));
@@ -480,7 +480,7 @@ static int bt3c_load_firmware(bt3c_info_t *info, const unsigned char *firmware,
unsigned int iobase, size, addr, fcs, tmp;
int i, err = 0;
- iobase = info->p_dev->io.BasePort1;
+ iobase = info->p_dev->resource[0]->start;
/* Reset */
bt3c_io_write(iobase, 0x8040, 0x0404);
diff --git a/drivers/bluetooth/btuart_cs.c b/drivers/bluetooth/btuart_cs.c
index e7e0a17..7e770d4 100644
--- a/drivers/bluetooth/btuart_cs.c
+++ b/drivers/bluetooth/btuart_cs.c
@@ -142,7 +142,7 @@ static void btuart_write_wakeup(btuart_info_t *info)
}
do {
- register unsigned int iobase = info->p_dev->io.BasePort1;
+ register unsigned int iobase = info->p_dev->resource[0]->start;
register struct sk_buff *skb;
register int len;
@@ -183,7 +183,7 @@ static void btuart_receive(btuart_info_t *info)
return;
}
- iobase = info->p_dev->io.BasePort1;
+ iobase = info->p_dev->resource[0]->start;
do {
info->hdev->stat.byte_rx++;
@@ -297,7 +297,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
/* our irq handler is shared */
return IRQ_NONE;
- iobase = info->p_dev->io.BasePort1;
+ iobase = info->p_dev->resource[0]->start;
spin_lock(&(info->lock));
@@ -354,7 +354,7 @@ static void btuart_change_speed(btuart_info_t *info, unsigned int speed)
return;
}
- iobase = info->p_dev->io.BasePort1;
+ iobase = info->p_dev->resource[0]->start;
spin_lock_irqsave(&(info->lock), flags);
@@ -478,7 +478,7 @@ static int btuart_hci_ioctl(struct hci_dev *hdev, unsigned int cmd, unsigned lon
static int btuart_open(btuart_info_t *info)
{
unsigned long flags;
- unsigned int iobase = info->p_dev->io.BasePort1;
+ unsigned int iobase = info->p_dev->resource[0]->start;
struct hci_dev *hdev;
spin_lock_init(&(info->lock));
@@ -548,7 +548,7 @@ static int btuart_open(btuart_info_t *info)
static int btuart_close(btuart_info_t *info)
{
unsigned long flags;
- unsigned int iobase = info->p_dev->io.BasePort1;
+ unsigned int iobase = info->p_dev->resource[0]->start;
struct hci_dev *hdev = info->hdev;
if (!hdev)
diff --git a/drivers/bluetooth/dtl1_cs.c b/drivers/bluetooth/dtl1_cs.c
index 7c94aad..bfe9313 100644
--- a/drivers/bluetooth/dtl1_cs.c
+++ b/drivers/bluetooth/dtl1_cs.c
@@ -149,7 +149,7 @@ static void dtl1_write_wakeup(dtl1_info_t *info)
}
do {
- register unsigned int iobase = info->p_dev->io.BasePort1;
+ register unsigned int iobase = info->p_dev->resource[0]->start;
register struct sk_buff *skb;
register int len;
@@ -214,7 +214,7 @@ static void dtl1_receive(dtl1_info_t *info)
return;
}
- iobase = info->p_dev->io.BasePort1;
+ iobase = info->p_dev->resource[0]->start;
do {
info->hdev->stat.byte_rx++;
@@ -301,7 +301,7 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst)
/* our irq handler is shared */
return IRQ_NONE;
- iobase = info->p_dev->io.BasePort1;
+ iobase = info->p_dev->resource[0]->start;
spin_lock(&(info->lock));
@@ -461,7 +461,7 @@ static int dtl1_hci_ioctl(struct hci_dev *hdev, unsigned int cmd, unsigned long
static int dtl1_open(dtl1_info_t *info)
{
unsigned long flags;
- unsigned int iobase = info->p_dev->io.BasePort1;
+ unsigned int iobase = info->p_dev->resource[0]->start;
struct hci_dev *hdev;
spin_lock_init(&(info->lock));
@@ -508,7 +508,8 @@ static int dtl1_open(dtl1_info_t *info)
outb(UART_LCR_WLEN8, iobase + UART_LCR); /* Reset DLAB */
outb((UART_MCR_DTR | UART_MCR_RTS | UART_MCR_OUT2), iobase + UART_MCR);
- info->ri_latch = inb(info->p_dev->io.BasePort1 + UART_MSR) & UART_MSR_RI;
+ info->ri_latch = inb(info->p_dev->resource[0]->start + UART_MSR)
+ & UART_MSR_RI;
/* Turn on interrupts */
outb(UART_IER_RLSI | UART_IER_RDI | UART_IER_THRI, iobase + UART_IER);
@@ -533,7 +534,7 @@ static int dtl1_open(dtl1_info_t *info)
static int dtl1_close(dtl1_info_t *info)
{
unsigned long flags;
- unsigned int iobase = info->p_dev->io.BasePort1;
+ unsigned int iobase = info->p_dev->resource[0]->start;
struct hci_dev *hdev = info->hdev;
if (!hdev)
diff --git a/drivers/char/pcmcia/cm4000_cs.c b/drivers/char/pcmcia/cm4000_cs.c
index a8be2a7..18484ed 100644
--- a/drivers/char/pcmcia/cm4000_cs.c
+++ b/drivers/char/pcmcia/cm4000_cs.c
@@ -421,7 +421,7 @@ static struct card_fixup card_fixups[] = {
static void set_cardparameter(struct cm4000_dev *dev)
{
int i;
- unsigned int iobase = dev->p_dev->io.BasePort1;
+ unsigned int iobase = dev->p_dev->resource[0]->start;
u_int8_t stopbits = 0x02; /* ISO default */
DEBUGP(3, dev, "-> set_cardparameter\n");
@@ -454,7 +454,7 @@ static int set_protocol(struct cm4000_dev *dev, struct ptsreq *ptsreq)
unsigned short num_bytes_read;
unsigned char pts_reply[4];
ssize_t rc;
- unsigned int iobase = dev->p_dev->io.BasePort1;
+ unsigned int iobase = dev->p_dev->resource[0]->start;
rc = 0;
@@ -663,7 +663,7 @@ static void terminate_monitor(struct cm4000_dev *dev)
static void monitor_card(unsigned long p)
{
struct cm4000_dev *dev = (struct cm4000_dev *) p;
- unsigned int iobase = dev->p_dev->io.BasePort1;
+ unsigned int iobase = dev->p_dev->resource[0]->start;
unsigned short s;
struct ptsreq ptsreq;
int i, atrc;
@@ -924,7 +924,7 @@ static ssize_t cmm_read(struct file *filp, __user char *buf, size_t count,
loff_t *ppos)
{
struct cm4000_dev *dev = filp->private_data;
- unsigned int iobase = dev->p_dev->io.BasePort1;
+ unsigned int iobase = dev->p_dev->resource[0]->start;
ssize_t rc;
int i, j, k;
@@ -1047,7 +1047,7 @@ static ssize_t cmm_write(struct file *filp, const char __user *buf,
size_t count, loff_t *ppos)
{
struct cm4000_dev *dev = filp->private_data;
- unsigned int iobase = dev->p_dev->io.BasePort1;
+ unsigned int iobase = dev->p_dev->resource[0]->start;
unsigned short s;
unsigned char tmp;
unsigned char infolen;
@@ -1400,7 +1400,7 @@ static void stop_monitor(struct cm4000_dev *dev)
static long cmm_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct cm4000_dev *dev = filp->private_data;
- unsigned int iobase = dev->p_dev->io.BasePort1;
+ unsigned int iobase = dev->p_dev->resource[0]->start;
struct inode *inode = filp->f_path.dentry->d_inode;
struct pcmcia_device *link;
int size;
diff --git a/drivers/char/pcmcia/cm4040_cs.c b/drivers/char/pcmcia/cm4040_cs.c
index 44adae9..a6bbf19 100644
--- a/drivers/char/pcmcia/cm4040_cs.c
+++ b/drivers/char/pcmcia/cm4040_cs.c
@@ -109,7 +109,7 @@ static inline unsigned char xinb(unsigned short port)
static void cm4040_do_poll(unsigned long dummy)
{
struct reader_dev *dev = (struct reader_dev *) dummy;
- unsigned int obs = xinb(dev->p_dev->io.BasePort1
+ unsigned int obs = xinb(dev->p_dev->resource[0]->start
+ REG_OFFSET_BUFFER_STATUS);
if ((obs & BSR_BULK_IN_FULL)) {
@@ -140,7 +140,7 @@ static void cm4040_stop_poll(struct reader_dev *dev)
static int wait_for_bulk_out_ready(struct reader_dev *dev)
{
int i, rc;
- int iobase = dev->p_dev->io.BasePort1;
+ int iobase = dev->p_dev->resource[0]->start;
for (i = 0; i < POLL_LOOP_COUNT; i++) {
if ((xinb(iobase + REG_OFFSET_BUFFER_STATUS)
@@ -170,7 +170,7 @@ static int wait_for_bulk_out_ready(struct reader_dev *dev)
/* Write to Sync Control Register */
static int write_sync_reg(unsigned char val, struct reader_dev *dev)
{
- int iobase = dev->p_dev->io.BasePort1;
+ int iobase = dev->p_dev->resource[0]->start;
int rc;
rc = wait_for_bulk_out_ready(dev);
@@ -188,7 +188,7 @@ static int write_sync_reg(unsigned char val, struct reader_dev *dev)
static int wait_for_bulk_in_ready(struct reader_dev *dev)
{
int i, rc;
- int iobase = dev->p_dev->io.BasePort1;
+ int iobase = dev->p_dev->resource[0]->start;
for (i = 0; i < POLL_LOOP_COUNT; i++) {
if ((xinb(iobase + REG_OFFSET_BUFFER_STATUS)
@@ -218,7 +218,7 @@ static ssize_t cm4040_read(struct file *filp, char __user *buf,
size_t count, loff_t *ppos)
{
struct reader_dev *dev = filp->private_data;
- int iobase = dev->p_dev->io.BasePort1;
+ int iobase = dev->p_dev->resource[0]->start;
size_t bytes_to_read;
unsigned long i;
size_t min_bytes_to_read;
@@ -320,7 +320,7 @@ static ssize_t cm4040_write(struct file *filp, const char __user *buf,
size_t count, loff_t *ppos)
{
struct reader_dev *dev = filp->private_data;
- int iobase = dev->p_dev->io.BasePort1;
+ int iobase = dev->p_dev->resource[0]->start;
ssize_t rc;
int i;
unsigned int bytes_to_write;
@@ -567,8 +567,8 @@ static int reader_config(struct pcmcia_device *link, int devno)
dev = link->priv;
- DEBUGP(2, dev, "device " DEVICE_NAME "%d at 0x%.4x-0x%.4x\n", devno,
- link->io.BasePort1, link->io.BasePort1+link->io.NumPorts1);
+ DEBUGP(2, dev, "device " DEVICE_NAME "%d at %pR\n", devno,
+ link->resource[0]);
DEBUGP(2, dev, "<- reader_config (succ)\n");
return 0;
diff --git a/drivers/char/pcmcia/ipwireless/main.c b/drivers/char/pcmcia/ipwireless/main.c
index 63c32e3..9467994 100644
--- a/drivers/char/pcmcia/ipwireless/main.c
+++ b/drivers/char/pcmcia/ipwireless/main.c
@@ -100,7 +100,8 @@ static int ipwireless_probe(struct pcmcia_device *p_dev,
if (ret)
return ret;
- io_resource = request_region(p_dev->io.BasePort1, p_dev->io.NumPorts1,
+ io_resource = request_region(p_dev->resource[0]->start,
+ resource_size(p_dev->resource[0]),
IPWIRELESS_PCCARD_NAME);
if (cfg->mem.nwin == 0)
@@ -197,7 +198,7 @@ static int config_ipwireless(struct ipw_dev *ipw)
INIT_WORK(&ipw->work_reboot, signalled_reboot_work);
- ipwireless_init_hardware_v1(ipw->hardware, link->io.BasePort1,
+ ipwireless_init_hardware_v1(ipw->hardware, link->resource[0]->start,
ipw->attr_memory, ipw->common_memory,
ipw->is_v2_card, signalled_reboot_callback,
ipw);
@@ -209,10 +210,7 @@ static int config_ipwireless(struct ipw_dev *ipw)
printk(KERN_INFO IPWIRELESS_PCCARD_NAME ": Card type %s\n",
ipw->is_v2_card ? "V2/V3" : "V1");
printk(KERN_INFO IPWIRELESS_PCCARD_NAME
- ": I/O ports 0x%04x-0x%04x, irq %d\n",
- (unsigned int) link->io.BasePort1,
- (unsigned int) (link->io.BasePort1 +
- link->io.NumPorts1 - 1),
+ ": I/O ports %pR, irq %d\n", link->resource[0],
(unsigned int) link->irq);
if (ipw->attr_memory && ipw->common_memory)
printk(KERN_INFO IPWIRELESS_PCCARD_NAME
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
index 522992e..8ded9b0 100644
--- a/drivers/char/pcmcia/synclink_cs.c
+++ b/drivers/char/pcmcia/synclink_cs.c
@@ -609,16 +609,15 @@ static int mgslpc_config(struct pcmcia_device *link)
if (ret)
goto failed;
- info->io_base = link->io.BasePort1;
+ info->io_base = link->resource[0]->start;
info->irq_level = link->irq;
dev_info(&link->dev, "index 0x%02x:",
link->conf.ConfigIndex);
if (link->conf.Attributes & CONF_ENABLE_IRQ)
printk(", irq %d", link->irq);
- if (link->io.NumPorts1)
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1+link->io.NumPorts1-1);
+ if (link->resource[0])
+ printk(", io %pR", link->resource[0]);
printk("\n");
return 0;
diff --git a/drivers/ide/ide-cs.c b/drivers/ide/ide-cs.c
index 27dbab8..6be0e5f 100644
--- a/drivers/ide/ide-cs.c
+++ b/drivers/ide/ide-cs.c
@@ -239,13 +239,13 @@ static int pcmcia_check_one_config(struct pcmcia_device *pdev,
pdev->io.NumPorts2 = (stk->is_kme) ? 2 : 1;
if (pcmcia_request_io(pdev, &pdev->io) != 0)
return -ENODEV;
- stk->ctl_base = pdev->io.BasePort2;
+ stk->ctl_base = pdev->resource[1]->start;
} else if ((io->nwin == 1) && (io->win[0].len >= 16)) {
pdev->io.NumPorts1 = io->win[0].len;
pdev->io.NumPorts2 = 0;
if (pcmcia_request_io(pdev, &pdev->io) != 0)
return -ENODEV;
- stk->ctl_base = pdev->io.BasePort1 + 0x0e;
+ stk->ctl_base = pdev->resource[0]->start + 0x0e;
} else
return -ENODEV;
/* If we've got this far, we're done */
@@ -279,7 +279,7 @@ static int ide_config(struct pcmcia_device *link)
if (pcmcia_loop_config(link, pcmcia_check_one_config, stk))
goto failed; /* No suitable config found */
}
- io_base = link->io.BasePort1;
+ io_base = link->resource[0]->start;
ctl_base = stk->ctl_base;
if (!link->irq)
@@ -296,7 +296,7 @@ static int ide_config(struct pcmcia_device *link)
outb(0x81, ctl_base+1);
host = idecs_register(io_base, ctl_base, link->irq, link);
- if (host == NULL && link->io.NumPorts1 == 0x20) {
+ if (host == NULL && resource_size(link->resource[0]) == 0x20) {
outb(0x02, ctl_base + 0x10);
host = idecs_register(io_base + 0x10, ctl_base + 0x10,
link->irq, link);
diff --git a/drivers/isdn/hardware/avm/avm_cs.c b/drivers/isdn/hardware/avm/avm_cs.c
index e804a01..7c8c51f 100644
--- a/drivers/isdn/hardware/avm/avm_cs.c
+++ b/drivers/isdn/hardware/avm/avm_cs.c
@@ -191,9 +191,10 @@ static int avmcs_config(struct pcmcia_device *link)
default:
case AVM_CARDTYPE_B1: addcard = b1pcmcia_addcard_b1; break;
}
- if ((i = (*addcard)(link->io.BasePort1, link->irq)) < 0) {
- dev_err(&link->dev, "avm_cs: failed to add AVM-Controller at i/o %#x, irq %d\n",
- link->io.BasePort1, link->irq);
+ if ((i = (*addcard)(link->resource[0]->start, link->irq)) < 0) {
+ dev_err(&link->dev,
+ "avm_cs: failed to add AVM-Controller at i/o %#x, irq %d\n",
+ (unsigned int) link->resource[0]->start, link->irq);
avmcs_release(link);
return -ENODEV;
}
@@ -211,7 +212,7 @@ static int avmcs_config(struct pcmcia_device *link)
static void avmcs_release(struct pcmcia_device *link)
{
- b1pcmcia_delcard(link->io.BasePort1, link->irq);
+ b1pcmcia_delcard(link->resource[0]->start, link->irq);
pcmcia_disable_device(link);
} /* avmcs_release */
diff --git a/drivers/isdn/hisax/avma1_cs.c b/drivers/isdn/hisax/avma1_cs.c
index 49e141e..8889963 100644
--- a/drivers/isdn/hisax/avma1_cs.c
+++ b/drivers/isdn/hisax/avma1_cs.c
@@ -180,16 +180,18 @@ static int __devinit avma1cs_config(struct pcmcia_device *link)
}
printk(KERN_NOTICE "avma1_cs: checking at i/o %#x, irq %d\n",
- link->io.BasePort1, link->irq);
+ (unsigned int) link->resource[0]->start, link->irq);
icard.para[0] = link->irq;
- icard.para[1] = link->io.BasePort1;
+ icard.para[1] = link->resource[0]->start;
icard.protocol = isdnprot;
icard.typ = ISDN_CTYPE_A1_PCMCIA;
i = hisax_init_pcmcia(link, &busy, &icard);
if (i < 0) {
- printk(KERN_ERR "avma1_cs: failed to initialize AVM A1 PCMCIA %d at i/o %#x\n", i, link->io.BasePort1);
+ printk(KERN_ERR "avma1_cs: failed to initialize AVM A1 "
+ "PCMCIA %d at i/o %#x\n", i,
+ (unsigned int) link->resource[0]->start);
avma1cs_release(link);
return -ENODEV;
}
diff --git a/drivers/isdn/hisax/elsa_cs.c b/drivers/isdn/hisax/elsa_cs.c
index 425deea..c10bfd3 100644
--- a/drivers/isdn/hisax/elsa_cs.c
+++ b/drivers/isdn/hisax/elsa_cs.c
@@ -214,23 +214,21 @@ static int __devinit elsa_cs_config(struct pcmcia_device *link)
link->conf.ConfigIndex);
if (link->conf.Attributes & CONF_ENABLE_IRQ)
printk(", irq %d", link->irq);
- if (link->io.NumPorts1)
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1+link->io.NumPorts1-1);
- if (link->io.NumPorts2)
- printk(" & 0x%04x-0x%04x", link->io.BasePort2,
- link->io.BasePort2+link->io.NumPorts2-1);
+ if (link->resource[0])
+ printk(" & %pR", link->resource[0]);
+ if (link->resource[1])
+ printk(" & %pR", link->resource[1]);
printk("\n");
icard.para[0] = link->irq;
- icard.para[1] = link->io.BasePort1;
+ icard.para[1] = link->resource[0]->start;
icard.protocol = protocol;
icard.typ = ISDN_CTYPE_ELSA_PCMCIA;
i = hisax_init_pcmcia(link, &(((local_info_t*)link->priv)->busy), &icard);
if (i < 0) {
- printk(KERN_ERR "elsa_cs: failed to initialize Elsa PCMCIA %d at i/o %#x\n",
- i, link->io.BasePort1);
+ printk(KERN_ERR "elsa_cs: failed to initialize Elsa "
+ "PCMCIA %d with %pR\n", i, link->resource[0]);
elsa_cs_release(link);
} else
((local_info_t*)link->priv)->cardnr = i;
diff --git a/drivers/isdn/hisax/sedlbauer_cs.c b/drivers/isdn/hisax/sedlbauer_cs.c
index 5dbad96..cecb35a 100644
--- a/drivers/isdn/hisax/sedlbauer_cs.c
+++ b/drivers/isdn/hisax/sedlbauer_cs.c
@@ -296,27 +296,25 @@ static int __devinit sedlbauer_config(struct pcmcia_device *link)
printk(", Vpp %d.%d", link->conf.Vpp/10, link->conf.Vpp%10);
if (link->conf.Attributes & CONF_ENABLE_IRQ)
printk(", irq %d", link->irq);
- if (link->io.NumPorts1)
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1+link->io.NumPorts1-1);
- if (link->io.NumPorts2)
- printk(" & 0x%04x-0x%04x", link->io.BasePort2,
- link->io.BasePort2+link->io.NumPorts2-1);
+ if (link->resource[0])
+ printk(" & %pR", link->resource[0]);
+ if (link->resource[1])
+ printk(" & %pR", link->resource[1]);
if (link->win)
printk(", mem 0x%06lx-0x%06lx", req->Base,
req->Base+req->Size-1);
printk("\n");
icard.para[0] = link->irq;
- icard.para[1] = link->io.BasePort1;
+ icard.para[1] = link->resource[0]->start;
icard.protocol = protocol;
icard.typ = ISDN_CTYPE_SEDLBAUER_PCMCIA;
ret = hisax_init_pcmcia(link,
&(((local_info_t *)link->priv)->stop), &icard);
if (ret < 0) {
- printk(KERN_ERR "sedlbauer_cs: failed to initialize SEDLBAUER PCMCIA %d at i/o %#x\n",
- ret, link->io.BasePort1);
+ printk(KERN_ERR "sedlbauer_cs: failed to initialize SEDLBAUER PCMCIA %d with %pR\n",
+ ret, link->resource[0]);
sedlbauer_release(link);
return -ENODEV;
} else
diff --git a/drivers/isdn/hisax/teles_cs.c b/drivers/isdn/hisax/teles_cs.c
index d3fb1b7..3787fc7 100644
--- a/drivers/isdn/hisax/teles_cs.c
+++ b/drivers/isdn/hisax/teles_cs.c
@@ -194,23 +194,21 @@ static int __devinit teles_cs_config(struct pcmcia_device *link)
link->conf.ConfigIndex);
if (link->conf.Attributes & CONF_ENABLE_IRQ)
printk(", irq %d", link->irq);
- if (link->io.NumPorts1)
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1+link->io.NumPorts1-1);
- if (link->io.NumPorts2)
- printk(" & 0x%04x-0x%04x", link->io.BasePort2,
- link->io.BasePort2+link->io.NumPorts2-1);
+ if (link->resource[0])
+ printk(" & %pR", link->resource[0]);
+ if (link->resource[1])
+ printk(" & %pR", link->resource[1]);
printk("\n");
icard.para[0] = link->irq;
- icard.para[1] = link->io.BasePort1;
+ icard.para[1] = link->resource[0]->start;
icard.protocol = protocol;
icard.typ = ISDN_CTYPE_TELESPCMCIA;
i = hisax_init_pcmcia(link, &(((local_info_t*)link->priv)->busy), &icard);
if (i < 0) {
printk(KERN_ERR "teles_cs: failed to initialize Teles PCMCIA %d at i/o %#x\n",
- i, link->io.BasePort1);
+ i, (unsigned int) link->resource[0]->start);
teles_cs_release(link);
return -ENODEV;
}
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index e249b89..b5ea9b8 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -356,7 +356,7 @@ static int tc574_config(struct pcmcia_device *link)
goto failed;
dev->irq = link->irq;
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
ioaddr = dev->base_addr;
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index b0772df..122ef4a 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -298,7 +298,7 @@ static int tc589_config(struct pcmcia_device *link)
goto failed;
dev->irq = link->irq;
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
ioaddr = dev->base_addr;
EL3WINDOW(0);
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index ee0a6d0..c52fdf3 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -332,7 +332,7 @@ static int axnet_config(struct pcmcia_device *link)
if (!link->irq)
goto failed;
- if (link->io.NumPorts2 == 8) {
+ if (resource_size(link->resource[1]) == 8) {
link->conf.Attributes |= CONF_ENABLE_SPKR;
link->conf.Status = CCSR_AUDIO_ENA;
}
@@ -342,7 +342,7 @@ static int axnet_config(struct pcmcia_device *link)
goto failed;
dev->irq = link->irq;
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
if (!get_prom(link)) {
printk(KERN_NOTICE "axnet_cs: this is not an AX88190 card!\n");
diff --git a/drivers/net/pcmcia/com20020_cs.c b/drivers/net/pcmcia/com20020_cs.c
index 99957af..3b53818 100644
--- a/drivers/net/pcmcia/com20020_cs.c
+++ b/drivers/net/pcmcia/com20020_cs.c
@@ -266,7 +266,7 @@ static int com20020_config(struct pcmcia_device *link)
goto failed;
}
- ioaddr = dev->base_addr = link->io.BasePort1;
+ ioaddr = dev->base_addr = link->resource[0]->start;
dev_dbg(&link->dev, "got ioaddr %Xh\n", ioaddr);
dev_dbg(&link->dev, "request IRQ %d\n",
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index 95a991b..bba6369 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -315,7 +315,7 @@ static int ungermann_try_io_port(struct pcmcia_device *link)
if (ret == 0) {
/* calculate ConfigIndex value */
link->conf.ConfigIndex =
- ((link->io.BasePort1 & 0x0f0) >> 3) | 0x22;
+ ((link->resource[0]->start & 0x0f0) >> 3) | 0x22;
return ret;
}
}
@@ -436,9 +436,9 @@ static int fmvj18x_config(struct pcmcia_device *link)
goto failed;
dev->irq = link->irq;
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
- if (link->io.BasePort2 != 0) {
+ if (resource_size(link->resource[1]) != 0) {
ret = fmvj18x_setup_mfc(link);
if (ret != 0) goto failed;
}
diff --git a/drivers/net/pcmcia/ibmtr_cs.c b/drivers/net/pcmcia/ibmtr_cs.c
index c36dcd1..e99abaa 100644
--- a/drivers/net/pcmcia/ibmtr_cs.c
+++ b/drivers/net/pcmcia/ibmtr_cs.c
@@ -231,7 +231,7 @@ static int __devinit ibmtr_config(struct pcmcia_device *link)
if (ret)
goto failed;
}
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
ret = pcmcia_request_exclusive_irq(link, ibmtr_interrupt);
if (ret)
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index c0d85af..9980cbb 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -655,7 +655,7 @@ static int nmclan_config(struct pcmcia_device *link)
goto failed;
dev->irq = link->irq;
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
ioaddr = dev->base_addr;
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index db6dbda..c9cd237 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -554,7 +554,7 @@ static int pcnet_config(struct pcmcia_device *link)
if (!link->irq)
goto failed;
- if (link->io.NumPorts2 == 8) {
+ if (resource_size(link->resource[1]) == 8) {
link->conf.Attributes |= CONF_ENABLE_SPKR;
link->conf.Status = CCSR_AUDIO_ENA;
}
@@ -566,7 +566,7 @@ static int pcnet_config(struct pcmcia_device *link)
if (ret)
goto failed;
dev->irq = link->irq;
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
if (info->flags & HAS_MISC_REG) {
if ((if_port == 1) || (if_port == 2))
dev->if_port = if_port;
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index 88f503a..1b0b323 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -457,7 +457,7 @@ static int mhz_mfc_config(struct pcmcia_device *link)
if (pcmcia_loop_config(link, mhz_mfc_config_check, NULL))
return -ENODEV;
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
/* Allocate a memory window, for accessing the ISR */
req.Attributes = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE;
@@ -545,7 +545,7 @@ static void mot_config(struct pcmcia_device *link)
struct net_device *dev = link->priv;
struct smc_private *smc = netdev_priv(dev);
unsigned int ioaddr = dev->base_addr;
- unsigned int iouart = link->io.BasePort2;
+ unsigned int iouart = link->resource[1]->start;
/* Set UART base address and force map with COR bit 1 */
writeb(iouart & 0xff, smc->base + MOT_UART + CISREG_IOBASE_0);
@@ -614,7 +614,7 @@ static int smc_config(struct pcmcia_device *link)
link->io.NumPorts1 = 16;
i = pcmcia_loop_config(link, smc_configcheck, NULL);
if (!i)
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
return i;
}
@@ -666,7 +666,7 @@ static int osi_config(struct pcmcia_device *link)
link->io.NumPorts2 = 0;
i = pcmcia_request_io(link, &link->io);
}
- dev->base_addr = link->io.BasePort1 + 0x10;
+ dev->base_addr = link->resource[0]->start + 0x10;
return i;
}
@@ -683,7 +683,7 @@ static int osi_load_firmware(struct pcmcia_device *link)
/* Download the Seven of Diamonds firmware */
for (i = 0; i < fw->size; i++) {
- outb(fw->data[i], link->io.BasePort1 + 2);
+ outb(fw->data[i], link->resource[0]->start + 2);
udelay(50);
}
release_firmware(fw);
@@ -725,12 +725,12 @@ static int osi_setup(struct pcmcia_device *link, u_short manfid, u_short cardid)
return rc;
} else if (manfid == MANFID_OSITECH) {
/* Make sure both functions are powered up */
- set_bits(0x300, link->io.BasePort1 + OSITECH_AUI_PWR);
+ set_bits(0x300, link->resource[0]->start + OSITECH_AUI_PWR);
/* Now, turn on the interrupt for both card functions */
- set_bits(0x300, link->io.BasePort1 + OSITECH_RESET_ISR);
+ set_bits(0x300, link->resource[0]->start + OSITECH_RESET_ISR);
dev_dbg(&link->dev, "AUI/PWR: %4.4x RESET/ISR: %4.4x\n",
- inw(link->io.BasePort1 + OSITECH_AUI_PWR),
- inw(link->io.BasePort1 + OSITECH_RESET_ISR));
+ inw(link->resource[0]->start + OSITECH_AUI_PWR),
+ inw(link->resource[0]->start + OSITECH_RESET_ISR));
}
return 0;
}
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index e3a85ce..034920b 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -877,13 +877,13 @@ xirc2ps_config(struct pcmcia_device * link)
* the base address of the ethernet port (BasePort1) is written
* to the BAR registers of the modem.
*/
- err = pcmcia_write_config_byte(link, CISREG_IOBASE_0,
- link->io.BasePort2 & 0xff);
+ err = pcmcia_write_config_byte(link, CISREG_IOBASE_0, (u8)
+ link->resource[1]->start & 0xff);
if (err)
goto config_error;
err = pcmcia_write_config_byte(link, CISREG_IOBASE_1,
- (link->io.BasePort2 >> 8) & 0xff);
+ (link->resource[1]->start >> 8) & 0xff);
if (err)
goto config_error;
@@ -907,7 +907,7 @@ xirc2ps_config(struct pcmcia_device * link)
* part.
*/
writeb(0x47, local->dingo_ccr + CISREG_COR);
- ioaddr = link->io.BasePort1;
+ ioaddr = link->resource[0]->start;
writeb(ioaddr & 0xff , local->dingo_ccr + CISREG_IOBASE_0);
writeb((ioaddr >> 8)&0xff , local->dingo_ccr + CISREG_IOBASE_1);
@@ -954,7 +954,7 @@ xirc2ps_config(struct pcmcia_device * link)
/* we can now register the device with the net subsystem */
dev->irq = link->irq;
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
if (local->dingo)
do_reset(dev, 1); /* a kludge to make the cem56 work */
diff --git a/drivers/net/wireless/airo_cs.c b/drivers/net/wireless/airo_cs.c
index 9389ba0..b7e7f50 100644
--- a/drivers/net/wireless/airo_cs.c
+++ b/drivers/net/wireless/airo_cs.c
@@ -271,7 +271,7 @@ static int airo_config(struct pcmcia_device *link)
goto failed;
((local_info_t *)link->priv)->eth_dev =
init_airo_card(link->irq,
- link->io.BasePort1, 1, &link->dev);
+ link->resource[0]->start, 1, &link->dev);
if (!((local_info_t *)link->priv)->eth_dev)
goto failed;
@@ -281,12 +281,10 @@ static int airo_config(struct pcmcia_device *link)
if (link->conf.Vpp)
printk(", Vpp %d.%d", link->conf.Vpp/10, link->conf.Vpp%10);
printk(", irq %d", link->irq);
- if (link->io.NumPorts1)
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1+link->io.NumPorts1-1);
- if (link->io.NumPorts2)
- printk(" & 0x%04x-0x%04x", link->io.BasePort2,
- link->io.BasePort2+link->io.NumPorts2-1);
+ if (link->resource[0])
+ printk(" & %pR", link->resource[0]);
+ if (link->resource[1])
+ printk(" & %pR", link->resource[1]);
if (link->win)
printk(", mem 0x%06lx-0x%06lx", req->Base,
req->Base+req->Size-1);
diff --git a/drivers/net/wireless/atmel_cs.c b/drivers/net/wireless/atmel_cs.c
index 91ee74a..65b3aed 100644
--- a/drivers/net/wireless/atmel_cs.c
+++ b/drivers/net/wireless/atmel_cs.c
@@ -253,7 +253,7 @@ static int atmel_config(struct pcmcia_device *link)
((local_info_t*)link->priv)->eth_dev =
init_atmel_card(link->irq,
- link->io.BasePort1,
+ link->resource[0]->start,
did ? did->driver_info : ATMEL_FW_TYPE_NONE,
&link->dev,
card_present,
diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
index 6912936..4e13ced 100644
--- a/drivers/net/wireless/hostap/hostap_cs.c
+++ b/drivers/net/wireless/hostap/hostap_cs.c
@@ -227,7 +227,7 @@ static void sandisk_set_iobase(local_info_t *local)
struct hostap_cs_priv *hw_priv = local->hw_priv;
res = pcmcia_write_config_byte(hw_priv->link, 0x10,
- hw_priv->link->io.BasePort1 & 0x00ff);
+ hw_priv->link->resource[0]->start & 0x00ff);
if (res != 0) {
printk(KERN_DEBUG "Prism3 SanDisk - failed to set I/O base 0 -"
" res=%d\n", res);
@@ -235,7 +235,7 @@ static void sandisk_set_iobase(local_info_t *local)
udelay(10);
res = pcmcia_write_config_byte(hw_priv->link, 0x12,
- (hw_priv->link->io.BasePort1 >> 8) & 0x00ff);
+ (hw_priv->link->resource[0]->start >> 8) & 0x00ff);
if (res != 0) {
printk(KERN_DEBUG "Prism3 SanDisk - failed to set I/O base 1 -"
" res=%d\n", res);
@@ -265,7 +265,7 @@ static int sandisk_enable_wireless(struct net_device *dev)
local_info_t *local = iface->local;
struct hostap_cs_priv *hw_priv = local->hw_priv;
- if (hw_priv->link->io.NumPorts1 < 0x42) {
+ if (resource_size(hw_priv->link->resource[0]) < 0x42) {
/* Not enough ports to be SanDisk multi-function card */
ret = -ENODEV;
goto done;
@@ -604,7 +604,7 @@ static int prism2_config(struct pcmcia_device *link)
goto failed_unlock;
dev->irq = link->irq;
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
spin_unlock_irqrestore(&local->irq_init_lock, flags);
@@ -616,12 +616,10 @@ static int prism2_config(struct pcmcia_device *link)
link->conf.Vpp % 10);
if (link->conf.Attributes & CONF_ENABLE_IRQ)
printk(", irq %d", link->irq);
- if (link->io.NumPorts1)
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1+link->io.NumPorts1-1);
- if (link->io.NumPorts2)
- printk(" & 0x%04x-0x%04x", link->io.BasePort2,
- link->io.BasePort2+link->io.NumPorts2-1);
+ if (link->resource[0])
+ printk(" & %pR", link->resource[0]);
+ if (link->resource[1])
+ printk(" & %pR", link->resource[1]);
printk("\n");
local->shutdown = 0;
diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
index 1d3a7e0..be4c475 100644
--- a/drivers/net/wireless/libertas/if_cs.c
+++ b/drivers/net/wireless/libertas/if_cs.c
@@ -853,7 +853,8 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
goto out1;
/* Initialize io access */
- card->iobase = ioport_map(p_dev->io.BasePort1, p_dev->io.NumPorts1);
+ card->iobase = ioport_map(p_dev->resource[0]->start,
+ resource_size(p_dev->resource[0]));
if (!card->iobase) {
lbs_pr_err("error in ioport_map\n");
ret = -EIO;
@@ -872,9 +873,7 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
}
/* Finally, report what we've done */
- lbs_deb_cs("irq %d, io 0x%04x-0x%04x\n",
- p_dev->irq, p_dev->io.BasePort1,
- p_dev->io.BasePort1 + p_dev->io.NumPorts1 - 1);
+ lbs_deb_cs("irq %d, io %pR", p_dev->irq, p_dev->resource[0]);
/*
* Most of the libertas cards can do unaligned register access, but some
diff --git a/drivers/net/wireless/orinoco/orinoco_cs.c b/drivers/net/wireless/orinoco/orinoco_cs.c
index 41ca4f1..6d514b5 100644
--- a/drivers/net/wireless/orinoco/orinoco_cs.c
+++ b/drivers/net/wireless/orinoco/orinoco_cs.c
@@ -257,7 +257,8 @@ orinoco_cs_config(struct pcmcia_device *link)
/* We initialize the hermes structure before completing PCMCIA
* configuration just in case the interrupt handler gets
* called. */
- mem = ioport_map(link->io.BasePort1, link->io.NumPorts1);
+ mem = ioport_map(link->resource[0]->start,
+ resource_size(link->resource[0]));
if (!mem)
goto failed;
@@ -279,7 +280,7 @@ orinoco_cs_config(struct pcmcia_device *link)
}
/* Register an interface with the stack */
- if (orinoco_if_add(priv, link->io.BasePort1,
+ if (orinoco_if_add(priv, link->resource[0]->start,
link->irq, NULL) != 0) {
printk(KERN_ERR PFX "orinoco_if_add() failed\n");
goto failed;
diff --git a/drivers/net/wireless/orinoco/spectrum_cs.c b/drivers/net/wireless/orinoco/spectrum_cs.c
index 39399cd..4f8f55e 100644
--- a/drivers/net/wireless/orinoco/spectrum_cs.c
+++ b/drivers/net/wireless/orinoco/spectrum_cs.c
@@ -319,7 +319,8 @@ spectrum_cs_config(struct pcmcia_device *link)
/* We initialize the hermes structure before completing PCMCIA
* configuration just in case the interrupt handler gets
* called. */
- mem = ioport_map(link->io.BasePort1, link->io.NumPorts1);
+ mem = ioport_map(link->resource[0]->start,
+ resource_size(link->resource[0]));
if (!mem)
goto failed;
@@ -346,7 +347,7 @@ spectrum_cs_config(struct pcmcia_device *link)
}
/* Register an interface with the stack */
- if (orinoco_if_add(priv, link->io.BasePort1,
+ if (orinoco_if_add(priv, link->resource[0]->start,
link->irq, NULL) != 0) {
printk(KERN_ERR PFX "orinoco_if_add() failed\n");
goto failed;
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index 35f431b..a32f220 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -1960,7 +1960,7 @@ static int wl3501_config(struct pcmcia_device *link)
goto failed;
dev->irq = link->irq;
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
SET_NETDEV_DEV(dev, &link->dev);
if (register_netdev(dev)) {
printk(KERN_NOTICE "wl3501_cs: register_netdev() failed\n");
diff --git a/drivers/parport/parport_cs.c b/drivers/parport/parport_cs.c
index ee56fd6..fc1639c 100644
--- a/drivers/parport/parport_cs.c
+++ b/drivers/parport/parport_cs.c
@@ -177,12 +177,14 @@ static int parport_config(struct pcmcia_device *link)
if (ret)
goto failed;
- p = parport_pc_probe_port(link->io.BasePort1, link->io.BasePort2,
+ p = parport_pc_probe_port(link->resource[0]->start,
+ link->resource[1]->start,
link->irq, PARPORT_DMA_NONE,
&link->dev, IRQF_SHARED);
if (p == NULL) {
printk(KERN_NOTICE "parport_cs: parport_pc_probe_port() at "
- "0x%3x, irq %u failed\n", link->io.BasePort1,
+ "0x%3x, irq %u failed\n",
+ (unsigned int) link->resource[0]->start,
link->irq);
goto failed;
}
diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c
index b07b53e..3e040f5 100644
--- a/drivers/scsi/pcmcia/aha152x_stub.c
+++ b/drivers/scsi/pcmcia/aha152x_stub.c
@@ -167,7 +167,7 @@ static int aha152x_config_cs(struct pcmcia_device *link)
/* Set configuration options for the aha152x driver */
memset(&s, 0, sizeof(s));
s.conf = "PCMCIA setup";
- s.io_port = link->io.BasePort1;
+ s.io_port = link->resource[0]->start;
s.irq = link->irq;
s.scsiid = host_id;
s.reconnect = reconnect;
diff --git a/drivers/scsi/pcmcia/fdomain_stub.c b/drivers/scsi/pcmcia/fdomain_stub.c
index ee04897..49a9a0a 100644
--- a/drivers/scsi/pcmcia/fdomain_stub.c
+++ b/drivers/scsi/pcmcia/fdomain_stub.c
@@ -137,10 +137,10 @@ static int fdomain_config(struct pcmcia_device *link)
goto failed;
/* A bad hack... */
- release_region(link->io.BasePort1, link->io.NumPorts1);
+ release_region(link->resource[0]->start, resource_size(link->resource[0]));
/* Set configuration options for the fdomain driver */
- sprintf(str, "%d,%d", link->io.BasePort1, link->irq);
+ sprintf(str, "%d,%d", (unsigned int) link->resource[0]->start, link->irq);
fdomain_setup(str);
host = __fdomain_16x0_detect(&fdomain_driver_template);
diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c
index d414207..d929891 100644
--- a/drivers/scsi/pcmcia/nsp_cs.c
+++ b/drivers/scsi/pcmcia/nsp_cs.c
@@ -1719,17 +1719,19 @@ static int nsp_cs_config(struct pcmcia_device *link)
goto cs_failed;
if (free_ports) {
- if (link->io.BasePort1) {
- release_region(link->io.BasePort1, link->io.NumPorts1);
+ if (link->resource[0]) {
+ release_region(link->resource[0]->start,
+ resource_size(link->resource[0]));
}
- if (link->io.BasePort2) {
- release_region(link->io.BasePort2, link->io.NumPorts2);
+ if (link->resource[1]) {
+ release_region(link->resource[1]->start,
+ resource_size(link->resource[1]));
}
}
/* Set port and IRQ */
- data->BaseAddress = link->io.BasePort1;
- data->NumAddress = link->io.NumPorts1;
+ data->BaseAddress = link->resource[0]->start;
+ data->NumAddress = resource_size(link->resource[0]);
data->IrqNumber = link->irq;
nsp_dbg(NSP_DEBUG_INIT, "I/O[0x%x+0x%x] IRQ %d",
@@ -1764,13 +1766,10 @@ static int nsp_cs_config(struct pcmcia_device *link)
if (link->conf.Attributes & CONF_ENABLE_IRQ) {
printk(", irq %d", link->irq);
}
- if (link->io.NumPorts1) {
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1+link->io.NumPorts1-1);
- }
- if (link->io.NumPorts2)
- printk(" & 0x%04x-0x%04x", link->io.BasePort2,
- link->io.BasePort2+link->io.NumPorts2-1);
+ if (link->resource[0])
+ printk(", io %pR", link->resource[0]);
+ if (link->resource[1])
+ printk(" & %pR", link->resource[1]);
if (link->win)
printk(", mem 0x%06lx-0x%06lx", cfg_mem->req.Base,
cfg_mem->req.Base+cfg_mem->req.Size-1);
diff --git a/drivers/scsi/pcmcia/qlogic_stub.c b/drivers/scsi/pcmcia/qlogic_stub.c
index c1cf7f4..4e2b83f 100644
--- a/drivers/scsi/pcmcia/qlogic_stub.c
+++ b/drivers/scsi/pcmcia/qlogic_stub.c
@@ -215,18 +215,18 @@ static int qlogic_config(struct pcmcia_device * link)
if ((info->manf_id == MANFID_MACNICA) || (info->manf_id == MANFID_PIONEER) || (info->manf_id == 0x0098)) {
/* set ATAcmd */
- outb(0xb4, link->io.BasePort1 + 0xd);
- outb(0x24, link->io.BasePort1 + 0x9);
- outb(0x04, link->io.BasePort1 + 0xd);
+ outb(0xb4, link->resource[0]->start + 0xd);
+ outb(0x24, link->resource[0]->start + 0x9);
+ outb(0x04, link->resource[0]->start + 0xd);
}
/* The KXL-810AN has a bigger IO port window */
- if (link->io.NumPorts1 == 32)
+ if (resource_size(link->resource[0]) == 32)
host = qlogic_detect(&qlogicfas_driver_template, link,
- link->io.BasePort1 + 16, link->irq);
+ link->resource[0]->start + 16, link->irq);
else
host = qlogic_detect(&qlogicfas_driver_template, link,
- link->io.BasePort1, link->irq);
+ link->resource[0]->start, link->irq);
if (!host) {
printk(KERN_INFO "%s: no SCSI devices found\n", qlogic_name);
@@ -268,9 +268,9 @@ static int qlogic_resume(struct pcmcia_device *link)
if ((info->manf_id == MANFID_MACNICA) ||
(info->manf_id == MANFID_PIONEER) ||
(info->manf_id == 0x0098)) {
- outb(0x80, link->io.BasePort1 + 0xd);
- outb(0x24, link->io.BasePort1 + 0x9);
- outb(0x04, link->io.BasePort1 + 0xd);
+ outb(0x80, link->resource[0]->start + 0xd);
+ outb(0x24, link->resource[0]->start + 0x9);
+ outb(0x04, link->resource[0]->start + 0xd);
}
/* Ugggglllyyyy!!! */
qlogicfas408_bus_reset(NULL);
diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c
index bd79e45..d99c0cb 100644
--- a/drivers/scsi/pcmcia/sym53c500_cs.c
+++ b/drivers/scsi/pcmcia/sym53c500_cs.c
@@ -733,9 +733,9 @@ SYM53C500_config(struct pcmcia_device *link)
(info->manf_id == MANFID_PIONEER) ||
(info->manf_id == 0x0098)) {
/* set ATAcmd */
- outb(0xb4, link->io.BasePort1 + 0xd);
- outb(0x24, link->io.BasePort1 + 0x9);
- outb(0x04, link->io.BasePort1 + 0xd);
+ outb(0xb4, link->resource[0]->start + 0xd);
+ outb(0x24, link->resource[0]->start + 0x9);
+ outb(0x04, link->resource[0]->start + 0xd);
}
/*
@@ -748,7 +748,7 @@ SYM53C500_config(struct pcmcia_device *link)
* 0x130, 0x230, 0x280, 0x290,
* 0x320, 0x330, 0x340, 0x350
*/
- port_base = link->io.BasePort1;
+ port_base = link->resource[0]->start;
irq_level = link->irq;
DEB(printk("SYM53C500: port_base=0x%x, irq=%d, fast_pio=%d\n",
@@ -821,15 +821,15 @@ static int sym53c500_resume(struct pcmcia_device *link)
if ((info->manf_id == MANFID_MACNICA) ||
(info->manf_id == MANFID_PIONEER) ||
(info->manf_id == 0x0098)) {
- outb(0x80, link->io.BasePort1 + 0xd);
- outb(0x24, link->io.BasePort1 + 0x9);
- outb(0x04, link->io.BasePort1 + 0xd);
+ outb(0x80, link->resource[0]->start + 0xd);
+ outb(0x24, link->resource[0]->start + 0x9);
+ outb(0x04, link->resource[0]->start + 0xd);
}
/*
* If things don't work after a "resume",
* this is a good place to start looking.
*/
- SYM53C500_int_host_reset(link->io.BasePort1);
+ SYM53C500_int_host_reset(link->resource[0]->start);
return 0;
}
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
index 2be8b10..fe7adcd 100644
--- a/drivers/serial/serial_cs.c
+++ b/drivers/serial/serial_cs.c
@@ -463,13 +463,13 @@ static int simple_config(struct pcmcia_device *link)
/* If the card is already configured, look up the port and irq */
if (link->function_config) {
unsigned int port = 0;
- if ((link->io.BasePort2 != 0) &&
- (link->io.NumPorts2 == 8)) {
- port = link->io.BasePort2;
+ if ((link->resource[1]->end != 0) &&
+ (resource_size(link->resource[1]) == 8)) {
+ port = link->resource[1]->end;
info->slave = 1;
} else if ((info->manfid == MANFID_OSITECH) &&
- (link->io.NumPorts1 == 0x40)) {
- port = link->io.BasePort1 + 0x28;
+ (resource_size(link->resource[0]) == 0x40)) {
+ port = link->resource[0]->start + 0x28;
info->slave = 1;
}
if (info->slave) {
@@ -507,7 +507,7 @@ found_port:
i = pcmcia_request_configuration(link, &link->conf);
if (i != 0)
return -1;
- return setup_serial(link, info, link->io.BasePort1, link->irq);
+ return setup_serial(link, info, link->resource[0]->start, link->irq);
}
static int multi_config_check(struct pcmcia_device *p_dev,
@@ -524,7 +524,7 @@ static int multi_config_check(struct pcmcia_device *p_dev,
p_dev->io.BasePort1 = cf->io.win[0].base;
p_dev->io.IOAddrLines = cf->io.flags & CISTPL_IO_LINES_MASK;
if (!pcmcia_request_io(p_dev, &p_dev->io)) {
- *base2 = p_dev->io.BasePort1 + 8;
+ *base2 = p_dev->resource[0]->start + 8;
return 0;
}
}
@@ -544,7 +544,7 @@ static int multi_config_check_notpicky(struct pcmcia_device *p_dev,
p_dev->io.BasePort2 = cf->io.win[1].base;
p_dev->io.IOAddrLines = cf->io.flags & CISTPL_IO_LINES_MASK;
if (!pcmcia_request_io(p_dev, &p_dev->io)) {
- *base2 = p_dev->io.BasePort2;
+ *base2 = p_dev->resource[1]->start;
return 0;
}
}
@@ -596,9 +596,9 @@ static int multi_config(struct pcmcia_device *link)
link->conf.ConfigIndex == 3) {
err = setup_serial(link, info, base2,
link->irq);
- base2 = link->io.BasePort1;
+ base2 = link->resource[0]->start;;
} else {
- err = setup_serial(link, info, link->io.BasePort1,
+ err = setup_serial(link, info, link->resource[0]->start,
link->irq);
}
info->c950ctrl = base2;
@@ -613,7 +613,7 @@ static int multi_config(struct pcmcia_device *link)
return 0;
}
- setup_serial(link, info, link->io.BasePort1, link->irq);
+ setup_serial(link, info, link->resource[0]->start, link->irq);
for (i = 0; i < info->multi - 1; i++)
setup_serial(link, info, base2 + (8 * i),
link->irq);
diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c
index acef29c..208f1b7 100644
--- a/drivers/staging/comedi/drivers/cb_das16_cs.c
+++ b/drivers/staging/comedi/drivers/cb_das16_cs.c
@@ -170,7 +170,7 @@ static int das16cs_attach(struct comedi_device *dev,
if (!link)
return -EIO;
- dev->iobase = link->io.BasePort1;
+ dev->iobase = link->resource[0]->start;;
printk("I/O base=0x%04lx ", dev->iobase);
printk("fingerprint:\n");
@@ -787,12 +787,10 @@ static void das16cs_pcmcia_config(struct pcmcia_device *link)
dev_info(&link->dev, "index 0x%02x", link->conf.ConfigIndex);
if (link->conf.Attributes & CONF_ENABLE_IRQ)
printk(", irq %u", link->irq);
- if (link->io.NumPorts1)
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1 + link->io.NumPorts1 - 1);
- if (link->io.NumPorts2)
- printk(" & 0x%04x-0x%04x", link->io.BasePort2,
- link->io.BasePort2 + link->io.NumPorts2 - 1);
+ if (link->resource[0])
+ printk(", io %pR", link->resource[0]);
+ if (link->resource[1])
+ printk(", io %pR", link->resource[1]);
printk("\n");
return;
diff --git a/drivers/staging/comedi/drivers/das08_cs.c b/drivers/staging/comedi/drivers/das08_cs.c
index 3eddb7c..c4cfcff 100644
--- a/drivers/staging/comedi/drivers/das08_cs.c
+++ b/drivers/staging/comedi/drivers/das08_cs.c
@@ -88,7 +88,7 @@ static int das08_cs_attach(struct comedi_device *dev,
printk(" no pcmcia cards found\n");
return -EIO;
}
- iobase = link->io.BasePort1;
+ iobase = link->resource[0]->start;
} else {
printk(" bug! board does not have PCMCIA bustype\n");
return -EINVAL;
@@ -283,12 +283,10 @@ static void das08_pcmcia_config(struct pcmcia_device *link)
dev_info(&link->dev, "index 0x%02x", link->conf.ConfigIndex);
if (link->conf.Attributes & CONF_ENABLE_IRQ)
printk(", irq %u", link->irq);
- if (link->io.NumPorts1)
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1 + link->io.NumPorts1 - 1);
- if (link->io.NumPorts2)
- printk(" & 0x%04x-0x%04x", link->io.BasePort2,
- link->io.BasePort2 + link->io.NumPorts2 - 1);
+ if (link->resource[0])
+ printk(", io %pR", link->resource[0]);
+ if (link->resource[1])
+ printk(" & %pR", link->resource[1]);
printk("\n");
return;
diff --git a/drivers/staging/comedi/drivers/ni_daq_700.c b/drivers/staging/comedi/drivers/ni_daq_700.c
index f3c4d2f..6d56957 100644
--- a/drivers/staging/comedi/drivers/ni_daq_700.c
+++ b/drivers/staging/comedi/drivers/ni_daq_700.c
@@ -376,7 +376,7 @@ static int dio700_attach(struct comedi_device *dev, struct comedi_devconfig *it)
link = pcmcia_cur_dev; /* XXX hack */
if (!link)
return -EIO;
- iobase = link->io.BasePort1;
+ iobase = link->resource[0]->start;
#ifdef incomplete
irq = link->irq;
#endif
@@ -644,12 +644,10 @@ static void dio700_config(struct pcmcia_device *link)
dev_info(&link->dev, "index 0x%02x", link->conf.ConfigIndex);
if (link->conf.Attributes & CONF_ENABLE_IRQ)
printk(", irq %d", link->irq);
- if (link->io.NumPorts1)
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1 + link->io.NumPorts1 - 1);
- if (link->io.NumPorts2)
- printk(" & 0x%04x-0x%04x", link->io.BasePort2,
- link->io.BasePort2 + link->io.NumPorts2 - 1);
+ if (link->resource[0])
+ printk(", io %pR", link->resource[0]);
+ if (link->resource[1])
+ printk(" & %pR", link->resource[1]);
if (link->win)
printk(", mem 0x%06lx-0x%06lx", req.Base,
req.Base + req.Size - 1);
diff --git a/drivers/staging/comedi/drivers/ni_daq_dio24.c b/drivers/staging/comedi/drivers/ni_daq_dio24.c
index f0c4367..29e1daf 100644
--- a/drivers/staging/comedi/drivers/ni_daq_dio24.c
+++ b/drivers/staging/comedi/drivers/ni_daq_dio24.c
@@ -128,7 +128,7 @@ static int dio24_attach(struct comedi_device *dev, struct comedi_devconfig *it)
link = pcmcia_cur_dev; /* XXX hack */
if (!link)
return -EIO;
- iobase = link->io.BasePort1;
+ iobase = link->resource[0]->start;
#ifdef incomplete
irq = link->irq;
#endif
@@ -396,12 +396,10 @@ static void dio24_config(struct pcmcia_device *link)
dev_info(&link->dev, "index 0x%02x", link->conf.ConfigIndex);
if (link->conf.Attributes & CONF_ENABLE_IRQ)
printk(", irq %d", link->irq);
- if (link->io.NumPorts1)
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1 + link->io.NumPorts1 - 1);
- if (link->io.NumPorts2)
- printk(" & 0x%04x-0x%04x", link->io.BasePort2,
- link->io.BasePort2 + link->io.NumPorts2 - 1);
+ if (link->resource[0])
+ printk(" & %pR", link->resource[0]);
+ if (link->resource[1])
+ printk(" & %pR", link->resource[1]);
if (link->win)
printk(", mem 0x%06lx-0x%06lx", req.Base,
req.Base + req.Size - 1);
diff --git a/drivers/staging/comedi/drivers/ni_labpc_cs.c b/drivers/staging/comedi/drivers/ni_labpc_cs.c
index 1ee78f8..fb10987 100644
--- a/drivers/staging/comedi/drivers/ni_labpc_cs.c
+++ b/drivers/staging/comedi/drivers/ni_labpc_cs.c
@@ -142,7 +142,7 @@ static int labpc_attach(struct comedi_device *dev, struct comedi_devconfig *it)
link = pcmcia_cur_dev; /* XXX hack */
if (!link)
return -EIO;
- iobase = link->io.BasePort1;
+ iobase = link->resource[0]->start;
irq = link->irq;
break;
default:
@@ -373,12 +373,10 @@ static void labpc_config(struct pcmcia_device *link)
dev_info(&link->dev, "index 0x%02x", link->conf.ConfigIndex);
if (link->conf.Attributes & CONF_ENABLE_IRQ)
printk(", irq %d", link->irq);
- if (link->io.NumPorts1)
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1 + link->io.NumPorts1 - 1);
- if (link->io.NumPorts2)
- printk(" & 0x%04x-0x%04x", link->io.BasePort2,
- link->io.BasePort2 + link->io.NumPorts2 - 1);
+ if (link->resource[0])
+ printk(" & %pR", link->resource[0]);
+ if (link->resource[1])
+ printk(" & %pR", link->resource[1]);
if (link->win)
printk(", mem 0x%06lx-0x%06lx", req.Base,
req.Base + req.Size - 1);
diff --git a/drivers/staging/comedi/drivers/ni_mio_cs.c b/drivers/staging/comedi/drivers/ni_mio_cs.c
index 0bce220..f37dc22 100644
--- a/drivers/staging/comedi/drivers/ni_mio_cs.c
+++ b/drivers/staging/comedi/drivers/ni_mio_cs.c
@@ -355,7 +355,7 @@ static int mio_cs_attach(struct comedi_device *dev, struct comedi_devconfig *it)
return -EIO;
dev->driver = &driver_ni_mio_cs;
- dev->iobase = link->io.BasePort1;
+ dev->iobase = link->resource[0]->start;
irq = link->irq;
diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c
index 67c0fa6..80b8d57 100644
--- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c
+++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c
@@ -871,7 +871,7 @@ static int daqp_attach(struct comedi_device *dev, struct comedi_devconfig *it)
}
}
- dev->iobase = local->link->io.BasePort1;
+ dev->iobase = local->link->resource[0]->start;
ret = alloc_subdevices(dev, 4);
if (ret < 0)
@@ -1153,12 +1153,10 @@ static void daqp_cs_config(struct pcmcia_device *link)
dev_info(&link->dev, "index 0x%02x", link->conf.ConfigIndex);
if (link->conf.Attributes & CONF_ENABLE_IRQ)
printk(", irq %u", link->irq);
- if (link->io.NumPorts1)
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1 + link->io.NumPorts1 - 1);
- if (link->io.NumPorts2)
- printk(" & 0x%04x-0x%04x", link->io.BasePort2,
- link->io.BasePort2 + link->io.NumPorts2 - 1);
+ if (link->resource[0])
+ printk(" & %pR", link->resource[0]);
+ if (link->resource[1])
+ printk(" & %pR", link->resource[1]);
printk("\n");
return;
diff --git a/drivers/staging/wlags49_h2/wl_cs.c b/drivers/staging/wlags49_h2/wl_cs.c
index afe4575..2361537 100644
--- a/drivers/staging/wlags49_h2/wl_cs.c
+++ b/drivers/staging/wlags49_h2/wl_cs.c
@@ -319,7 +319,7 @@ void wl_adapter_insert( struct pcmcia_device *link )
goto failed;
dev->irq = link->irq;
- dev->base_addr = link->io.BasePort1;
+ dev->base_addr = link->resource[0]->start;
SET_NETDEV_DEV(dev, &link->dev);
if (register_netdev(dev) != 0) {
diff --git a/drivers/telephony/ixj_pcmcia.c b/drivers/telephony/ixj_pcmcia.c
index f6c7e6f..a801036 100644
--- a/drivers/telephony/ixj_pcmcia.c
+++ b/drivers/telephony/ixj_pcmcia.c
@@ -150,7 +150,8 @@ static int ixj_config(struct pcmcia_device * link)
/*
* Register the card with the core.
*/
- j = ixj_pcmcia_probe(link->io.BasePort1, link->io.BasePort1 + 0x10);
+ j = ixj_pcmcia_probe(link->resource[0]->start,
+ link->resource[0]->start + 0x10);
info->ndev = 1;
ixj_get_serial(link, j);
diff --git a/drivers/usb/host/sl811_cs.c b/drivers/usb/host/sl811_cs.c
index acb7e25..22e04f2 100644
--- a/drivers/usb/host/sl811_cs.c
+++ b/drivers/usb/host/sl811_cs.c
@@ -189,7 +189,7 @@ static int sl811_cs_config(struct pcmcia_device *link)
goto failed;
/* require an IRQ and two registers */
- if (!link->io.NumPorts1 || link->io.NumPorts1 < 2)
+ if (resource_size(link->resource[0]) < 2)
goto failed;
if (!link->irq)
@@ -204,11 +204,10 @@ static int sl811_cs_config(struct pcmcia_device *link)
if (link->conf.Vpp)
printk(", Vpp %d.%d", link->conf.Vpp/10, link->conf.Vpp%10);
printk(", irq %d", link->irq);
- printk(", io 0x%04x-0x%04x", link->io.BasePort1,
- link->io.BasePort1+link->io.NumPorts1-1);
+ printk(", io %pR", link->resource[0]);
printk("\n");
- if (sl811_hc_init(parent, link->io.BasePort1, link->irq)
+ if (sl811_hc_init(parent, link->resource[0]->start, link->irq)
< 0) {
failed:
printk(KERN_WARNING "sl811_cs_config failed\n");
diff --git a/sound/pcmcia/pdaudiocf/pdaudiocf.c b/sound/pcmcia/pdaudiocf/pdaudiocf.c
index df110df..9f897bc 100644
--- a/sound/pcmcia/pdaudiocf/pdaudiocf.c
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf.c
@@ -231,7 +231,8 @@ static int pdacf_config(struct pcmcia_device *link)
if (ret)
goto failed;
- if (snd_pdacf_assign_resources(pdacf, link->io.BasePort1, link->irq) < 0)
+ if (snd_pdacf_assign_resources(pdacf, link->resource[0]->start,
+ link->irq) < 0)
goto failed;
return 0;
diff --git a/sound/pcmcia/vx/vxpocket.c b/sound/pcmcia/vx/vxpocket.c
index 624b47a..f23c235 100644
--- a/sound/pcmcia/vx/vxpocket.c
+++ b/sound/pcmcia/vx/vxpocket.c
@@ -241,7 +241,8 @@ static int vxpocket_config(struct pcmcia_device *link)
chip->dev = &link->dev;
snd_card_set_dev(chip->card, chip->dev);
- if (snd_vxpocket_assign_resources(chip, link->io.BasePort1, link->irq) < 0)
+ if (snd_vxpocket_assign_resources(chip, link->resource[0]->start,
+ link->irq) < 0)
goto failed;
return 0;
--
1.7.0.4
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
[not found] <20100805220511.GA7040@comet.dominikbrodowski.net>
` (2 preceding siblings ...)
2010-08-05 22:06 ` [PATCH 10/18] pcmcia: do not use io_req_t after call to pcmcia_request_io() Dominik Brodowski
@ 2010-08-05 22:06 ` Dominik Brodowski
2010-08-05 22:06 ` [PATCH 13/18] pcmcia: remove memreq_t Dominik Brodowski
` (4 subsequent siblings)
8 siblings, 0 replies; 23+ messages in thread
From: Dominik Brodowski @ 2010-08-05 22:06 UTC (permalink / raw)
To: linux-pcmcia
Cc: Dominik Brodowski, netdev, linux-wireless, linux-ide, linux-usb,
laforge, linux-mtd, alsa-devel, linux-serial, Michael Buesch
Instead of io_req_t, drivers are now requested to fill out
struct pcmcia_device *p_dev->resource[0,1] for up to two ioport
ranges. After a call to pcmcia_request_io(), the ports found there
are reserved, after calling pcmcia_request_configuration(), they may
be used.
CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-ide@vger.kernel.org
CC: linux-usb@vger.kernel.org
CC: laforge@gnumonks.org
CC: linux-mtd@lists.infradead.org
CC: alsa-devel@alsa-project.org
CC: linux-serial@vger.kernel.org
CC: Michael Buesch <mb@bu3sch.de>
Acked-by: Marcel Holtmann <marcel@holtmann.org> (for drivers/bluetooth/)
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
---
Documentation/pcmcia/driver-changes.txt | 7 ++++
drivers/ata/pata_pcmcia.c | 29 ++++++++-------
drivers/bluetooth/bluecard_cs.c | 13 +++----
drivers/bluetooth/bt3c_cs.c | 18 +++++-----
drivers/bluetooth/btuart_cs.c | 18 +++++-----
drivers/bluetooth/dtl1_cs.c | 21 +++++------
drivers/char/pcmcia/cm4000_cs.c | 17 +++------
drivers/char/pcmcia/cm4040_cs.c | 20 +++-------
drivers/char/pcmcia/ipwireless/main.c | 10 +++---
drivers/char/pcmcia/synclink_cs.c | 21 +++++------
drivers/ide/ide-cs.c | 30 ++++++++-------
drivers/isdn/hardware/avm/avm_cs.c | 15 +++-----
drivers/isdn/hisax/avma1_cs.c | 20 ++++------
drivers/isdn/hisax/elsa_cs.c | 15 ++++----
drivers/isdn/hisax/sedlbauer_cs.c | 28 +++++++--------
drivers/isdn/hisax/teles_cs.c | 15 ++++----
drivers/net/pcmcia/3c574_cs.c | 11 +++---
drivers/net/pcmcia/3c589_cs.c | 11 +++---
drivers/net/pcmcia/axnet_cs.c | 40 +++++++++++----------
drivers/net/pcmcia/com20020_cs.c | 19 ++++++----
drivers/net/pcmcia/fmvj18x_cs.c | 31 ++++++++--------
drivers/net/pcmcia/ibmtr_cs.c | 14 ++++----
drivers/net/pcmcia/nmclan_cs.c | 8 ++--
drivers/net/pcmcia/pcnet_cs.c | 40 +++++++++++----------
drivers/net/pcmcia/smc91c92_cs.c | 43 +++++++++++-----------
drivers/net/pcmcia/xirc2ps_cs.c | 34 +++++++++---------
drivers/net/wireless/airo_cs.c | 22 +++++------
drivers/net/wireless/atmel_cs.c | 22 +++++------
drivers/net/wireless/b43/pcmcia.c | 4 --
drivers/net/wireless/hostap/hostap_cs.c | 28 ++++++---------
drivers/net/wireless/libertas/if_cs.c | 8 ++--
drivers/net/wireless/orinoco/orinoco_cs.c | 24 ++++++-------
drivers/net/wireless/orinoco/spectrum_cs.c | 24 ++++++-------
drivers/net/wireless/ray_cs.c | 5 +--
drivers/net/wireless/wl3501_cs.c | 12 +++---
drivers/parport/parport_cs.c | 16 ++++----
drivers/pcmcia/pcmcia_resource.c | 37 +++++--------------
drivers/scsi/pcmcia/aha152x_stub.c | 14 ++++----
drivers/scsi/pcmcia/fdomain_stub.c | 10 +++---
drivers/scsi/pcmcia/nsp_cs.c | 30 +++++++--------
drivers/scsi/pcmcia/qlogic_stub.c | 14 ++++----
drivers/scsi/pcmcia/sym53c500_cs.c | 14 ++++----
drivers/serial/serial_cs.c | 37 ++++++++++---------
drivers/staging/comedi/drivers/cb_das16_cs.c | 24 ++++++-------
drivers/staging/comedi/drivers/das08_cs.c | 23 ++++++------
drivers/staging/comedi/drivers/ni_daq_700.c | 24 ++++++-------
drivers/staging/comedi/drivers/ni_daq_dio24.c | 24 ++++++-------
drivers/staging/comedi/drivers/ni_labpc_cs.c | 24 ++++++-------
drivers/staging/comedi/drivers/ni_mio_cs.c | 13 +++----
drivers/staging/comedi/drivers/quatech_daqp_cs.c | 24 ++++++-------
drivers/staging/wlags49_h2/wl_cs.c | 8 ++--
drivers/telephony/ixj_pcmcia.c | 16 ++++----
drivers/usb/host/sl811_cs.c | 12 +++---
include/pcmcia/cs.h | 17 ---------
include/pcmcia/ds.h | 21 ++++++++++-
sound/pcmcia/pdaudiocf/pdaudiocf.c | 6 ++--
sound/pcmcia/vx/vxpocket.c | 6 ++--
57 files changed, 527 insertions(+), 584 deletions(-)
diff --git a/Documentation/pcmcia/driver-changes.txt b/Documentation/pcmcia/driver-changes.txt
index ff5f0be..26c0f9c 100644
--- a/Documentation/pcmcia/driver-changes.txt
+++ b/Documentation/pcmcia/driver-changes.txt
@@ -1,4 +1,11 @@
This file details changes in 2.6 which affect PCMCIA card driver authors:
+* pcmcia_request_io changes (as of 2.6.36)
+ Instead of io_req_t, drivers are now requested to fill out
+ struct pcmcia_device *p_dev->resource[0,1] for up to two ioport
+ ranges. After a call to pcmcia_request_io(), the ports found there
+ are reserved, after calling pcmcia_request_configuration(), they may
+ be used.
+
* No dev_info_t, no cs_types.h (as of 2.6.36)
dev_info_t and a few other typedefs are removed. No longer use them
in PCMCIA device drivers. Also, do not include pcmcia/cs_types.h, as
diff --git a/drivers/ata/pata_pcmcia.c b/drivers/ata/pata_pcmcia.c
index 1fcd065..e944aa0 100644
--- a/drivers/ata/pata_pcmcia.c
+++ b/drivers/ata/pata_pcmcia.c
@@ -200,21 +200,23 @@ static int pcmcia_check_one_config(struct pcmcia_device *pdev,
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- pdev->io.BasePort1 = io->win[0].base;
- pdev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- if (!(io->flags & CISTPL_IO_16BIT))
- pdev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
+ pdev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ pdev->resource[0]->start = io->win[0].base;
+ if (!(io->flags & CISTPL_IO_16BIT)) {
+ pdev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ pdev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ }
if (io->nwin == 2) {
- pdev->io.NumPorts1 = 8;
- pdev->io.BasePort2 = io->win[1].base;
- pdev->io.NumPorts2 = (stk->is_kme) ? 2 : 1;
- if (pcmcia_request_io(pdev, &pdev->io) != 0)
+ pdev->resource[0]->end = 8;
+ pdev->resource[1]->start = io->win[1].base;
+ pdev->resource[1]->end = (stk->is_kme) ? 2 : 1;
+ if (pcmcia_request_io(pdev) != 0)
return -ENODEV;
stk->ctl_base = pdev->resource[1]->start;
} else if ((io->nwin == 1) && (io->win[0].len >= 16)) {
- pdev->io.NumPorts1 = io->win[0].len;
- pdev->io.NumPorts2 = 0;
- if (pcmcia_request_io(pdev, &pdev->io) != 0)
+ pdev->resource[0]->end = io->win[0].len;
+ pdev->resource[1]->end = 0;
+ if (pcmcia_request_io(pdev) != 0)
return -ENODEV;
stk->ctl_base = pdev->resource[0]->start + 0x0e;
} else
@@ -245,9 +247,8 @@ static int pcmcia_init_one(struct pcmcia_device *pdev)
struct ata_port_operations *ops = &pcmcia_port_ops;
/* Set up attributes in order to probe card and get resources */
- pdev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- pdev->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
- pdev->io.IOAddrLines = 3;
+ pdev->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
+ pdev->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
pdev->conf.Attributes = CONF_ENABLE_IRQ;
pdev->conf.IntType = INT_MEMORY_AND_IO;
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c
index 24d2007..d52e90a 100644
--- a/drivers/bluetooth/bluecard_cs.c
+++ b/drivers/bluetooth/bluecard_cs.c
@@ -865,9 +865,6 @@ static int bluecard_probe(struct pcmcia_device *link)
info->p_dev = link;
link->priv = info;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- link->io.NumPorts1 = 8;
-
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -890,12 +887,14 @@ static int bluecard_config(struct pcmcia_device *link)
int i, n;
link->conf.ConfigIndex = 0x20;
- link->io.NumPorts1 = 64;
- link->io.IOAddrLines = 6;
+
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[0]->end = 64;
+ link->io_lines = 6;
for (n = 0; n < 0x400; n += 0x40) {
- link->io.BasePort1 = n ^ 0x300;
- i = pcmcia_request_io(link, &link->io);
+ link->resource[0]->start = n ^ 0x300;
+ i = pcmcia_request_io(link);
if (i == 0)
break;
}
diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c
index 8ab494c..7ab8f29 100644
--- a/drivers/bluetooth/bt3c_cs.c
+++ b/drivers/bluetooth/bt3c_cs.c
@@ -657,8 +657,8 @@ static int bt3c_probe(struct pcmcia_device *link)
info->p_dev = link;
link->priv = info;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- link->io.NumPorts1 = 8;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[0]->end = 8;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -683,14 +683,14 @@ static int bt3c_check_config(struct pcmcia_device *p_dev,
{
unsigned long try = (unsigned long) priv_data;
+ p_dev->io_lines = (try == 0) ? 16 : cf->io.flags & CISTPL_IO_LINES_MASK;
+
if (cf->vpp1.present & (1 << CISTPL_POWER_VNOM))
p_dev->conf.Vpp = cf->vpp1.param[CISTPL_POWER_VNOM] / 10000;
if ((cf->io.nwin > 0) && (cf->io.win[0].len == 8) &&
(cf->io.win[0].base != 0)) {
- p_dev->io.BasePort1 = cf->io.win[0].base;
- p_dev->io.IOAddrLines = (try == 0) ? 16 :
- cf->io.flags & CISTPL_IO_LINES_MASK;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ p_dev->resource[0]->start = cf->io.win[0].base;
+ if (!pcmcia_request_io(p_dev))
return 0;
}
return -ENODEV;
@@ -707,9 +707,9 @@ static int bt3c_check_config_notpicky(struct pcmcia_device *p_dev,
if ((cf->io.nwin > 0) && ((cf->io.flags & CISTPL_IO_LINES_MASK) <= 3)) {
for (j = 0; j < 5; j++) {
- p_dev->io.BasePort1 = base[j];
- p_dev->io.IOAddrLines = base[j] ? 16 : 3;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ p_dev->resource[0]->start = base[j];
+ p_dev->io_lines = base[j] ? 16 : 3;
+ if (!pcmcia_request_io(p_dev))
return 0;
}
}
diff --git a/drivers/bluetooth/btuart_cs.c b/drivers/bluetooth/btuart_cs.c
index 7e770d4..1c4f5e8 100644
--- a/drivers/bluetooth/btuart_cs.c
+++ b/drivers/bluetooth/btuart_cs.c
@@ -586,8 +586,8 @@ static int btuart_probe(struct pcmcia_device *link)
info->p_dev = link;
link->priv = info;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- link->io.NumPorts1 = 8;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[0]->end = 8;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -612,14 +612,14 @@ static int btuart_check_config(struct pcmcia_device *p_dev,
{
int *try = priv_data;
+ p_dev->io_lines = (try == 0) ? 16 : cf->io.flags & CISTPL_IO_LINES_MASK;
+
if (cf->vpp1.present & (1 << CISTPL_POWER_VNOM))
p_dev->conf.Vpp = cf->vpp1.param[CISTPL_POWER_VNOM] / 10000;
if ((cf->io.nwin > 0) && (cf->io.win[0].len == 8) &&
(cf->io.win[0].base != 0)) {
- p_dev->io.BasePort1 = cf->io.win[0].base;
- p_dev->io.IOAddrLines = (*try == 0) ? 16 :
- cf->io.flags & CISTPL_IO_LINES_MASK;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ p_dev->resource[0]->start = cf->io.win[0].base;
+ if (!pcmcia_request_io(p_dev))
return 0;
}
return -ENODEV;
@@ -636,9 +636,9 @@ static int btuart_check_config_notpicky(struct pcmcia_device *p_dev,
if ((cf->io.nwin > 0) && ((cf->io.flags & CISTPL_IO_LINES_MASK) <= 3)) {
for (j = 0; j < 5; j++) {
- p_dev->io.BasePort1 = base[j];
- p_dev->io.IOAddrLines = base[j] ? 16 : 3;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ p_dev->resource[0]->start = base[j];
+ p_dev->io_lines = base[j] ? 16 : 3;
+ if (!pcmcia_request_io(p_dev))
return 0;
}
}
diff --git a/drivers/bluetooth/dtl1_cs.c b/drivers/bluetooth/dtl1_cs.c
index bfe9313..18ecc57 100644
--- a/drivers/bluetooth/dtl1_cs.c
+++ b/drivers/bluetooth/dtl1_cs.c
@@ -572,8 +572,8 @@ static int dtl1_probe(struct pcmcia_device *link)
info->p_dev = link;
link->priv = info;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- link->io.NumPorts1 = 8;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[0]->end = 8;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -597,14 +597,13 @@ static int dtl1_confcheck(struct pcmcia_device *p_dev,
unsigned int vcc,
void *priv_data)
{
- if ((cf->io.nwin == 1) && (cf->io.win[0].len > 8)) {
- p_dev->io.BasePort1 = cf->io.win[0].base;
- p_dev->io.NumPorts1 = cf->io.win[0].len; /*yo */
- p_dev->io.IOAddrLines = cf->io.flags & CISTPL_IO_LINES_MASK;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
- return 0;
- }
- return -ENODEV;
+ if ((cf->io.nwin != 1) || (cf->io.win[0].len <= 8))
+ return -ENODEV;
+
+ p_dev->resource[0]->start = cf->io.win[0].base;
+ p_dev->resource[0]->end = cf->io.win[0].len; /*yo */
+ p_dev->io_lines = cf->io.flags & CISTPL_IO_LINES_MASK;
+ return pcmcia_request_io(p_dev);
}
static int dtl1_config(struct pcmcia_device *link)
@@ -613,7 +612,7 @@ static int dtl1_config(struct pcmcia_device *link)
int i;
/* Look for a generic full-sized window */
- link->io.NumPorts1 = 8;
+ link->resource[0]->end = 8;
if (pcmcia_loop_config(link, dtl1_confcheck, NULL) < 0)
goto failed;
diff --git a/drivers/char/pcmcia/cm4000_cs.c b/drivers/char/pcmcia/cm4000_cs.c
index 18484ed..ec73d9f 100644
--- a/drivers/char/pcmcia/cm4000_cs.c
+++ b/drivers/char/pcmcia/cm4000_cs.c
@@ -1751,17 +1751,12 @@ static int cm4000_config_check(struct pcmcia_device *p_dev,
if (!cfg->io.nwin)
return -ENODEV;
- /* Get the IOaddr */
- p_dev->io.BasePort1 = cfg->io.win[0].base;
- p_dev->io.NumPorts1 = cfg->io.win[0].len;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(cfg->io.flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(cfg->io.flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = cfg->io.flags & CISTPL_IO_LINES_MASK;
-
- return pcmcia_request_io(p_dev, &p_dev->io);
+ p_dev->resource[0]->start = cfg->io.win[0].base;
+ p_dev->resource[0]->end = cfg->io.win[0].len;
+ p_dev->resource[0]->flags |= pcmcia_io_cfg_data_width(cfg->io.flags);
+ p_dev->io_lines = cfg->io.flags & CISTPL_IO_LINES_MASK;
+
+ return pcmcia_request_io(p_dev);
}
static int cm4000_config(struct pcmcia_device * link, int devno)
diff --git a/drivers/char/pcmcia/cm4040_cs.c b/drivers/char/pcmcia/cm4040_cs.c
index a6bbf19..815cde1 100644
--- a/drivers/char/pcmcia/cm4040_cs.c
+++ b/drivers/char/pcmcia/cm4040_cs.c
@@ -527,16 +527,12 @@ static int cm4040_config_check(struct pcmcia_device *p_dev,
return -ENODEV;
/* Get the IOaddr */
- p_dev->io.BasePort1 = cfg->io.win[0].base;
- p_dev->io.NumPorts1 = cfg->io.win[0].len;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(cfg->io.flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(cfg->io.flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = cfg->io.flags & CISTPL_IO_LINES_MASK;
-
- rc = pcmcia_request_io(p_dev, &p_dev->io);
+ p_dev->resource[0]->start = cfg->io.win[0].base;
+ p_dev->resource[0]->end = cfg->io.win[0].len;
+ p_dev->resource[0]->flags |= pcmcia_io_cfg_data_width(cfg->io.flags);
+ p_dev->io_lines = cfg->io.flags & CISTPL_IO_LINES_MASK;
+ rc = pcmcia_request_io(p_dev);
+
dev_printk(KERN_INFO, &p_dev->dev,
"pcmcia_request_io returned 0x%x\n", rc);
return rc;
@@ -548,10 +544,6 @@ static int reader_config(struct pcmcia_device *link, int devno)
struct reader_dev *dev;
int fail_rc;
- link->io.BasePort2 = 0;
- link->io.NumPorts2 = 0;
- link->io.Attributes2 = 0;
-
if (pcmcia_loop_config(link, cm4040_config_check, NULL))
goto cs_release;
diff --git a/drivers/char/pcmcia/ipwireless/main.c b/drivers/char/pcmcia/ipwireless/main.c
index 9467994..5f87b9f 100644
--- a/drivers/char/pcmcia/ipwireless/main.c
+++ b/drivers/char/pcmcia/ipwireless/main.c
@@ -88,15 +88,15 @@ static int ipwireless_probe(struct pcmcia_device *p_dev,
memreq_t memreq_common_memory;
int ret;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- p_dev->io.BasePort1 = cfg->io.win[0].base;
- p_dev->io.NumPorts1 = cfg->io.win[0].len;
- p_dev->io.IOAddrLines = 16;
+ p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
+ p_dev->resource[0]->start = cfg->io.win[0].base;
+ p_dev->resource[0]->end = cfg->io.win[0].len;
/* 0x40 causes it to generate level mode interrupts. */
/* 0x04 enables IREQ pin. */
p_dev->conf.ConfigIndex = cfg->index | 0x44;
- ret = pcmcia_request_io(p_dev, &p_dev->io);
+ p_dev->io_lines = 16;
+ ret = pcmcia_request_io(p_dev);
if (ret)
return ret;
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
index 8ded9b0..9ecd6be 100644
--- a/drivers/char/pcmcia/synclink_cs.c
+++ b/drivers/char/pcmcia/synclink_cs.c
@@ -571,18 +571,15 @@ static int mgslpc_ioprobe(struct pcmcia_device *p_dev,
unsigned int vcc,
void *priv_data)
{
- if (cfg->io.nwin > 0) {
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(cfg->io.flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(cfg->io.flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = cfg->io.flags & CISTPL_IO_LINES_MASK;
- p_dev->io.BasePort1 = cfg->io.win[0].base;
- p_dev->io.NumPorts1 = cfg->io.win[0].len;
- return pcmcia_request_io(p_dev, &p_dev->io);
- }
- return -ENODEV;
+ if (!cfg->io.nwin)
+ return -ENODEV;
+
+ p_dev->resource[0]->start = cfg->io.win[0].base;
+ p_dev->resource[0]->end = cfg->io.win[0].len;
+ p_dev->resource[0]->flags |= pcmcia_io_cfg_data_width(cfg->io.flags);
+ p_dev->io_lines = cfg->io.flags & CISTPL_IO_LINES_MASK;
+
+ return pcmcia_request_io(p_dev);
}
static int mgslpc_config(struct pcmcia_device *link)
diff --git a/drivers/ide/ide-cs.c b/drivers/ide/ide-cs.c
index 6be0e5f..2a4cb9c 100644
--- a/drivers/ide/ide-cs.c
+++ b/drivers/ide/ide-cs.c
@@ -97,9 +97,8 @@ static int ide_probe(struct pcmcia_device *link)
info->p_dev = link;
link->priv = info;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
- link->io.IOAddrLines = 3;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
+ link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -228,22 +227,25 @@ static int pcmcia_check_one_config(struct pcmcia_device *pdev,
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
+ pdev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+
pdev->conf.ConfigIndex = cfg->index;
- pdev->io.BasePort1 = io->win[0].base;
- pdev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- if (!(io->flags & CISTPL_IO_16BIT))
- pdev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
+ pdev->resource[0]->start = io->win[0].base;
+ if (!(io->flags & CISTPL_IO_16BIT)) {
+ pdev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ pdev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ }
if (io->nwin == 2) {
- pdev->io.NumPorts1 = 8;
- pdev->io.BasePort2 = io->win[1].base;
- pdev->io.NumPorts2 = (stk->is_kme) ? 2 : 1;
- if (pcmcia_request_io(pdev, &pdev->io) != 0)
+ pdev->resource[0]->end = 8;
+ pdev->resource[1]->start = io->win[1].base;
+ pdev->resource[1]->end = (stk->is_kme) ? 2 : 1;
+ if (pcmcia_request_io(pdev) != 0)
return -ENODEV;
stk->ctl_base = pdev->resource[1]->start;
} else if ((io->nwin == 1) && (io->win[0].len >= 16)) {
- pdev->io.NumPorts1 = io->win[0].len;
- pdev->io.NumPorts2 = 0;
- if (pcmcia_request_io(pdev, &pdev->io) != 0)
+ pdev->resource[0]->end = io->win[0].len;
+ pdev->resource[1]->end = 0;
+ if (pcmcia_request_io(pdev) != 0)
return -ENODEV;
stk->ctl_base = pdev->resource[0]->start + 0x0e;
} else
diff --git a/drivers/isdn/hardware/avm/avm_cs.c b/drivers/isdn/hardware/avm/avm_cs.c
index 7c8c51f..09b1795 100644
--- a/drivers/isdn/hardware/avm/avm_cs.c
+++ b/drivers/isdn/hardware/avm/avm_cs.c
@@ -75,9 +75,8 @@ static int avmcs_probe(struct pcmcia_device *p_dev)
{
/* The io structure describes IO port mapping */
- p_dev->io.NumPorts1 = 16;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = 16;
+ p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
/* General socket configuration */
p_dev->conf.Attributes = CONF_ENABLE_IRQ;
@@ -119,13 +118,9 @@ static int avmcs_configcheck(struct pcmcia_device *p_dev,
if (cf->io.nwin <= 0)
return -ENODEV;
- p_dev->io.BasePort1 = cf->io.win[0].base;
- p_dev->io.NumPorts1 = cf->io.win[0].len;
- p_dev->io.NumPorts2 = 0;
- printk(KERN_INFO "avm_cs: testing i/o %#x-%#x\n",
- p_dev->io.BasePort1,
- p_dev->io.BasePort1+p_dev->io.NumPorts1-1);
- return pcmcia_request_io(p_dev, &p_dev->io);
+ p_dev->resource[0]->start = cf->io.win[0].base;
+ p_dev->resource[0]->end = cf->io.win[0].len;
+ return pcmcia_request_io(p_dev);
}
static int avmcs_config(struct pcmcia_device *link)
diff --git a/drivers/isdn/hisax/avma1_cs.c b/drivers/isdn/hisax/avma1_cs.c
index 8889963..94263c2 100644
--- a/drivers/isdn/hisax/avma1_cs.c
+++ b/drivers/isdn/hisax/avma1_cs.c
@@ -78,11 +78,10 @@ static int __devinit avma1cs_probe(struct pcmcia_device *p_dev)
dev_dbg(&p_dev->dev, "avma1cs_attach()\n");
/* The io structure describes IO port mapping */
- p_dev->io.NumPorts1 = 16;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.NumPorts2 = 16;
- p_dev->io.Attributes2 = IO_DATA_PATH_WIDTH_16;
- p_dev->io.IOAddrLines = 5;
+ p_dev->resource[0]->end = 16;
+ p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ p_dev->resource[1]->end = 16;
+ p_dev->resource[1]->flags |= IO_DATA_PATH_WIDTH_16;
/* General socket configuration */
p_dev->conf.Attributes = CONF_ENABLE_IRQ;
@@ -126,13 +125,10 @@ static int avma1cs_configcheck(struct pcmcia_device *p_dev,
if (cf->io.nwin <= 0)
return -ENODEV;
- p_dev->io.BasePort1 = cf->io.win[0].base;
- p_dev->io.NumPorts1 = cf->io.win[0].len;
- p_dev->io.NumPorts2 = 0;
- printk(KERN_INFO "avma1_cs: testing i/o %#x-%#x\n",
- p_dev->io.BasePort1,
- p_dev->io.BasePort1+p_dev->io.NumPorts1-1);
- return pcmcia_request_io(p_dev, &p_dev->io);
+ p_dev->resource[0]->start = cf->io.win[0].base;
+ p_dev->resource[0]->end = cf->io.win[0].len;
+ p_dev->io_lines = 5;
+ return pcmcia_request_io(p_dev);
}
diff --git a/drivers/isdn/hisax/elsa_cs.c b/drivers/isdn/hisax/elsa_cs.c
index c10bfd3..b3c08aa 100644
--- a/drivers/isdn/hisax/elsa_cs.c
+++ b/drivers/isdn/hisax/elsa_cs.c
@@ -126,9 +126,8 @@ static int __devinit elsa_cs_probe(struct pcmcia_device *link)
and attributes of IO windows) are fixed by the nature of the
device, and can be hard-wired here.
*/
- link->io.NumPorts1 = 8;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.IOAddrLines = 3;
+ link->resource[0]->end = 8;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -173,16 +172,18 @@ static int elsa_cs_configcheck(struct pcmcia_device *p_dev,
{
int j;
+ p_dev->io_lines = 3;
+
if ((cf->io.nwin > 0) && cf->io.win[0].base) {
printk(KERN_INFO "(elsa_cs: looks like the 96 model)\n");
- p_dev->io.BasePort1 = cf->io.win[0].base;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ p_dev->resource[0]->start = cf->io.win[0].base;
+ if (!pcmcia_request_io(p_dev))
return 0;
} else {
printk(KERN_INFO "(elsa_cs: looks like the 97 model)\n");
for (j = 0x2f0; j > 0x100; j -= 0x10) {
- p_dev->io.BasePort1 = j;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ p_dev->resource[0]->start = j;
+ if (!pcmcia_request_io(p_dev))
return 0;
}
}
diff --git a/drivers/isdn/hisax/sedlbauer_cs.c b/drivers/isdn/hisax/sedlbauer_cs.c
index cecb35a..4755eb4 100644
--- a/drivers/isdn/hisax/sedlbauer_cs.c
+++ b/drivers/isdn/hisax/sedlbauer_cs.c
@@ -129,9 +129,8 @@ static int __devinit sedlbauer_probe(struct pcmcia_device *link)
/* from old sedl_cs
*/
/* The io structure describes IO port mapping */
- link->io.NumPorts1 = 8;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- link->io.IOAddrLines = 3;
+ link->resource[0]->end = 8;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
link->conf.Attributes = 0;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -201,23 +200,22 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags = p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
/* This reserves IO space but doesn't actually enable it */
- if (pcmcia_request_io(p_dev, &p_dev->io) != 0)
+ p_dev->io_lines = 3;
+ if (pcmcia_request_io(p_dev) != 0)
return -ENODEV;
}
diff --git a/drivers/isdn/hisax/teles_cs.c b/drivers/isdn/hisax/teles_cs.c
index 3787fc7..7296102 100644
--- a/drivers/isdn/hisax/teles_cs.c
+++ b/drivers/isdn/hisax/teles_cs.c
@@ -106,9 +106,8 @@ static int __devinit teles_probe(struct pcmcia_device *link)
and attributes of IO windows) are fixed by the nature of the
device, and can be hard-wired here.
*/
- link->io.NumPorts1 = 96;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.IOAddrLines = 5;
+ link->resource[0]->end = 96;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -153,16 +152,18 @@ static int teles_cs_configcheck(struct pcmcia_device *p_dev,
{
int j;
+ p_dev->io_lines = 5;
+
if ((cf->io.nwin > 0) && cf->io.win[0].base) {
printk(KERN_INFO "(teles_cs: looks like the 96 model)\n");
- p_dev->io.BasePort1 = cf->io.win[0].base;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ p_dev->resource[0]->start = cf->io.win[0].base;
+ if (!pcmcia_request_io(p_dev))
return 0;
} else {
printk(KERN_INFO "(teles_cs: looks like the 97 model)\n");
for (j = 0x2f0; j > 0x100; j -= 0x10) {
- p_dev->io.BasePort1 = j;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ p_dev->resource[0]->start = j;
+ if (!pcmcia_request_io(p_dev))
return 0;
}
}
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index b5ea9b8..c683f77 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -278,8 +278,8 @@ static int tc574_probe(struct pcmcia_device *link)
lp->p_dev = link;
spin_lock_init(&lp->window_lock);
- link->io.NumPorts1 = 32;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
+ link->resource[0]->end = 32;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
link->conf.ConfigIndex = 1;
@@ -337,10 +337,11 @@ static int tc574_config(struct pcmcia_device *link)
dev_dbg(&link->dev, "3c574_config()\n");
- link->io.IOAddrLines = 16;
+ link->io_lines = 16;
+
for (i = j = 0; j < 0x400; j += 0x20) {
- link->io.BasePort1 = j ^ 0x300;
- i = pcmcia_request_io(link, &link->io);
+ link->resource[0]->start = j ^ 0x300;
+ i = pcmcia_request_io(link);
if (i == 0)
break;
}
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index 122ef4a..61f9cf2 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -213,8 +213,8 @@ static int tc589_probe(struct pcmcia_device *link)
lp->p_dev = link;
spin_lock_init(&lp->lock);
- link->io.NumPorts1 = 16;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
+ link->resource[0]->end = 16;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -277,12 +277,13 @@ static int tc589_config(struct pcmcia_device *link)
"3Com card??\n");
multi = (link->card_id == PRODID_3COM_3C562);
+ link->io_lines = 16;
+
/* For the 3c562, the base address must be xx00-xx7f */
- link->io.IOAddrLines = 16;
for (i = j = 0; j < 0x400; j += 0x10) {
if (multi && (j & 0x80)) continue;
- link->io.BasePort1 = j ^ 0x300;
- i = pcmcia_request_io(link, &link->io);
+ link->resource[0]->start = j ^ 0x300;
+ i = pcmcia_request_io(link);
if (i == 0)
break;
}
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index c52fdf3..5f05ffb 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -259,28 +259,30 @@ static int get_prom(struct pcmcia_device *link)
static int try_io_port(struct pcmcia_device *link)
{
int j, ret;
- if (link->io.NumPorts1 == 32) {
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
+ link->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ link->resource[1]->flags &= ~IO_DATA_PATH_WIDTH;
+ if (link->resource[0]->end == 32) {
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
/* for master/slave multifunction cards */
- if (link->io.NumPorts2 > 0)
- link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
+ if (link->resource[1]->end > 0)
+ link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
} else {
/* This should be two 16-port windows */
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- link->io.Attributes2 = IO_DATA_PATH_WIDTH_16;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[1]->flags |= IO_DATA_PATH_WIDTH_16;
}
- if (link->io.BasePort1 == 0) {
- link->io.IOAddrLines = 16;
+ if (link->resource[0]->start == 0) {
for (j = 0; j < 0x400; j += 0x20) {
- link->io.BasePort1 = j ^ 0x300;
- link->io.BasePort2 = (j ^ 0x300) + 0x10;
- ret = pcmcia_request_io(link, &link->io);
+ link->resource[0]->start = j ^ 0x300;
+ link->resource[1]->start = (j ^ 0x300) + 0x10;
+ link->io_lines = 16;
+ ret = pcmcia_request_io(link);
if (ret == 0)
return ret;
}
return ret;
} else {
- return pcmcia_request_io(link, &link->io);
+ return pcmcia_request_io(link);
}
}
@@ -301,15 +303,15 @@ static int axnet_configcheck(struct pcmcia_device *p_dev,
network function with window 0, and serial with window 1 */
if (io->nwin > 1) {
i = (io->win[1].len > io->win[0].len);
- p_dev->io.BasePort2 = io->win[1-i].base;
- p_dev->io.NumPorts2 = io->win[1-i].len;
+ p_dev->resource[1]->start = io->win[1-i].base;
+ p_dev->resource[1]->end = io->win[1-i].len;
} else {
- i = p_dev->io.NumPorts2 = 0;
+ i = p_dev->resource[1]->end = 0;
}
- p_dev->io.BasePort1 = io->win[i].base;
- p_dev->io.NumPorts1 = io->win[i].len;
- p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- if (p_dev->io.NumPorts1 + p_dev->io.NumPorts2 >= 32)
+ p_dev->resource[0]->start = io->win[i].base;
+ p_dev->resource[0]->end = io->win[i].len;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ if (p_dev->resource[0]->end + p_dev->resource[1]->end >= 32)
return try_io_port(p_dev);
return -ENODEV;
diff --git a/drivers/net/pcmcia/com20020_cs.c b/drivers/net/pcmcia/com20020_cs.c
index 3b53818..3c400cf 100644
--- a/drivers/net/pcmcia/com20020_cs.c
+++ b/drivers/net/pcmcia/com20020_cs.c
@@ -158,9 +158,8 @@ static int com20020_probe(struct pcmcia_device *p_dev)
/* fill in our module parameters as defaults */
dev->dev_addr[0] = node;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.NumPorts1 = 16;
- p_dev->io.IOAddrLines = 16;
+ p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ p_dev->resource[0]->end = 16;
p_dev->conf.Attributes = CONF_ENABLE_IRQ;
p_dev->conf.IntType = INT_MEMORY_AND_IO;
@@ -245,20 +244,24 @@ static int com20020_config(struct pcmcia_device *link)
dev_dbg(&link->dev, "com20020_config\n");
- dev_dbg(&link->dev, "baseport1 is %Xh\n", link->io.BasePort1);
+ dev_dbg(&link->dev, "baseport1 is %Xh\n",
+ (unsigned int) link->resource[0]->start);
+
i = -ENODEV;
- if (!link->io.BasePort1)
+ link->io_lines = 16;
+
+ if (!link->resource[0]->start)
{
for (ioaddr = 0x100; ioaddr < 0x400; ioaddr += 0x10)
{
- link->io.BasePort1 = ioaddr;
- i = pcmcia_request_io(link, &link->io);
+ link->resource[0]->start = ioaddr;
+ i = pcmcia_request_io(link);
if (i == 0)
break;
}
}
else
- i = pcmcia_request_io(link, &link->io);
+ i = pcmcia_request_io(link);
if (i != 0)
{
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index bba6369..6993044 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -248,9 +248,8 @@ static int fmvj18x_probe(struct pcmcia_device *link)
lp->base = NULL;
/* The io structure describes IO port mapping */
- link->io.NumPorts1 = 32;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.IOAddrLines = 5;
+ link->resource[0]->end = 32;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
/* General socket configuration */
link->conf.Attributes = CONF_ENABLE_IRQ;
@@ -288,13 +287,13 @@ static int mfc_try_io_port(struct pcmcia_device *link)
{ 0x3f8, 0x2f8, 0x3e8, 0x2e8, 0x0 };
for (i = 0; i < 5; i++) {
- link->io.BasePort2 = serial_base[i];
- link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
- if (link->io.BasePort2 == 0) {
- link->io.NumPorts2 = 0;
+ link->resource[1]->start = serial_base[i];
+ link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
+ if (link->resource[1]->start == 0) {
+ link->resource[1]->end = 0;
printk(KERN_NOTICE "fmvj18x_cs: out of resource for serial\n");
}
- ret = pcmcia_request_io(link, &link->io);
+ ret = pcmcia_request_io(link);
if (ret == 0)
return ret;
}
@@ -310,8 +309,8 @@ static int ungermann_try_io_port(struct pcmcia_device *link)
0x380,0x3c0 only for ioport.
*/
for (ioaddr = 0x300; ioaddr < 0x3e0; ioaddr += 0x20) {
- link->io.BasePort1 = ioaddr;
- ret = pcmcia_request_io(link, &link->io);
+ link->resource[0]->start = ioaddr;
+ ret = pcmcia_request_io(link);
if (ret == 0) {
/* calculate ConfigIndex value */
link->conf.ConfigIndex =
@@ -345,6 +344,8 @@ static int fmvj18x_config(struct pcmcia_device *link)
dev_dbg(&link->dev, "fmvj18x_config\n");
+ link->io_lines = 5;
+
len = pcmcia_get_tuple(link, CISTPL_FUNCE, &buf);
kfree(buf);
@@ -363,20 +364,20 @@ static int fmvj18x_config(struct pcmcia_device *link)
/* MultiFunction Card */
link->conf.ConfigBase = 0x800;
link->conf.ConfigIndex = 0x47;
- link->io.NumPorts2 = 8;
+ link->resource[1]->end = 8;
}
break;
case MANFID_NEC:
cardtype = NEC; /* MultiFunction Card */
link->conf.ConfigBase = 0x800;
link->conf.ConfigIndex = 0x47;
- link->io.NumPorts2 = 8;
+ link->resource[1]->end = 8;
break;
case MANFID_KME:
cardtype = KME; /* MultiFunction Card */
link->conf.ConfigBase = 0x800;
link->conf.ConfigIndex = 0x47;
- link->io.NumPorts2 = 8;
+ link->resource[1]->end = 8;
break;
case MANFID_CONTEC:
cardtype = CONTEC;
@@ -417,14 +418,14 @@ static int fmvj18x_config(struct pcmcia_device *link)
}
}
- if (link->io.NumPorts2 != 0) {
+ if (link->resource[1]->end != 0) {
ret = mfc_try_io_port(link);
if (ret != 0) goto failed;
} else if (cardtype == UNGERMANN) {
ret = ungermann_try_io_port(link);
if (ret != 0) goto failed;
} else {
- ret = pcmcia_request_io(link, &link->io);
+ ret = pcmcia_request_io(link);
if (ret)
goto failed;
}
diff --git a/drivers/net/pcmcia/ibmtr_cs.c b/drivers/net/pcmcia/ibmtr_cs.c
index e99abaa..3fd8595 100644
--- a/drivers/net/pcmcia/ibmtr_cs.c
+++ b/drivers/net/pcmcia/ibmtr_cs.c
@@ -151,9 +151,8 @@ static int __devinit ibmtr_attach(struct pcmcia_device *link)
link->priv = info;
info->ti = netdev_priv(dev);
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- link->io.NumPorts1 = 4;
- link->io.IOAddrLines = 16;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[0]->end = 4;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
link->conf.Present = PRESENT_OPTION;
@@ -218,16 +217,17 @@ static int __devinit ibmtr_config(struct pcmcia_device *link)
dev_dbg(&link->dev, "ibmtr_config\n");
link->conf.ConfigIndex = 0x61;
+ link->io_lines = 16;
/* Determine if this is PRIMARY or ALTERNATE. */
/* Try PRIMARY card at 0xA20-0xA23 */
- link->io.BasePort1 = 0xA20;
- i = pcmcia_request_io(link, &link->io);
+ link->resource[0]->start = 0xA20;
+ i = pcmcia_request_io(link);
if (i != 0) {
/* Couldn't get 0xA20-0xA23. Try ALTERNATE at 0xA24-0xA27. */
- link->io.BasePort1 = 0xA24;
- ret = pcmcia_request_io(link, &link->io);
+ link->resource[0]->start = 0xA24;
+ ret = pcmcia_request_io(link);
if (ret)
goto failed;
}
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index 9980cbb..68f2dee 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -458,9 +458,8 @@ static int nmclan_probe(struct pcmcia_device *link)
link->priv = dev;
spin_lock_init(&lp->bank_lock);
- link->io.NumPorts1 = 32;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.IOAddrLines = 5;
+ link->resource[0]->end = 32;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
link->conf.ConfigIndex = 1;
@@ -644,7 +643,8 @@ static int nmclan_config(struct pcmcia_device *link)
dev_dbg(&link->dev, "nmclan_config\n");
- ret = pcmcia_request_io(link, &link->io);
+ link->io_lines = 5;
+ ret = pcmcia_request_io(link);
if (ret)
goto failed;
ret = pcmcia_request_exclusive_irq(link, mace_interrupt);
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index c9cd237..9c5fc9d 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -477,29 +477,31 @@ static hw_info_t *get_hwired(struct pcmcia_device *link)
static int try_io_port(struct pcmcia_device *link)
{
int j, ret;
- if (link->io.NumPorts1 == 32) {
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (link->io.NumPorts2 > 0) {
+ link->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ link->resource[1]->flags &= ~IO_DATA_PATH_WIDTH;
+ if (link->resource[0]->end == 32) {
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
+ if (link->resource[1]->end > 0) {
/* for master/slave multifunction cards */
- link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
+ link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
}
} else {
/* This should be two 16-port windows */
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- link->io.Attributes2 = IO_DATA_PATH_WIDTH_16;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[1]->flags |= IO_DATA_PATH_WIDTH_16;
}
- if (link->io.BasePort1 == 0) {
- link->io.IOAddrLines = 16;
+ if (link->resource[0]->start == 0) {
for (j = 0; j < 0x400; j += 0x20) {
- link->io.BasePort1 = j ^ 0x300;
- link->io.BasePort2 = (j ^ 0x300) + 0x10;
- ret = pcmcia_request_io(link, &link->io);
+ link->resource[0]->start = j ^ 0x300;
+ link->resource[1]->start = (j ^ 0x300) + 0x10;
+ link->io_lines = 16;
+ ret = pcmcia_request_io(link);
if (ret == 0)
return ret;
}
return ret;
} else {
- return pcmcia_request_io(link, &link->io);
+ return pcmcia_request_io(link);
}
}
@@ -520,18 +522,18 @@ static int pcnet_confcheck(struct pcmcia_device *p_dev,
network function with window 0, and serial with window 1 */
if (io->nwin > 1) {
i = (io->win[1].len > io->win[0].len);
- p_dev->io.BasePort2 = io->win[1-i].base;
- p_dev->io.NumPorts2 = io->win[1-i].len;
+ p_dev->resource[1]->start = io->win[1-i].base;
+ p_dev->resource[1]->end = io->win[1-i].len;
} else {
- i = p_dev->io.NumPorts2 = 0;
+ i = p_dev->resource[1]->end = 0;
}
*has_shmem = ((cfg->mem.nwin == 1) &&
(cfg->mem.win[0].len >= 0x4000));
- p_dev->io.BasePort1 = io->win[i].base;
- p_dev->io.NumPorts1 = io->win[i].len;
- p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- if (p_dev->io.NumPorts1 + p_dev->io.NumPorts2 >= 32)
+ p_dev->resource[0]->start = io->win[i].base;
+ p_dev->resource[0]->end = io->win[i].len;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ if (p_dev->resource[0]->end + p_dev->resource[1]->end >= 32)
return try_io_port(p_dev);
return 0;
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index 1b0b323..a5e4779 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -324,9 +324,8 @@ static int smc91c92_probe(struct pcmcia_device *link)
link->priv = dev;
spin_lock_init(&smc->lock);
- link->io.NumPorts1 = 16;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.IOAddrLines = 4;
+ link->resource[0]->end = 16;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -427,12 +426,13 @@ static int mhz_mfc_config_check(struct pcmcia_device *p_dev,
void *priv_data)
{
int k;
- p_dev->io.BasePort2 = cf->io.win[0].base;
+ p_dev->resource[1]->start = cf->io.win[0].base;
for (k = 0; k < 0x400; k += 0x10) {
if (k & 0x80)
continue;
- p_dev->io.BasePort1 = k ^ 0x300;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ p_dev->resource[0]->start = k ^ 0x300;
+ p_dev->io_lines = 16;
+ if (!pcmcia_request_io(p_dev))
return 0;
}
return -ENODEV;
@@ -448,9 +448,8 @@ static int mhz_mfc_config(struct pcmcia_device *link)
link->conf.Attributes |= CONF_ENABLE_SPKR;
link->conf.Status = CCSR_AUDIO_ENA;
- link->io.IOAddrLines = 16;
- link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
- link->io.NumPorts2 = 8;
+ link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[1]->end = 8;
/* The Megahertz combo cards have modem-like CIS entries, so
we have to explicitly try a bunch of port combinations. */
@@ -601,9 +600,9 @@ static int smc_configcheck(struct pcmcia_device *p_dev,
unsigned int vcc,
void *priv_data)
{
- p_dev->io.BasePort1 = cf->io.win[0].base;
- p_dev->io.IOAddrLines = cf->io.flags & CISTPL_IO_LINES_MASK;
- return pcmcia_request_io(p_dev, &p_dev->io);
+ p_dev->resource[0]->start = cf->io.win[0].base;
+ p_dev->io_lines = cf->io.flags & CISTPL_IO_LINES_MASK;
+ return pcmcia_request_io(p_dev);
}
static int smc_config(struct pcmcia_device *link)
@@ -611,7 +610,7 @@ static int smc_config(struct pcmcia_device *link)
struct net_device *dev = link->priv;
int i;
- link->io.NumPorts1 = 16;
+ link->resource[0]->end = 16;
i = pcmcia_loop_config(link, smc_configcheck, NULL);
if (!i)
dev->base_addr = link->resource[0]->start;
@@ -646,25 +645,25 @@ static int osi_config(struct pcmcia_device *link)
link->conf.Attributes |= CONF_ENABLE_SPKR;
link->conf.Status = CCSR_AUDIO_ENA;
- link->io.NumPorts1 = 64;
- link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
- link->io.NumPorts2 = 8;
- link->io.IOAddrLines = 16;
+ link->resource[0]->end = 64;
+ link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[1]->end = 8;
/* Enable Hard Decode, LAN, Modem */
link->conf.ConfigIndex = 0x23;
+ link->io_lines = 16;
for (i = j = 0; j < 4; j++) {
- link->io.BasePort2 = com[j];
- i = pcmcia_request_io(link, &link->io);
+ link->resource[1]->start = com[j];
+ i = pcmcia_request_io(link);
if (i == 0)
break;
}
if (i != 0) {
/* Fallback: turn off hard decode */
link->conf.ConfigIndex = 0x03;
- link->io.NumPorts2 = 0;
- i = pcmcia_request_io(link, &link->io);
+ link->resource[1]->end = 0;
+ i = pcmcia_request_io(link);
}
dev->base_addr = link->resource[0]->start + 0x10;
return i;
@@ -803,7 +802,7 @@ static int check_sig(struct pcmcia_device *link)
}
/* Try setting bus width */
- width = (link->io.Attributes1 == IO_DATA_PATH_WIDTH_AUTO);
+ width = (link->resource[0]->flags == IO_DATA_PATH_WIDTH_AUTO);
s = inb(ioaddr + CONFIG);
if (width)
s |= CFG_16BIT;
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index 034920b..8fb0eb1 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -677,9 +677,9 @@ xirc2ps_config_modem(struct pcmcia_device *p_dev,
if (cf->io.nwin > 0 && (cf->io.win[0].base & 0xf) == 8) {
for (ioaddr = 0x300; ioaddr < 0x400; ioaddr += 0x10) {
- p_dev->io.BasePort2 = cf->io.win[0].base;
- p_dev->io.BasePort1 = ioaddr;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ p_dev->resource[1]->start = cf->io.win[0].base;
+ p_dev->resource[0]->start = ioaddr;
+ if (!pcmcia_request_io(p_dev))
return 0;
}
}
@@ -696,11 +696,11 @@ xirc2ps_config_check(struct pcmcia_device *p_dev,
int *pass = priv_data;
if (cf->io.nwin > 0 && (cf->io.win[0].base & 0xf) == 8) {
- p_dev->io.BasePort2 = cf->io.win[0].base;
- p_dev->io.BasePort1 = p_dev->io.BasePort2
+ p_dev->resource[1]->start = cf->io.win[0].base;
+ p_dev->resource[0]->start = p_dev->resource[1]->start
+ (*pass ? (cf->index & 0x20 ? -24:8)
: (cf->index & 0x20 ? 8:-24));
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ if (!pcmcia_request_io(p_dev))
return 0;
}
return -ENODEV;
@@ -807,8 +807,7 @@ xirc2ps_config(struct pcmcia_device * link)
goto failure;
}
- link->io.IOAddrLines =10;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16;
if (local->modem) {
int pass;
@@ -816,16 +815,16 @@ xirc2ps_config(struct pcmcia_device * link)
link->conf.Attributes |= CONF_ENABLE_SPKR;
link->conf.Status |= CCSR_AUDIO_ENA;
}
- link->io.NumPorts2 = 8;
- link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
+ link->resource[1]->end = 8;
+ link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
if (local->dingo) {
/* Take the Modem IO port from the CIS and scan for a free
* Ethernet port */
- link->io.NumPorts1 = 16; /* no Mako stuff anymore */
+ link->resource[0]->end = 16; /* no Mako stuff anymore */
if (!pcmcia_loop_config(link, xirc2ps_config_modem, NULL))
goto port_found;
} else {
- link->io.NumPorts1 = 18;
+ link->resource[0]->end = 18;
/* We do 2 passes here: The first one uses the regular mapping and
* the second tries again, thereby considering that the 32 ports are
* mirrored every 32 bytes. Actually we use a mirrored port for
@@ -840,14 +839,15 @@ xirc2ps_config(struct pcmcia_device * link)
}
printk(KNOT_XIRC "no ports available\n");
} else {
- link->io.NumPorts1 = 16;
+ link->io_lines = 10;
+ link->resource[0]->end = 16;
for (ioaddr = 0x300; ioaddr < 0x400; ioaddr += 0x10) {
- link->io.BasePort1 = ioaddr;
- if (!(err=pcmcia_request_io(link, &link->io)))
+ link->resource[0]->start = ioaddr;
+ if (!(err = pcmcia_request_io(link)))
goto port_found;
}
- link->io.BasePort1 = 0; /* let CS decide */
- if ((err=pcmcia_request_io(link, &link->io)))
+ link->resource[0]->start = 0; /* let CS decide */
+ if ((err = pcmcia_request_io(link)))
goto config_error;
}
port_found:
diff --git a/drivers/net/wireless/airo_cs.c b/drivers/net/wireless/airo_cs.c
index b7e7f50..d241b4a 100644
--- a/drivers/net/wireless/airo_cs.c
+++ b/drivers/net/wireless/airo_cs.c
@@ -175,25 +175,23 @@ static int airo_cs_config_check(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags = p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
}
/* This reserves IO space but doesn't actually enable it */
- if (pcmcia_request_io(p_dev, &p_dev->io) != 0)
+ if (pcmcia_request_io(p_dev) != 0)
return -ENODEV;
/*
diff --git a/drivers/net/wireless/atmel_cs.c b/drivers/net/wireless/atmel_cs.c
index 65b3aed..3b63216 100644
--- a/drivers/net/wireless/atmel_cs.c
+++ b/drivers/net/wireless/atmel_cs.c
@@ -190,25 +190,23 @@ static int atmel_config_check(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags = p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
}
/* This reserves IO space but doesn't actually enable it */
- return pcmcia_request_io(p_dev, &p_dev->io);
+ return pcmcia_request_io(p_dev);
}
static int atmel_config(struct pcmcia_device *link)
diff --git a/drivers/net/wireless/b43/pcmcia.c b/drivers/net/wireless/b43/pcmcia.c
index f71bc78..7c9af82 100644
--- a/drivers/net/wireless/b43/pcmcia.c
+++ b/drivers/net/wireless/b43/pcmcia.c
@@ -77,10 +77,6 @@ static int __devinit b43_pcmcia_probe(struct pcmcia_device *dev)
dev->conf.Attributes = CONF_ENABLE_IRQ;
dev->conf.IntType = INT_MEMORY_AND_IO;
- dev->io.BasePort2 = 0;
- dev->io.NumPorts2 = 0;
- dev->io.Attributes2 = 0;
-
win.Attributes = WIN_ADDR_SPACE_MEM | WIN_MEMORY_TYPE_CM |
WIN_ENABLE | WIN_DATA_WIDTH_16 |
WIN_USE_WAIT;
diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
index 4e13ced..ba54d1b 100644
--- a/drivers/net/wireless/hostap/hostap_cs.c
+++ b/drivers/net/wireless/hostap/hostap_cs.c
@@ -519,30 +519,24 @@ static int prism2_config_check(struct pcmcia_device *p_dev,
PDEBUG(DEBUG_EXTRA, "IO window settings: cfg->io.nwin=%d "
"dflt->io.nwin=%d\n",
cfg->io.nwin, dflt->io.nwin);
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- PDEBUG(DEBUG_EXTRA, "io->flags = 0x%04X, "
- "io.base=0x%04x, len=%d\n", io->flags,
- io->win[0].base, io->win[0].len);
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = io->flags &
- CISTPL_IO_LINES_MASK;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags = p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
}
/* This reserves IO space but doesn't actually enable it */
- return pcmcia_request_io(p_dev, &p_dev->io);
+ return pcmcia_request_io(p_dev);
}
static int prism2_config(struct pcmcia_device *link)
diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
index be4c475..9c29839 100644
--- a/drivers/net/wireless/libertas/if_cs.c
+++ b/drivers/net/wireless/libertas/if_cs.c
@@ -801,9 +801,9 @@ static int if_cs_ioprobe(struct pcmcia_device *p_dev,
unsigned int vcc,
void *priv_data)
{
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- p_dev->io.BasePort1 = cfg->io.win[0].base;
- p_dev->io.NumPorts1 = cfg->io.win[0].len;
+ p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
+ p_dev->resource[0]->start = cfg->io.win[0].base;
+ p_dev->resource[0]->end = cfg->io.win[0].len;
/* Do we need to allocate an interrupt? */
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
@@ -815,7 +815,7 @@ static int if_cs_ioprobe(struct pcmcia_device *p_dev,
}
/* This reserves IO space but doesn't actually enable it */
- return pcmcia_request_io(p_dev, &p_dev->io);
+ return pcmcia_request_io(p_dev);
}
static int if_cs_probe(struct pcmcia_device *p_dev)
diff --git a/drivers/net/wireless/orinoco/orinoco_cs.c b/drivers/net/wireless/orinoco/orinoco_cs.c
index 6d514b5..ef46a2d 100644
--- a/drivers/net/wireless/orinoco/orinoco_cs.c
+++ b/drivers/net/wireless/orinoco/orinoco_cs.c
@@ -191,25 +191,23 @@ static int orinoco_cs_config_check(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags = p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
/* This reserves IO space but doesn't actually enable it */
- if (pcmcia_request_io(p_dev, &p_dev->io) != 0)
+ if (pcmcia_request_io(p_dev) != 0)
goto next_entry;
}
return 0;
diff --git a/drivers/net/wireless/orinoco/spectrum_cs.c b/drivers/net/wireless/orinoco/spectrum_cs.c
index 4f8f55e..873877e 100644
--- a/drivers/net/wireless/orinoco/spectrum_cs.c
+++ b/drivers/net/wireless/orinoco/spectrum_cs.c
@@ -253,25 +253,23 @@ static int spectrum_cs_config_check(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags = p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
/* This reserves IO space but doesn't actually enable it */
- if (pcmcia_request_io(p_dev, &p_dev->io) != 0)
+ if (pcmcia_request_io(p_dev) != 0)
goto next_entry;
}
return 0;
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index 165beb6..b83d5ef 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -315,9 +315,8 @@ static int ray_probe(struct pcmcia_device *p_dev)
local->finder = p_dev;
/* The io structure describes IO port mapping. None used here */
- p_dev->io.NumPorts1 = 0;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = 5;
+ p_dev->resource[0]->end = 0;
+ p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
/* General socket configuration */
p_dev->conf.Attributes = CONF_ENABLE_IRQ;
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index a32f220..a1cc2d4 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -1884,9 +1884,8 @@ static int wl3501_probe(struct pcmcia_device *p_dev)
struct wl3501_card *this;
/* The io structure describes IO port mapping */
- p_dev->io.NumPorts1 = 16;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = 5;
+ p_dev->resource[0]->end = 16;
+ p_dev->resource[0]->flags = IO_DATA_PATH_WIDTH_8;
/* General socket configuration */
p_dev->conf.Attributes = CONF_ENABLE_IRQ;
@@ -1932,13 +1931,14 @@ static int wl3501_config(struct pcmcia_device *link)
/* Try allocating IO ports. This tries a few fixed addresses. If you
* want, you can also read the card's config table to pick addresses --
* see the serial driver for an example. */
+ link->io_lines = 5;
for (j = 0x280; j < 0x400; j += 0x20) {
/* The '^0x300' is so that we probe 0x300-0x3ff first, then
* 0x200-0x2ff, and so on, because this seems safer */
- link->io.BasePort1 = j;
- link->io.BasePort2 = link->io.BasePort1 + 0x10;
- i = pcmcia_request_io(link, &link->io);
+ link->resource[0]->start = j;
+ link->resource[1]->start = link->resource[0]->start + 0x10;
+ i = pcmcia_request_io(link);
if (i == 0)
break;
}
diff --git a/drivers/parport/parport_cs.c b/drivers/parport/parport_cs.c
index fc1639c..23e50f4 100644
--- a/drivers/parport/parport_cs.c
+++ b/drivers/parport/parport_cs.c
@@ -101,8 +101,8 @@ static int parport_probe(struct pcmcia_device *link)
link->priv = info;
info->p_dev = link;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -143,16 +143,16 @@ static int parport_config_check(struct pcmcia_device *p_dev,
{
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
if (epp_mode)
p_dev->conf.ConfigIndex |= FORCE_EPP_MODE;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
- p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin == 2) {
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
- if (pcmcia_request_io(p_dev, &p_dev->io) != 0)
+ if (pcmcia_request_io(p_dev) != 0)
return -ENODEV;
return 0;
}
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index fcd48da..a48d4a9 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -70,7 +70,8 @@ static int alloc_io_space(struct pcmcia_socket *s, struct resource *res,
res->flags |= IORESOURCE_IO;
- dev_dbg(&s->dev, "alloc_io_space request for %pR\n", res);
+ dev_dbg(&s->dev, "alloc_io_space request for %pR, %d lines\n",
+ res, lines);
align = base ? (lines ? 1<<lines : 0) : 1;
if (align && (align < num)) {
@@ -541,38 +542,25 @@ EXPORT_SYMBOL(pcmcia_request_configuration);
* pcmcia_request_io() - attempt to reserve port ranges for PCMCIA devices
*
* pcmcia_request_io() attepts to reserve the IO port ranges specified in
- * struct pcmcia_device *p_dev->resource[0] and *p_dev->resource[1]. The
+ * &struct pcmcia_device @p_dev->resource[0] and @p_dev->resource[1]. The
* "start" value is the requested start of the IO port resource; "end"
- * relfects the number of ports requested.
- *
- * If io_req_t is passed, those values are converted automatically.
+ * reflects the number of ports requested. The number of IO lines requested
+ * is specified in &struct pcmcia_device @p_dev->io_lines.
*/
-int pcmcia_request_io(struct pcmcia_device *p_dev, io_req_t *req)
+int pcmcia_request_io(struct pcmcia_device *p_dev)
{
struct pcmcia_socket *s = p_dev->socket;
- config_t *c;
+ config_t *c = p_dev->function_config;
int ret = -EINVAL;
- unsigned int lines = req->IOAddrLines;
mutex_lock(&s->ops_mutex);
+ dev_dbg(&s->dev, "pcmcia_request_io: %pR , %pR", &c->io[0], &c->io[1]);
if (!(s->state & SOCKET_PRESENT)) {
dev_dbg(&s->dev, "pcmcia_request_io: No card present\n");
goto out;
}
- c = p_dev->function_config;
- if (req) {
- c->io[0].start = req->BasePort1;
- c->io[0].end = req->NumPorts1;
- c->io[0].flags |= req->Attributes1;
- c->io[1].start = req->BasePort2;
- c->io[1].end = req->NumPorts2;
- c->io[1].flags |= req->Attributes2;
- }
-
- dev_dbg(&s->dev, "pcmcia_request_io: %pR , %pR", &c->io[0], &c->io[1]);
-
if (c->state & CONFIG_LOCKED) {
dev_dbg(&s->dev, "Configuration is locked\n");
goto out;
@@ -582,12 +570,12 @@ int pcmcia_request_io(struct pcmcia_device *p_dev, io_req_t *req)
goto out;
}
- ret = alloc_io_space(s, &c->io[0], lines);
+ ret = alloc_io_space(s, &c->io[0], p_dev->io_lines);
if (ret)
goto out;
if (c->io[1].end) {
- ret = alloc_io_space(s, &c->io[1], lines);
+ ret = alloc_io_space(s, &c->io[1], p_dev->io_lines);
if (ret) {
release_io_space(s, &c->io[0]);
goto out;
@@ -598,11 +586,6 @@ int pcmcia_request_io(struct pcmcia_device *p_dev, io_req_t *req)
c->state |= CONFIG_IO_REQ;
p_dev->_io = 1;
- if (!ret) {
- req->BasePort1 = c->io[0].start;
- req->BasePort2 = c->io[1].start;
- }
-
dev_dbg(&s->dev, "pcmcia_request_io succeeded: %pR , %pR",
&c->io[0], &c->io[1]);
out:
diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c
index 3e040f5..61f49bd 100644
--- a/drivers/scsi/pcmcia/aha152x_stub.c
+++ b/drivers/scsi/pcmcia/aha152x_stub.c
@@ -100,9 +100,8 @@ static int aha152x_probe(struct pcmcia_device *link)
info->p_dev = link;
link->priv = info;
- link->io.NumPorts1 = 0x20;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.IOAddrLines = 10;
+ link->resource[0]->end = 0x20;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
link->conf.Present = PRESENT_OPTION;
@@ -130,15 +129,16 @@ static int aha152x_config_check(struct pcmcia_device *p_dev,
unsigned int vcc,
void *priv_data)
{
+ p_dev->io_lines = 10;
/* For New Media T&J, look for a SCSI window */
if (cfg->io.win[0].len >= 0x20)
- p_dev->io.BasePort1 = cfg->io.win[0].base;
+ p_dev->resource[0]->start = cfg->io.win[0].base;
else if ((cfg->io.nwin > 1) &&
(cfg->io.win[1].len >= 0x20))
- p_dev->io.BasePort1 = cfg->io.win[1].base;
+ p_dev->resource[0]->start = cfg->io.win[1].base;
if ((cfg->io.nwin > 0) &&
- (p_dev->io.BasePort1 < 0xffff)) {
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ (p_dev->resource[0]->start < 0xffff)) {
+ if (!pcmcia_request_io(p_dev))
return 0;
}
return -EINVAL;
diff --git a/drivers/scsi/pcmcia/fdomain_stub.c b/drivers/scsi/pcmcia/fdomain_stub.c
index 49a9a0a..13dbe5c 100644
--- a/drivers/scsi/pcmcia/fdomain_stub.c
+++ b/drivers/scsi/pcmcia/fdomain_stub.c
@@ -83,9 +83,8 @@ static int fdomain_probe(struct pcmcia_device *link)
info->p_dev = link;
link->priv = info;
- link->io.NumPorts1 = 0x10;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.IOAddrLines = 10;
+ link->resource[0]->end = 0x10;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
link->conf.Present = PRESENT_OPTION;
@@ -112,8 +111,9 @@ static int fdomain_config_check(struct pcmcia_device *p_dev,
unsigned int vcc,
void *priv_data)
{
- p_dev->io.BasePort1 = cfg->io.win[0].base;
- return pcmcia_request_io(p_dev, &p_dev->io);
+ p_dev->io_lines = 10;
+ p_dev->resource[0]->start = cfg->io.win[0].base;
+ return pcmcia_request_io(p_dev);
}
diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c
index d929891..8bb598b 100644
--- a/drivers/scsi/pcmcia/nsp_cs.c
+++ b/drivers/scsi/pcmcia/nsp_cs.c
@@ -1558,9 +1558,8 @@ static int nsp_cs_probe(struct pcmcia_device *link)
nsp_dbg(NSP_DEBUG_INIT, "info=0x%p", info);
/* The io structure describes IO port mapping */
- link->io.NumPorts1 = 0x10;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.IOAddrLines = 10; /* not used */
+ link->resource[0]->end = 0x10;
+ link->resource[0]->flags = IO_DATA_PATH_WIDTH_AUTO;
/* General socket configuration */
link->conf.Attributes = CONF_ENABLE_IRQ;
@@ -1641,24 +1640,23 @@ static int nsp_cs_config_check(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags =
+ p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
/* This reserves IO space but doesn't actually enable it */
- if (pcmcia_request_io(p_dev, &p_dev->io) != 0)
+ if (pcmcia_request_io(p_dev) != 0)
goto next_entry;
}
diff --git a/drivers/scsi/pcmcia/qlogic_stub.c b/drivers/scsi/pcmcia/qlogic_stub.c
index 4e2b83f..eb775f1 100644
--- a/drivers/scsi/pcmcia/qlogic_stub.c
+++ b/drivers/scsi/pcmcia/qlogic_stub.c
@@ -156,9 +156,8 @@ static int qlogic_probe(struct pcmcia_device *link)
return -ENOMEM;
info->p_dev = link;
link->priv = info;
- link->io.NumPorts1 = 16;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.IOAddrLines = 10;
+ link->resource[0]->end = 16;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
link->conf.Present = PRESENT_OPTION;
@@ -185,13 +184,14 @@ static int qlogic_config_check(struct pcmcia_device *p_dev,
unsigned int vcc,
void *priv_data)
{
- p_dev->io.BasePort1 = cfg->io.win[0].base;
- p_dev->io.NumPorts1 = cfg->io.win[0].len;
+ p_dev->io_lines = 10;
+ p_dev->resource[0]->start = cfg->io.win[0].base;
+ p_dev->resource[0]->end = cfg->io.win[0].len;
- if (p_dev->io.BasePort1 == 0)
+ if (p_dev->resource[0]->start == 0)
return -ENODEV;
- return pcmcia_request_io(p_dev, &p_dev->io);
+ return pcmcia_request_io(p_dev);
}
static int qlogic_config(struct pcmcia_device * link)
diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c
index d99c0cb..321e390 100644
--- a/drivers/scsi/pcmcia/sym53c500_cs.c
+++ b/drivers/scsi/pcmcia/sym53c500_cs.c
@@ -690,13 +690,14 @@ static int SYM53C500_config_check(struct pcmcia_device *p_dev,
unsigned int vcc,
void *priv_data)
{
- p_dev->io.BasePort1 = cfg->io.win[0].base;
- p_dev->io.NumPorts1 = cfg->io.win[0].len;
+ p_dev->io_lines = 10;
+ p_dev->resource[0]->start = cfg->io.win[0].base;
+ p_dev->resource[0]->end = cfg->io.win[0].len;
- if (p_dev->io.BasePort1 == 0)
+ if (p_dev->resource[0]->start == 0)
return -ENODEV;
- return pcmcia_request_io(p_dev, &p_dev->io);
+ return pcmcia_request_io(p_dev);
}
static int
@@ -858,9 +859,8 @@ SYM53C500_probe(struct pcmcia_device *link)
return -ENOMEM;
info->p_dev = link;
link->priv = info;
- link->io.NumPorts1 = 16;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.IOAddrLines = 10;
+ link->resource[0]->end = 16;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
index fe7adcd..141c695 100644
--- a/drivers/serial/serial_cs.c
+++ b/drivers/serial/serial_cs.c
@@ -335,8 +335,8 @@ static int serial_probe(struct pcmcia_device *link)
info->p_dev = link;
link->priv = info;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- link->io.NumPorts1 = 8;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[0]->end = 8;
link->conf.Attributes = CONF_ENABLE_IRQ;
if (do_sound) {
link->conf.Attributes |= CONF_ENABLE_SPKR;
@@ -424,12 +424,13 @@ static int simple_config_check(struct pcmcia_device *p_dev,
p_dev->conf.Vpp =
cf->vpp1.param[CISTPL_POWER_VNOM] / 10000;
+ p_dev->io_lines = ((*try & 0x1) == 0) ?
+ 16 : cf->io.flags & CISTPL_IO_LINES_MASK;
+
if ((cf->io.nwin > 0) && (cf->io.win[0].len == size_table[(*try >> 1)])
&& (cf->io.win[0].base != 0)) {
- p_dev->io.BasePort1 = cf->io.win[0].base;
- p_dev->io.IOAddrLines = ((*try & 0x1) == 0) ?
- 16 : cf->io.flags & CISTPL_IO_LINES_MASK;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ p_dev->resource[0]->start = cf->io.win[0].base;
+ if (!pcmcia_request_io(p_dev))
return 0;
}
return -EINVAL;
@@ -446,9 +447,9 @@ static int simple_config_check_notpicky(struct pcmcia_device *p_dev,
if ((cf->io.nwin > 0) && ((cf->io.flags & CISTPL_IO_LINES_MASK) <= 3)) {
for (j = 0; j < 5; j++) {
- p_dev->io.BasePort1 = base[j];
- p_dev->io.IOAddrLines = base[j] ? 16 : 3;
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ p_dev->resource[0]->start = base[j];
+ p_dev->io_lines = base[j] ? 16 : 3;
+ if (!pcmcia_request_io(p_dev))
return 0;
}
}
@@ -521,9 +522,9 @@ static int multi_config_check(struct pcmcia_device *p_dev,
/* The quad port cards have bad CIS's, so just look for a
window larger than 8 ports and assume it will be right */
if ((cf->io.nwin == 1) && (cf->io.win[0].len > 8)) {
- p_dev->io.BasePort1 = cf->io.win[0].base;
- p_dev->io.IOAddrLines = cf->io.flags & CISTPL_IO_LINES_MASK;
- if (!pcmcia_request_io(p_dev, &p_dev->io)) {
+ p_dev->resource[0]->start = cf->io.win[0].base;
+ p_dev->io_lines = cf->io.flags & CISTPL_IO_LINES_MASK;
+ if (!pcmcia_request_io(p_dev)) {
*base2 = p_dev->resource[0]->start + 8;
return 0;
}
@@ -540,10 +541,10 @@ static int multi_config_check_notpicky(struct pcmcia_device *p_dev,
int *base2 = priv_data;
if (cf->io.nwin == 2) {
- p_dev->io.BasePort1 = cf->io.win[0].base;
- p_dev->io.BasePort2 = cf->io.win[1].base;
- p_dev->io.IOAddrLines = cf->io.flags & CISTPL_IO_LINES_MASK;
- if (!pcmcia_request_io(p_dev, &p_dev->io)) {
+ p_dev->resource[0]->start = cf->io.win[0].base;
+ p_dev->resource[1]->start = cf->io.win[1].base;
+ p_dev->io_lines = cf->io.flags & CISTPL_IO_LINES_MASK;
+ if (!pcmcia_request_io(p_dev)) {
*base2 = p_dev->resource[1]->start;
return 0;
}
@@ -557,10 +558,10 @@ static int multi_config(struct pcmcia_device *link)
int i, base2 = 0;
/* First, look for a generic full-sized window */
- link->io.NumPorts1 = info->multi * 8;
+ link->resource[0]->end = info->multi * 8;
if (pcmcia_loop_config(link, multi_config_check, &base2)) {
/* If that didn't work, look for two windows */
- link->io.NumPorts1 = link->io.NumPorts2 = 8;
+ link->resource[0]->end = link->resource[1]->end = 8;
info->multi = 2;
if (pcmcia_loop_config(link, multi_config_check_notpicky,
&base2)) {
diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c
index 208f1b7..7cf0ccb 100644
--- a/drivers/staging/comedi/drivers/cb_das16_cs.c
+++ b/drivers/staging/comedi/drivers/cb_das16_cs.c
@@ -736,24 +736,22 @@ static int das16cs_pcmcia_config_loop(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags = p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
/* This reserves IO space but doesn't actually enable it */
- return pcmcia_request_io(p_dev, &p_dev->io);
+ return pcmcia_request_io(p_dev);
}
return 0;
diff --git a/drivers/staging/comedi/drivers/das08_cs.c b/drivers/staging/comedi/drivers/das08_cs.c
index c4cfcff..9ee677f 100644
--- a/drivers/staging/comedi/drivers/das08_cs.c
+++ b/drivers/staging/comedi/drivers/das08_cs.c
@@ -224,24 +224,23 @@ static int das08_pcmcia_config_loop(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags = p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
/* This reserves IO space but doesn't actually enable it */
- return pcmcia_request_io(p_dev, &p_dev->io);
+ return pcmcia_request_io(p_dev);
}
return 0;
}
diff --git a/drivers/staging/comedi/drivers/ni_daq_700.c b/drivers/staging/comedi/drivers/ni_daq_700.c
index 6d56957..7e41ad9 100644
--- a/drivers/staging/comedi/drivers/ni_daq_700.c
+++ b/drivers/staging/comedi/drivers/ni_daq_700.c
@@ -571,24 +571,22 @@ static int dio700_pcmcia_config_loop(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags = p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
/* This reserves IO space but doesn't actually enable it */
- if (pcmcia_request_io(p_dev, &p_dev->io) != 0)
+ if (pcmcia_request_io(p_dev) != 0)
return -ENODEV;
}
diff --git a/drivers/staging/comedi/drivers/ni_daq_dio24.c b/drivers/staging/comedi/drivers/ni_daq_dio24.c
index 29e1daf..b2483f8 100644
--- a/drivers/staging/comedi/drivers/ni_daq_dio24.c
+++ b/drivers/staging/comedi/drivers/ni_daq_dio24.c
@@ -323,24 +323,22 @@ static int dio24_pcmcia_config_loop(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags = p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
/* This reserves IO space but doesn't actually enable it */
- if (pcmcia_request_io(p_dev, &p_dev->io) != 0)
+ if (pcmcia_request_io(p_dev) != 0)
return -ENODEV;
}
diff --git a/drivers/staging/comedi/drivers/ni_labpc_cs.c b/drivers/staging/comedi/drivers/ni_labpc_cs.c
index fb10987..c1444b4 100644
--- a/drivers/staging/comedi/drivers/ni_labpc_cs.c
+++ b/drivers/staging/comedi/drivers/ni_labpc_cs.c
@@ -301,24 +301,22 @@ static int labpc_pcmcia_config_loop(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ | CONF_ENABLE_PULSE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags = p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
/* This reserves IO space but doesn't actually enable it */
- if (pcmcia_request_io(p_dev, &p_dev->io) != 0)
+ if (pcmcia_request_io(p_dev) != 0)
return -ENODEV;
}
diff --git a/drivers/staging/comedi/drivers/ni_mio_cs.c b/drivers/staging/comedi/drivers/ni_mio_cs.c
index f37dc22..d50b6c4 100644
--- a/drivers/staging/comedi/drivers/ni_mio_cs.c
+++ b/drivers/staging/comedi/drivers/ni_mio_cs.c
@@ -264,8 +264,8 @@ static const dev_info_t dev_info = "ni_mio_cs";
static int cs_attach(struct pcmcia_device *link)
{
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- link->io.NumPorts1 = 16;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16;
+ link->resource[0]->end = 16;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -310,13 +310,12 @@ static int mio_pcmcia_config_loop(struct pcmcia_device *p_dev,
{
int base, ret;
- p_dev->io.NumPorts1 = cfg->io.win[0].len;
- p_dev->io.IOAddrLines = cfg->io.flags & CISTPL_IO_LINES_MASK;
- p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = cfg->io.win[0].len;
+ p_dev->io_lines = cfg->io.flags & CISTPL_IO_LINES_MASK;
for (base = 0x000; base < 0x400; base += 0x20) {
- p_dev->io.BasePort1 = base;
- ret = pcmcia_request_io(p_dev, &p_dev->io);
+ p_dev->resource[0]->start = base;
+ ret = pcmcia_request_io(p_dev);
if (!ret)
return 0;
}
diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c
index 80b8d57..25f4e67 100644
--- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c
+++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c
@@ -1102,26 +1102,24 @@ static int daqp_pcmcia_config_loop(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- if (!(io->flags & CISTPL_IO_8BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- if (!(io->flags & CISTPL_IO_16BIT))
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
+ p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
+ p_dev->resource[0]->flags |=
+ pcmcia_io_cfg_data_width(io->flags);
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
if (io->nwin > 1) {
- p_dev->io.Attributes2 = p_dev->io.Attributes1;
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->flags = p_dev->resource[0]->flags;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
}
/* This reserves IO space but doesn't actually enable it */
- return pcmcia_request_io(p_dev, &p_dev->io);
+ return pcmcia_request_io(p_dev);
}
static void daqp_cs_config(struct pcmcia_device *link)
diff --git a/drivers/staging/wlags49_h2/wl_cs.c b/drivers/staging/wlags49_h2/wl_cs.c
index 2361537..f15afd2 100644
--- a/drivers/staging/wlags49_h2/wl_cs.c
+++ b/drivers/staging/wlags49_h2/wl_cs.c
@@ -145,9 +145,8 @@ static int wl_adapter_attach(struct pcmcia_device *link)
return -ENOMEM;
}
- link->io.NumPorts1 = HCF_NUM_IO_PORTS;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
- link->io.IOAddrLines = 6;
+ link->resource[0]->end = HCF_NUM_IO_PORTS;
+ link->resource[0]->flags = IO_DATA_PATH_WIDTH_16;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
link->conf.ConfigIndex = 5;
@@ -305,8 +304,9 @@ void wl_adapter_insert( struct pcmcia_device *link )
/* Do we need to allocate an interrupt? */
link->conf.Attributes |= CONF_ENABLE_IRQ;
+ link->io_lines = 6;
- ret = pcmcia_request_io(link, &link->io);
+ ret = pcmcia_request_io(link);
if (ret != 0)
goto failed;
diff --git a/drivers/telephony/ixj_pcmcia.c b/drivers/telephony/ixj_pcmcia.c
index a801036..a1900e5 100644
--- a/drivers/telephony/ixj_pcmcia.c
+++ b/drivers/telephony/ixj_pcmcia.c
@@ -32,9 +32,8 @@ static int ixj_probe(struct pcmcia_device *p_dev)
{
dev_dbg(&p_dev->dev, "ixj_attach()\n");
/* Create new ixj device */
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = 3;
+ p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ p_dev->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
p_dev->conf.IntType = INT_MEMORY_AND_IO;
p_dev->priv = kzalloc(sizeof(struct ixj_info_t), GFP_KERNEL);
if (!p_dev->priv) {
@@ -120,13 +119,14 @@ static int ixj_config_check(struct pcmcia_device *p_dev,
{
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
+ p_dev->io_lines = 3;
if (io->nwin == 2) {
- p_dev->io.BasePort2 = io->win[1].base;
- p_dev->io.NumPorts2 = io->win[1].len;
+ p_dev->resource[1]->start = io->win[1].base;
+ p_dev->resource[1]->end = io->win[1].len;
}
- if (!pcmcia_request_io(p_dev, &p_dev->io))
+ if (!pcmcia_request_io(p_dev))
return 0;
}
return -ENODEV;
diff --git a/drivers/usb/host/sl811_cs.c b/drivers/usb/host/sl811_cs.c
index 22e04f2..0e13a00 100644
--- a/drivers/usb/host/sl811_cs.c
+++ b/drivers/usb/host/sl811_cs.c
@@ -162,16 +162,16 @@ static int sl811_cs_config_check(struct pcmcia_device *p_dev,
p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
/* IO window settings */
- p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
+ p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
+ p_dev->io_lines = io->flags & CISTPL_IO_LINES_MASK;
- p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
- p_dev->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
- p_dev->io.BasePort1 = io->win[0].base;
- p_dev->io.NumPorts1 = io->win[0].len;
+ p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ p_dev->resource[0]->start = io->win[0].base;
+ p_dev->resource[0]->end = io->win[0].len;
- return pcmcia_request_io(p_dev, &p_dev->io);
+ return pcmcia_request_io(p_dev);
}
pcmcia_disable_device(p_dev);
return -ENODEV;
diff --git a/include/pcmcia/cs.h b/include/pcmcia/cs.h
index 0cd8c70..ad71bb5 100644
--- a/include/pcmcia/cs.h
+++ b/include/pcmcia/cs.h
@@ -56,23 +56,6 @@ typedef struct config_req_t {
#define INT_CARDBUS 0x04
#define INT_ZOOMED_VIDEO 0x08
-/* For RequestIO and ReleaseIO */
-typedef struct io_req_t {
- u_int BasePort1;
- u_int NumPorts1;
- u_int Attributes1;
- u_int BasePort2;
- u_int NumPorts2;
- u_int Attributes2;
- u_int IOAddrLines;
-} io_req_t;
-
-/* Attributes for RequestIO and ReleaseIO */
-#define IO_DATA_PATH_WIDTH 0x18
-#define IO_DATA_PATH_WIDTH_8 0x00
-#define IO_DATA_PATH_WIDTH_16 0x08
-#define IO_DATA_PATH_WIDTH_AUTO 0x10
-
/* Bits in IRQInfo1 field */
#define IRQ_NMI_ID 0x01
#define IRQ_IOCK_ID 0x02
diff --git a/include/pcmcia/ds.h b/include/pcmcia/ds.h
index 3dafd7d..0748bec 100644
--- a/include/pcmcia/ds.h
+++ b/include/pcmcia/ds.h
@@ -80,7 +80,6 @@ struct pcmcia_device {
struct list_head socket_device_list;
/* deprecated, will be cleaned up soon */
- io_req_t io;
config_req_t conf;
window_handle_t win;
@@ -88,6 +87,8 @@ struct pcmcia_device {
unsigned int irq;
struct resource *resource[MAX_IO_WIN];
+ unsigned int io_lines; /* number of I/O lines */
+
/* Is the device suspended? */
u16 suspended:1;
@@ -179,7 +180,7 @@ int pcmcia_read_config_byte(struct pcmcia_device *p_dev, off_t where, u8 *val);
int pcmcia_write_config_byte(struct pcmcia_device *p_dev, off_t where, u8 val);
/* device configuration */
-int pcmcia_request_io(struct pcmcia_device *p_dev, io_req_t *req);
+int pcmcia_request_io(struct pcmcia_device *p_dev);
int __must_check
__pcmcia_request_exclusive_irq(struct pcmcia_device *p_dev,
@@ -206,6 +207,22 @@ int pcmcia_map_mem_page(struct pcmcia_device *p_dev, window_handle_t win,
int pcmcia_modify_configuration(struct pcmcia_device *p_dev, modconf_t *mod);
void pcmcia_disable_device(struct pcmcia_device *p_dev);
+/* IO ports */
+#define IO_DATA_PATH_WIDTH 0x18
+#define IO_DATA_PATH_WIDTH_8 0x00
+#define IO_DATA_PATH_WIDTH_16 0x08
+#define IO_DATA_PATH_WIDTH_AUTO 0x10
+
+/* convert flag found in cfgtable to data path width parameter */
+static inline int pcmcia_io_cfg_data_width(unsigned int flags)
+{
+ if (!(flags & CISTPL_IO_8BIT))
+ return IO_DATA_PATH_WIDTH_16;
+ if (!(flags & CISTPL_IO_16BIT))
+ return IO_DATA_PATH_WIDTH_8;
+ return IO_DATA_PATH_WIDTH_AUTO;
+}
+
#endif /* __KERNEL__ */
#endif /* _LINUX_DS_H */
diff --git a/sound/pcmcia/pdaudiocf/pdaudiocf.c b/sound/pcmcia/pdaudiocf/pdaudiocf.c
index 9f897bc..7ab9174 100644
--- a/sound/pcmcia/pdaudiocf/pdaudiocf.c
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf.c
@@ -139,8 +139,8 @@ static int snd_pdacf_probe(struct pcmcia_device *link)
pdacf->p_dev = link;
link->priv = pdacf;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.NumPorts1 = 16;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
+ link->resource[0]->end = 16;
link->conf.Attributes = CONF_ENABLE_IRQ | CONF_ENABLE_PULSE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -219,7 +219,7 @@ static int pdacf_config(struct pcmcia_device *link)
snd_printdd(KERN_DEBUG "pdacf_config called\n");
link->conf.ConfigIndex = 0x5;
- ret = pcmcia_request_io(link, &link->io);
+ ret = pcmcia_request_io(link);
if (ret)
goto failed;
diff --git a/sound/pcmcia/vx/vxpocket.c b/sound/pcmcia/vx/vxpocket.c
index f23c235..a6edfc3 100644
--- a/sound/pcmcia/vx/vxpocket.c
+++ b/sound/pcmcia/vx/vxpocket.c
@@ -159,8 +159,8 @@ static int snd_vxpocket_new(struct snd_card *card, int ibl,
vxp->p_dev = link;
link->priv = chip;
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.NumPorts1 = 16;
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
+ link->resource[0]->end = 16;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -226,7 +226,7 @@ static int vxpocket_config(struct pcmcia_device *link)
strcpy(chip->card->driver, vxp440_hw.name);
}
- ret = pcmcia_request_io(link, &link->io);
+ ret = pcmcia_request_io(link);
if (ret)
goto failed;
--
1.7.0.4
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 13/18] pcmcia: remove memreq_t
[not found] <20100805220511.GA7040@comet.dominikbrodowski.net>
` (3 preceding siblings ...)
2010-08-05 22:06 ` [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io() Dominik Brodowski
@ 2010-08-05 22:06 ` Dominik Brodowski
2010-08-08 13:07 ` [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io() Komuro
` (3 subsequent siblings)
8 siblings, 0 replies; 23+ messages in thread
From: Dominik Brodowski @ 2010-08-05 22:06 UTC (permalink / raw)
To: linux-pcmcia
Cc: Dominik Brodowski, netdev, linux-wireless, linux-ide, linux-usb,
laforge, linux-mtd, linux-bluetooth, alsa-devel, linux-serial,
Michael Buesch
Page already had to be set to 0; Offset can easily be passed as
parameter to pcmcia_map_mem_page.
CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
CC: linux-ide@vger.kernel.org
CC: linux-usb@vger.kernel.org
CC: laforge@gnumonks.org
CC: linux-mtd@lists.infradead.org
CC: linux-bluetooth@vger.kernel.org
CC: alsa-devel@alsa-project.org
CC: linux-serial@vger.kernel.org
CC: Michael Buesch <mb@bu3sch.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
---
drivers/char/pcmcia/ipwireless/main.c | 14 ++------------
drivers/isdn/hisax/sedlbauer_cs.c | 7 +++----
drivers/mtd/maps/pcmciamtd.c | 13 ++++++-------
drivers/net/pcmcia/fmvj18x_cs.c | 10 ++--------
drivers/net/pcmcia/ibmtr_cs.c | 11 +++--------
drivers/net/pcmcia/pcnet_cs.c | 14 ++++----------
drivers/net/pcmcia/smc91c92_cs.c | 9 +++------
drivers/net/pcmcia/xirc2ps_cs.c | 5 +----
drivers/net/wireless/airo_cs.c | 6 ++----
drivers/net/wireless/b43/pcmcia.c | 5 +----
drivers/net/wireless/ray_cs.c | 13 +++----------
drivers/pcmcia/pcmcia_resource.c | 9 +++------
drivers/scsi/pcmcia/nsp_cs.c | 5 ++---
drivers/staging/comedi/drivers/ni_daq_700.c | 6 ++----
drivers/staging/comedi/drivers/ni_daq_dio24.c | 6 ++----
drivers/staging/comedi/drivers/ni_labpc_cs.c | 6 ++----
include/pcmcia/cs.h | 6 ------
include/pcmcia/ds.h | 2 +-
18 files changed, 42 insertions(+), 105 deletions(-)
diff --git a/drivers/char/pcmcia/ipwireless/main.c b/drivers/char/pcmcia/ipwireless/main.c
index 5f87b9f..6c4aa4b 100644
--- a/drivers/char/pcmcia/ipwireless/main.c
+++ b/drivers/char/pcmcia/ipwireless/main.c
@@ -84,8 +84,6 @@ static int ipwireless_probe(struct pcmcia_device *p_dev,
{
struct ipw_dev *ipw = priv_data;
struct resource *io_resource;
- memreq_t memreq_attr_memory;
- memreq_t memreq_common_memory;
int ret;
p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
@@ -121,11 +119,8 @@ static int ipwireless_probe(struct pcmcia_device *p_dev,
if (ret != 0)
goto exit1;
- memreq_common_memory.CardOffset = cfg->mem.win[0].card_addr;
- memreq_common_memory.Page = 0;
-
ret = pcmcia_map_mem_page(p_dev, ipw->handle_common_memory,
- &memreq_common_memory);
+ cfg->mem.win[0].card_addr);
if (ret != 0)
goto exit2;
@@ -150,12 +145,7 @@ static int ipwireless_probe(struct pcmcia_device *p_dev,
if (ret != 0)
goto exit2;
- memreq_attr_memory.CardOffset = 0;
- memreq_attr_memory.Page = 0;
-
- ret = pcmcia_map_mem_page(p_dev, ipw->handle_attr_memory,
- &memreq_attr_memory);
-
+ ret = pcmcia_map_mem_page(p_dev, ipw->handle_attr_memory, 0);
if (ret != 0)
goto exit3;
diff --git a/drivers/isdn/hisax/sedlbauer_cs.c b/drivers/isdn/hisax/sedlbauer_cs.c
index 4755eb4..0b06dbb 100644
--- a/drivers/isdn/hisax/sedlbauer_cs.c
+++ b/drivers/isdn/hisax/sedlbauer_cs.c
@@ -232,7 +232,6 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev,
*/
if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) {
cistpl_mem_t *mem = (cfg->mem.nwin) ? &cfg->mem : &dflt->mem;
- memreq_t map;
req->Attributes = WIN_DATA_WIDTH_16|WIN_MEMORY_TYPE_CM;
req->Attributes |= WIN_ENABLE;
req->Base = mem->win[0].host_addr;
@@ -240,9 +239,9 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev,
req->AccessSpeed = 0;
if (pcmcia_request_window(p_dev, req, &p_dev->win) != 0)
return -ENODEV;
- map.Page = 0;
- map.CardOffset = mem->win[0].card_addr;
- if (pcmcia_map_mem_page(p_dev, p_dev->win, &map) != 0)
+
+ if (pcmcia_map_mem_page(p_dev, p_dev->win,
+ mem->win[0].card_addr) != 0)
return -ENODEV;
}
return 0;
diff --git a/drivers/mtd/maps/pcmciamtd.c b/drivers/mtd/maps/pcmciamtd.c
index 7948816..f97463e 100644
--- a/drivers/mtd/maps/pcmciamtd.c
+++ b/drivers/mtd/maps/pcmciamtd.c
@@ -102,7 +102,7 @@ static caddr_t remap_window(struct map_info *map, unsigned long to)
{
struct pcmciamtd_dev *dev = (struct pcmciamtd_dev *)map->map_priv_1;
window_handle_t win = (window_handle_t)map->map_priv_2;
- memreq_t mrq;
+ unsigned int offset;
int ret;
if (!pcmcia_dev_present(dev->p_dev)) {
@@ -110,15 +110,14 @@ static caddr_t remap_window(struct map_info *map, unsigned long to)
return 0;
}
- mrq.CardOffset = to & ~(dev->win_size-1);
- if(mrq.CardOffset != dev->offset) {
+ offset = to & ~(dev->win_size-1);
+ if (offset != dev->offset) {
DEBUG(2, "Remapping window from 0x%8.8x to 0x%8.8x",
- dev->offset, mrq.CardOffset);
- mrq.Page = 0;
- ret = pcmcia_map_mem_page(dev->p_dev, win, &mrq);
+ dev->offset, offset);
+ ret = pcmcia_map_mem_page(dev->p_dev, win, offset);
if (ret != 0)
return NULL;
- dev->offset = mrq.CardOffset;
+ dev->offset = offset;
}
return dev->win_base + (to & (dev->win_size-1));
}
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index 6993044..98fffb0 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -545,7 +545,6 @@ failed:
static int fmvj18x_get_hwinfo(struct pcmcia_device *link, u_char *node_id)
{
win_req_t req;
- memreq_t mem;
u_char __iomem *base;
int i, j;
@@ -558,9 +557,7 @@ static int fmvj18x_get_hwinfo(struct pcmcia_device *link, u_char *node_id)
return -1;
base = ioremap(req.Base, req.Size);
- mem.Page = 0;
- mem.CardOffset = 0;
- pcmcia_map_mem_page(link, link->win, &mem);
+ pcmcia_map_mem_page(link, link->win, 0);
/*
* MBH10304 CISTPL_FUNCE_LAN_NODE_ID format
@@ -594,7 +591,6 @@ static int fmvj18x_get_hwinfo(struct pcmcia_device *link, u_char *node_id)
static int fmvj18x_setup_mfc(struct pcmcia_device *link)
{
win_req_t req;
- memreq_t mem;
int i;
struct net_device *dev = link->priv;
unsigned int ioaddr;
@@ -614,9 +610,7 @@ static int fmvj18x_setup_mfc(struct pcmcia_device *link)
return -1;
}
- mem.Page = 0;
- mem.CardOffset = 0;
- i = pcmcia_map_mem_page(link, link->win, &mem);
+ i = pcmcia_map_mem_page(link, link->win, 0);
if (i != 0) {
iounmap(lp->base);
lp->base = NULL;
diff --git a/drivers/net/pcmcia/ibmtr_cs.c b/drivers/net/pcmcia/ibmtr_cs.c
index 3fd8595..c0b3cdd 100644
--- a/drivers/net/pcmcia/ibmtr_cs.c
+++ b/drivers/net/pcmcia/ibmtr_cs.c
@@ -211,7 +211,6 @@ static int __devinit ibmtr_config(struct pcmcia_device *link)
struct net_device *dev = info->dev;
struct tok_info *ti = netdev_priv(dev);
win_req_t req;
- memreq_t mem;
int i, ret;
dev_dbg(&link->dev, "ibmtr_config\n");
@@ -250,9 +249,7 @@ static int __devinit ibmtr_config(struct pcmcia_device *link)
if (ret)
goto failed;
- mem.CardOffset = mmiobase;
- mem.Page = 0;
- ret = pcmcia_map_mem_page(link, link->win, &mem);
+ ret = pcmcia_map_mem_page(link, link->win, mmiobase);
if (ret)
goto failed;
ti->mmio = ioremap(req.Base, req.Size);
@@ -267,13 +264,11 @@ static int __devinit ibmtr_config(struct pcmcia_device *link)
if (ret)
goto failed;
- mem.CardOffset = srambase;
- mem.Page = 0;
- ret = pcmcia_map_mem_page(link, info->sram_win_handle, &mem);
+ ret = pcmcia_map_mem_page(link, info->sram_win_handle, srambase);
if (ret)
goto failed;
- ti->sram_base = mem.CardOffset >> 12;
+ ti->sram_base = srambase >> 12;
ti->sram_virt = ioremap(req.Base, req.Size);
ti->sram_phys = req.Base;
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index 9c5fc9d..c3edfe4 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -301,7 +301,6 @@ static hw_info_t *get_hwinfo(struct pcmcia_device *link)
{
struct net_device *dev = link->priv;
win_req_t req;
- memreq_t mem;
u_char __iomem *base, *virt;
int i, j;
@@ -314,10 +313,8 @@ static hw_info_t *get_hwinfo(struct pcmcia_device *link)
return NULL;
virt = ioremap(req.Base, req.Size);
- mem.Page = 0;
for (i = 0; i < NR_INFO; i++) {
- mem.CardOffset = hw_info[i].offset & ~(req.Size-1);
- pcmcia_map_mem_page(link, link->win, &mem);
+ pcmcia_map_mem_page(link, link->win, hw_info[i].offset & ~(req.Size-1));
base = &virt[hw_info[i].offset & (req.Size-1)];
if ((readb(base+0) == hw_info[i].a0) &&
(readb(base+2) == hw_info[i].a1) &&
@@ -1463,7 +1460,6 @@ static int setup_shmem_window(struct pcmcia_device *link, int start_pg,
struct net_device *dev = link->priv;
pcnet_dev_t *info = PRIV(dev);
win_req_t req;
- memreq_t mem;
int i, window_size, offset, ret;
window_size = (stop_pg - start_pg) << 8;
@@ -1482,11 +1478,9 @@ static int setup_shmem_window(struct pcmcia_device *link, int start_pg,
if (ret)
goto failed;
- mem.CardOffset = (start_pg << 8) + cm_offset;
- offset = mem.CardOffset % window_size;
- mem.CardOffset -= offset;
- mem.Page = 0;
- ret = pcmcia_map_mem_page(link, link->win, &mem);
+ offset = (start_pg << 8) + cm_offset;
+ offset -= offset % window_size;
+ ret = pcmcia_map_mem_page(link, link->win, offset);
if (ret)
goto failed;
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index a5e4779..377367d 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -443,7 +443,7 @@ static int mhz_mfc_config(struct pcmcia_device *link)
struct net_device *dev = link->priv;
struct smc_private *smc = netdev_priv(dev);
win_req_t req;
- memreq_t mem;
+ unsigned int offset;
int i;
link->conf.Attributes |= CONF_ENABLE_SPKR;
@@ -467,11 +467,8 @@ static int mhz_mfc_config(struct pcmcia_device *link)
return -ENODEV;
smc->base = ioremap(req.Base, req.Size);
- mem.CardOffset = mem.Page = 0;
- if (smc->manfid == MANFID_MOTOROLA)
- mem.CardOffset = link->conf.ConfigBase;
- i = pcmcia_map_mem_page(link, link->win, &mem);
-
+ offset = (smc->manfid == MANFID_MOTOROLA) ? link->conf.ConfigBase : 0;
+ i = pcmcia_map_mem_page(link, link->win, offset);
if ((i == 0) &&
(smc->manfid == MANFID_MEGAHERTZ) &&
(smc->cardid == PRODID_MEGAHERTZ_EM3288))
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index 8fb0eb1..4eb6f98 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -870,7 +870,6 @@ xirc2ps_config(struct pcmcia_device * link)
if (local->dingo) {
win_req_t req;
- memreq_t mem;
/* Reset the modem's BAR to the correct value
* This is necessary because in the RequestConfiguration call,
@@ -898,9 +897,7 @@ xirc2ps_config(struct pcmcia_device * link)
goto config_error;
local->dingo_ccr = ioremap(req.Base,0x1000) + 0x0800;
- mem.CardOffset = 0x0;
- mem.Page = 0;
- if ((err = pcmcia_map_mem_page(link, link->win, &mem)))
+ if ((err = pcmcia_map_mem_page(link, link->win, 0)))
goto config_error;
/* Setup the CCRs; there are no infos in the CIS about the Ethernet
diff --git a/drivers/net/wireless/airo_cs.c b/drivers/net/wireless/airo_cs.c
index d241b4a..d47672c 100644
--- a/drivers/net/wireless/airo_cs.c
+++ b/drivers/net/wireless/airo_cs.c
@@ -207,16 +207,14 @@ static int airo_cs_config_check(struct pcmcia_device *p_dev,
*/
if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) {
cistpl_mem_t *mem = (cfg->mem.nwin) ? &cfg->mem : &dflt->mem;
- memreq_t map;
req->Attributes = WIN_DATA_WIDTH_16|WIN_MEMORY_TYPE_CM;
req->Base = mem->win[0].host_addr;
req->Size = mem->win[0].len;
req->AccessSpeed = 0;
if (pcmcia_request_window(p_dev, req, &p_dev->win) != 0)
return -ENODEV;
- map.Page = 0;
- map.CardOffset = mem->win[0].card_addr;
- if (pcmcia_map_mem_page(p_dev, p_dev->win, &map) != 0)
+ if (pcmcia_map_mem_page(p_dev, p_dev->win,
+ mem->win[0].card_addr) != 0)
return -ENODEV;
}
/* If we got this far, we're cool! */
diff --git a/drivers/net/wireless/b43/pcmcia.c b/drivers/net/wireless/b43/pcmcia.c
index 7c9af82..ffe1f89 100644
--- a/drivers/net/wireless/b43/pcmcia.c
+++ b/drivers/net/wireless/b43/pcmcia.c
@@ -64,7 +64,6 @@ static int __devinit b43_pcmcia_probe(struct pcmcia_device *dev)
{
struct ssb_bus *ssb;
win_req_t win;
- memreq_t mem;
int err = -ENOMEM;
int res = 0;
@@ -87,9 +86,7 @@ static int __devinit b43_pcmcia_probe(struct pcmcia_device *dev)
if (res != 0)
goto err_kfree_ssb;
- mem.CardOffset = 0;
- mem.Page = 0;
- res = pcmcia_map_mem_page(dev, dev->win, &mem);
+ res = pcmcia_map_mem_page(dev, dev->win, 0);
if (res != 0)
goto err_disable;
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index b83d5ef..7eb339a 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -393,7 +393,6 @@ static int ray_config(struct pcmcia_device *link)
int ret = 0;
int i;
win_req_t req;
- memreq_t mem;
struct net_device *dev = (struct net_device *)link->priv;
ray_dev_t *local = netdev_priv(dev);
@@ -430,9 +429,7 @@ static int ray_config(struct pcmcia_device *link)
ret = pcmcia_request_window(link, &req, &link->win);
if (ret)
goto failed;
- mem.CardOffset = 0x0000;
- mem.Page = 0;
- ret = pcmcia_map_mem_page(link, link->win, &mem);
+ ret = pcmcia_map_mem_page(link, link->win, 0);
if (ret)
goto failed;
local->sram = ioremap(req.Base, req.Size);
@@ -446,9 +443,7 @@ static int ray_config(struct pcmcia_device *link)
ret = pcmcia_request_window(link, &req, &local->rmem_handle);
if (ret)
goto failed;
- mem.CardOffset = 0x8000;
- mem.Page = 0;
- ret = pcmcia_map_mem_page(link, local->rmem_handle, &mem);
+ ret = pcmcia_map_mem_page(link, local->rmem_handle, 0x8000);
if (ret)
goto failed;
local->rmem = ioremap(req.Base, req.Size);
@@ -462,9 +457,7 @@ static int ray_config(struct pcmcia_device *link)
ret = pcmcia_request_window(link, &req, &local->amem_handle);
if (ret)
goto failed;
- mem.CardOffset = 0x0000;
- mem.Page = 0;
- ret = pcmcia_map_mem_page(link, local->amem_handle, &mem);
+ ret = pcmcia_map_mem_page(link, local->amem_handle, 0);
if (ret)
goto failed;
local->amem = ioremap(req.Base, req.Size);
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index a48d4a9..975baaa 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -193,7 +193,7 @@ EXPORT_SYMBOL(pcmcia_write_config_byte);
int pcmcia_map_mem_page(struct pcmcia_device *p_dev, window_handle_t wh,
- memreq_t *req)
+ unsigned int offset)
{
struct pcmcia_socket *s = p_dev->socket;
int ret;
@@ -201,12 +201,9 @@ int pcmcia_map_mem_page(struct pcmcia_device *p_dev, window_handle_t wh,
wh--;
if (wh >= MAX_WIN)
return -EINVAL;
- if (req->Page != 0) {
- dev_dbg(&s->dev, "failure: requested page is zero\n");
- return -EINVAL;
- }
+
mutex_lock(&s->ops_mutex);
- s->win[wh].card_start = req->CardOffset;
+ s->win[wh].card_start = offset;
ret = s->ops->set_mem_map(s, &s->win[wh]);
if (ret)
dev_warn(&s->dev, "failed to set_mem_map\n");
diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c
index 8bb598b..dd9b403 100644
--- a/drivers/scsi/pcmcia/nsp_cs.c
+++ b/drivers/scsi/pcmcia/nsp_cs.c
@@ -1661,7 +1661,6 @@ static int nsp_cs_config_check(struct pcmcia_device *p_dev,
}
if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) {
- memreq_t map;
cistpl_mem_t *mem =
(cfg->mem.nwin) ? &cfg->mem : &dflt->mem;
cfg_mem->req.Attributes = WIN_DATA_WIDTH_16|WIN_MEMORY_TYPE_CM;
@@ -1673,8 +1672,8 @@ static int nsp_cs_config_check(struct pcmcia_device *p_dev,
cfg_mem->req.AccessSpeed = 0;
if (pcmcia_request_window(p_dev, &cfg_mem->req, &p_dev->win) != 0)
goto next_entry;
- map.Page = 0; map.CardOffset = mem->win[0].card_addr;
- if (pcmcia_map_mem_page(p_dev, p_dev->win, &map) != 0)
+ if (pcmcia_map_mem_page(p_dev, p_dev->win,
+ mem->win[0].card_addr) != 0)
goto next_entry;
cfg_mem->data->MmioAddress = (unsigned long) ioremap_nocache(cfg_mem->req.Base, cfg_mem->req.Size);
diff --git a/drivers/staging/comedi/drivers/ni_daq_700.c b/drivers/staging/comedi/drivers/ni_daq_700.c
index 7e41ad9..abaa40b 100644
--- a/drivers/staging/comedi/drivers/ni_daq_700.c
+++ b/drivers/staging/comedi/drivers/ni_daq_700.c
@@ -556,7 +556,6 @@ static int dio700_pcmcia_config_loop(struct pcmcia_device *p_dev,
void *priv_data)
{
win_req_t *req = priv_data;
- memreq_t map;
if (cfg->index == 0)
return -ENODEV;
@@ -602,9 +601,8 @@ static int dio700_pcmcia_config_loop(struct pcmcia_device *p_dev,
req->AccessSpeed = 0;
if (pcmcia_request_window(p_dev, req, &p_dev->win))
return -ENODEV;
- map.Page = 0;
- map.CardOffset = mem->win[0].card_addr;
- if (pcmcia_map_mem_page(p_dev, p_dev->win, &map))
+ if (pcmcia_map_mem_page(p_dev, p_dev->win,
+ mem->win[0].card_addr))
return -ENODEV;
}
/* If we got this far, we're cool! */
diff --git a/drivers/staging/comedi/drivers/ni_daq_dio24.c b/drivers/staging/comedi/drivers/ni_daq_dio24.c
index b2483f8..caccece 100644
--- a/drivers/staging/comedi/drivers/ni_daq_dio24.c
+++ b/drivers/staging/comedi/drivers/ni_daq_dio24.c
@@ -308,7 +308,6 @@ static int dio24_pcmcia_config_loop(struct pcmcia_device *p_dev,
void *priv_data)
{
win_req_t *req = priv_data;
- memreq_t map;
if (cfg->index == 0)
return -ENODEV;
@@ -354,9 +353,8 @@ static int dio24_pcmcia_config_loop(struct pcmcia_device *p_dev,
req->AccessSpeed = 0;
if (pcmcia_request_window(p_dev, req, &p_dev->win))
return -ENODEV;
- map.Page = 0;
- map.CardOffset = mem->win[0].card_addr;
- if (pcmcia_map_mem_page(p_dev, p_dev->win, &map))
+ if (pcmcia_map_mem_page(p_dev, p_dev->win,
+ mem->win[0].card_addr))
return -ENODEV;
}
/* If we got this far, we're cool! */
diff --git a/drivers/staging/comedi/drivers/ni_labpc_cs.c b/drivers/staging/comedi/drivers/ni_labpc_cs.c
index c1444b4..94d9f7f 100644
--- a/drivers/staging/comedi/drivers/ni_labpc_cs.c
+++ b/drivers/staging/comedi/drivers/ni_labpc_cs.c
@@ -286,7 +286,6 @@ static int labpc_pcmcia_config_loop(struct pcmcia_device *p_dev,
void *priv_data)
{
win_req_t *req = priv_data;
- memreq_t map;
if (cfg->index == 0)
return -ENODEV;
@@ -332,9 +331,8 @@ static int labpc_pcmcia_config_loop(struct pcmcia_device *p_dev,
req->AccessSpeed = 0;
if (pcmcia_request_window(p_dev, req, &p_dev->win))
return -ENODEV;
- map.Page = 0;
- map.CardOffset = mem->win[0].card_addr;
- if (pcmcia_map_mem_page(p_dev, p_dev->win, &map))
+ if (pcmcia_map_mem_page(p_dev, p_dev->win,
+ mem->win[0].card_addr))
return -ENODEV;
}
/* If we got this far, we're cool! */
diff --git a/include/pcmcia/cs.h b/include/pcmcia/cs.h
index 583a4e3..e4faf44 100644
--- a/include/pcmcia/cs.h
+++ b/include/pcmcia/cs.h
@@ -68,12 +68,6 @@ typedef struct config_req_t {
#define PRESENT_IOBASE_3 0x100
#define PRESENT_IOSIZE 0x200
-/* For GetMemPage, MapMemPage */
-typedef struct memreq_t {
- u_int CardOffset;
- u_short Page;
-} memreq_t;
-
/* For RequestWindow */
typedef struct win_req_t {
u_int Attributes;
diff --git a/include/pcmcia/ds.h b/include/pcmcia/ds.h
index 0748bec..a2bf3a7 100644
--- a/include/pcmcia/ds.h
+++ b/include/pcmcia/ds.h
@@ -202,7 +202,7 @@ int pcmcia_request_window(struct pcmcia_device *p_dev, win_req_t *req,
window_handle_t *wh);
int pcmcia_release_window(struct pcmcia_device *p_dev, window_handle_t win);
int pcmcia_map_mem_page(struct pcmcia_device *p_dev, window_handle_t win,
- memreq_t *req);
+ unsigned int offset);
int pcmcia_modify_configuration(struct pcmcia_device *p_dev, modconf_t *mod);
void pcmcia_disable_device(struct pcmcia_device *p_dev);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
[not found] <20100805220511.GA7040@comet.dominikbrodowski.net>
` (4 preceding siblings ...)
2010-08-05 22:06 ` [PATCH 13/18] pcmcia: remove memreq_t Dominik Brodowski
@ 2010-08-08 13:07 ` Komuro
2010-08-21 1:49 ` Komuro
` (2 subsequent siblings)
8 siblings, 0 replies; 23+ messages in thread
From: Komuro @ 2010-08-08 13:07 UTC (permalink / raw)
Cc: alsa-devel, linux-usb, linux-serial, netdev, linux-pcmcia,
linux-wireless, laforge, linux-ide, linux-mtd, Dominik Brodowski,
Michael Buesch
Hi,
>
>- link->io.IOAddrLines =10;
>- link->io.Attributes1 = IO_DATA_PATH_WIDTH_16;
>+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16;
link->io_lines should be set here?
>@@ -840,14 +839,15 @@ xirc2ps_config(struct pcmcia_device * link)
> }
> printk(KNOT_XIRC "no ports available\n");
> } else {
>- link->io.NumPorts1 = 16;
>+ link->io_lines = 10;
>+ link->resource[0]->end = 16;
Best Regards
Komuro
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
[not found] <20100805220511.GA7040@comet.dominikbrodowski.net>
` (5 preceding siblings ...)
2010-08-08 13:07 ` [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io() Komuro
@ 2010-08-21 1:49 ` Komuro
2010-08-30 6:27 ` Dominik Brodowski
2010-08-21 4:34 ` Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io() Komuro
2010-08-27 22:41 ` [BUG] " Komuro
8 siblings, 1 reply; 23+ messages in thread
From: Komuro @ 2010-08-21 1:49 UTC (permalink / raw)
To: Dominik Brodowski; +Cc: linux-pcmcia, linux-serial
Hi
>--- a/drivers/serial/serial_cs.c
>+++ b/drivers/serial/serial_cs.c
>@@static int serial_probe(struct pcmcia_device *link)
> info->p_dev = link;
> link->priv = info;
>
>- link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
>- link->io.NumPorts1 = 8;
>+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
>+ link->resource[0]->end = 8;
resource[0]->end should be end of port-address?
@@ -463,13 +463,13 @@ static int simple_config(struct pcmcia_device *link)
/* If the card is already configured, look up the port and irq */
if (link->function_config) {
unsigned int port = 0;
- if ((link->io.BasePort2 != 0) &&
- (link->io.NumPorts2 == 8)) {
- port = link->io.BasePort2;
+ if ((link->resource[1]->end != 0) &&
+ (resource_size(link->resource[1]) == 8)) {
+ port = link->resource[1]->end;
info->slave = 1;
It should be link->resource[0];
(resource_size(link->resource[0]) == 8)) {
port = link->resource[0]->end;
>static int multi_config(struct pcmcia_device *link)
> int i, base2 = 0;
>
> /* First, look for a generic full-sized window */
>- link->io.NumPorts1 = info->multi * 8;
>+ link->resource[0]->end = info->multi * 8;
> if (pcmcia_loop_config(link, multi_config_check, &base2)) {
> /* If that didn't work, look for two windows */
>- link->io.NumPorts1 = link->io.NumPorts2 = 8;
>+ link->resource[0]->end = link->resource[1]->end = 8;
> info->multi = 2;
> if (pcmcia_loop_config(link, multi_config_check_notpicky,
> &base2)) {
resource[0]->end , link->resource[1]->end should be end of port-address?
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
[not found] <20100805220511.GA7040@comet.dominikbrodowski.net>
` (6 preceding siblings ...)
2010-08-21 1:49 ` Komuro
@ 2010-08-21 4:34 ` Komuro
2010-08-27 22:41 ` [BUG] " Komuro
8 siblings, 0 replies; 23+ messages in thread
From: Komuro @ 2010-08-21 4:34 UTC (permalink / raw)
To: Dominik Brodowski; +Cc: linux-pcmcia, linux-serial
Hi
>@@ -463,13 +463,13 @@ static int simple_config(struct pcmcia_device *link)
> /* If the card is already configured, look up the port and irq */
> if (link->function_config) {
> unsigned int port = 0;
>- if ((link->io.BasePort2 != 0) &&
>- (link->io.NumPorts2 == 8)) {
>- port = link->io.BasePort2;
>+ if ((link->resource[1]->end != 0) &&
>+ (resource_size(link->resource[1]) == 8)) {
>+ port = link->resource[1]->end;
> info->slave = 1;
sorry,
It should be link->resource[1]->start;
(resource_size(link->resource[1]) == 8)) {
port = link->resource[1]->start; << HERE!!
^ permalink raw reply [flat|nested] 23+ messages in thread
* [BUG] [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
[not found] <20100805220511.GA7040@comet.dominikbrodowski.net>
` (7 preceding siblings ...)
2010-08-21 4:34 ` Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io() Komuro
@ 2010-08-27 22:41 ` Komuro
8 siblings, 0 replies; 23+ messages in thread
From: Komuro @ 2010-08-27 22:41 UTC (permalink / raw)
To: Dominik Brodowski; +Cc: linux-pcmcia, linux-serial
Hi,
Something is strange in pcmcia_request_configuration? at kernel 2.6.36-rc1?
serial part of multi-function card does not work at 2.6.36-rc1.
output of /proc/ioports
[2.6.36-rc1]
02e8-02ef : pcmcia_socket0
02e8-02ef : pcmcia0.0
02e8-02ef : serial
0300-030f : pcmcia_socket0
0300-0008 : pcmcia0.0 <== Strange!!
[2.6.35]
02e8-02ef : pcmcia_socket0
02e8-02ef : serial
0300-030f : pcmcia_socket0
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-08-21 1:49 ` Komuro
@ 2010-08-30 6:27 ` Dominik Brodowski
2010-08-31 12:05 ` Komuro
0 siblings, 1 reply; 23+ messages in thread
From: Dominik Brodowski @ 2010-08-30 6:27 UTC (permalink / raw)
To: Komuro; +Cc: linux-pcmcia, linux-serial
Hey,
does this patch help? If not, could you please enable dynamic debug by
issuing
$ echo "module pcmcia +p" > /sys/kernel/debug/dynamic_debug/control
Thanks,
Dominik
From: Dominik Brodowski <linux@dominikbrodowski.net>
Date: Mon, 30 Aug 2010 08:18:54 +0200
Subject: [PATCH] pcmcia: fix multifunction card handling in serial_cs.c
We shouldn't overwrite pre-set values, and we should also
set the port address to the beginning, and not the end of
the 8-port range.
Reported-by: Komuro <komurojun-mbn@nifty.com>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
index 141c695..dd0fa12 100644
--- a/drivers/serial/serial_cs.c
+++ b/drivers/serial/serial_cs.c
@@ -335,8 +335,6 @@ static int serial_probe(struct pcmcia_device *link)
info->p_dev = link;
link->priv = info;
- link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
- link->resource[0]->end = 8;
link->conf.Attributes = CONF_ENABLE_IRQ;
if (do_sound) {
link->conf.Attributes |= CONF_ENABLE_SPKR;
@@ -466,7 +464,7 @@ static int simple_config(struct pcmcia_device *link)
unsigned int port = 0;
if ((link->resource[1]->end != 0) &&
(resource_size(link->resource[1]) == 8)) {
- port = link->resource[1]->end;
+ port = link->resource[1]->start;
info->slave = 1;
} else if ((info->manfid == MANFID_OSITECH) &&
(resource_size(link->resource[0]) == 0x40)) {
@@ -479,6 +477,9 @@ static int simple_config(struct pcmcia_device *link)
}
}
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[0]->end = 8;
+
/* First pass: look for a config entry that looks normal.
* Two tries: without IO aliases, then with aliases */
for (try = 0; try < 4; try++)
@@ -558,6 +559,7 @@ static int multi_config(struct pcmcia_device *link)
int i, base2 = 0;
/* First, look for a generic full-sized window */
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
link->resource[0]->end = info->multi * 8;
if (pcmcia_loop_config(link, multi_config_check, &base2)) {
/* If that didn't work, look for two windows */
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-08-30 6:27 ` Dominik Brodowski
@ 2010-08-31 12:05 ` Komuro
2010-09-04 10:54 ` Dominik Brodowski
2010-09-04 12:03 ` Komuro
0 siblings, 2 replies; 23+ messages in thread
From: Komuro @ 2010-08-31 12:05 UTC (permalink / raw)
To: Dominik Brodowski; +Cc: linux-pcmcia, linux-serial
Hi,
The serial part still does not work.
>does this patch help? If not, could you please enable dynamic debug by
>issuing
I will try it later.
>
>Hey,
>
>does this patch help? If not, could you please enable dynamic debug by
>issuing
>
>$ echo "module pcmcia +p" > /sys/kernel/debug/dynamic_debug/control
>
>Thanks,
> Dominik
>
>
>From: Dominik Brodowski <linux@dominikbrodowski.net>
>Date: Mon, 30 Aug 2010 08:18:54 +0200
>Subject: [PATCH] pcmcia: fix multifunction card handling in serial_cs.c
>
>We shouldn't overwrite pre-set values, and we should also
>set the port address to the beginning, and not the end of
>the 8-port range.
>
>Reported-by: Komuro <komurojun-mbn@nifty.com>
>Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
>
>diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
>index 141c695..dd0fa12 100644
>--- a/drivers/serial/serial_cs.c
>+++ b/drivers/serial/serial_cs.c
>@@ -335,8 +335,6 @@ static int serial_probe(struct pcmcia_device *link)
> info->p_dev = link;
> link->priv = info;
>
>- link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
>- link->resource[0]->end = 8;
> link->conf.Attributes = CONF_ENABLE_IRQ;
> if (do_sound) {
> link->conf.Attributes |= CONF_ENABLE_SPKR;
>@@ -466,7 +464,7 @@ static int simple_config(struct pcmcia_device *link)
> unsigned int port = 0;
> if ((link->resource[1]->end != 0) &&
> (resource_size(link->resource[1]) == 8)) {
>- port = link->resource[1]->end;
>+ port = link->resource[1]->start;
> info->slave = 1;
> } else if ((info->manfid == MANFID_OSITECH) &&
> (resource_size(link->resource[0]) == 0x40)) {
>@@ -479,6 +477,9 @@ static int simple_config(struct pcmcia_device *link)
> }
> }
>
>+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
>+ link->resource[0]->end = 8;
>+
> /* First pass: look for a config entry that looks normal.
> * Two tries: without IO aliases, then with aliases */
> for (try = 0; try < 4; try++)
>@@ -558,6 +559,7 @@ static int multi_config(struct pcmcia_device *link)
> int i, base2 = 0;
>
> /* First, look for a generic full-sized window */
>+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
> link->resource[0]->end = info->multi * 8;
> if (pcmcia_loop_config(link, multi_config_check, &base2)) {
> /* If that didn't work, look for two windows */
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-08-31 12:05 ` Komuro
@ 2010-09-04 10:54 ` Dominik Brodowski
2010-09-04 12:03 ` Komuro
1 sibling, 0 replies; 23+ messages in thread
From: Dominik Brodowski @ 2010-09-04 10:54 UTC (permalink / raw)
To: Komuro; +Cc: linux-pcmcia, linux-serial
Dear Komuro,
On Tue, Aug 31, 2010 at 09:05:26PM +0900, Komuro wrote:
> Hi,
>
> The serial part still does not work.
>
>
> >does this patch help? If not, could you please enable dynamic debug by
> >issuing
>
> I will try it later.
any update on this, by chance?
Thanks & best wishes,
Dominik
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-08-31 12:05 ` Komuro
2010-09-04 10:54 ` Dominik Brodowski
@ 2010-09-04 12:03 ` Komuro
2010-09-04 17:43 ` Dominik Brodowski
2010-09-07 12:24 ` Komuro
1 sibling, 2 replies; 23+ messages in thread
From: Komuro @ 2010-09-04 12:03 UTC (permalink / raw)
To: Dominik Brodowski; +Cc: linux-pcmcia, linux-serial
Hi,
>
>$ echo "module pcmcia +p" > /sys/kernel/debug/dynamic_debug/control
>
Which kernel .config option do I need to enable dynamic_debug?
My kernel does not have
/sys/kernel/debug/dynamic_debug/control.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-09-04 12:03 ` Komuro
@ 2010-09-04 17:43 ` Dominik Brodowski
2010-09-07 12:24 ` Komuro
1 sibling, 0 replies; 23+ messages in thread
From: Dominik Brodowski @ 2010-09-04 17:43 UTC (permalink / raw)
To: Komuro; +Cc: linux-pcmcia, linux-serial
Hey,
On Sat, Sep 04, 2010 at 09:03:40PM +0900, Komuro wrote:
> >$ echo "module pcmcia +p" > /sys/kernel/debug/dynamic_debug/control
> >
>
> Which kernel .config option do I need to enable dynamic_debug?
CONFIG_DYNAMIC_DEBUG=y
Then mount debugfs to /sys/kernel/debug, if it isn't done automatically
anyway.
> My kernel does not have
> /sys/kernel/debug/dynamic_debug/control.
Thanks!
Dominik
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Re: Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-09-04 12:03 ` Komuro
2010-09-04 17:43 ` Dominik Brodowski
@ 2010-09-07 12:24 ` Komuro
2010-09-07 17:41 ` Dominik Brodowski
` (2 more replies)
1 sibling, 3 replies; 23+ messages in thread
From: Komuro @ 2010-09-07 12:24 UTC (permalink / raw)
To: Dominik Brodowski; +Cc: linux-pcmcia, linux-serial
[-- Attachment #1: Type: text/plain, Size: 134 bytes --]
Hi,
Attached file is the output of /sys/kernel/debug/dynamic_debug/control.
kernel 2.6..36-rc3. xirc2pcs_cs multi-function card.
[-- Attachment #2: control.txt --]
[-- Type: text/plain, Size: 36390 bytes --]
# filename:lineno [module]function flags format
arch/x86/kernel/cpu/perfctr-watchdog.c:244 [perfctr_watchdog]write_watchdog_counter - "setting %s to -0x%08Lx\012"
arch/x86/kernel/cpu/perfctr-watchdog.c:255 [perfctr_watchdog]write_watchdog_counter32 - "setting %s to -0x%08Lx\012"
arch/x86/kernel/acpi/boot.c:998 [boot]mp_config_acpi_legacy_irqs - "Bus #%d is ISA\012"
arch/x86/kernel/smpboot.c:1190 [smpboot]native_smp_cpus_done - "Boot done.\012"
arch/x86/kernel/smpboot.c:497 [smpboot]impress_friends - "Before bogocount - setting activated=1.\012"
arch/x86/kernel/smpboot.c:487 [smpboot]impress_friends - "Before bogomips.\012"
arch/x86/kernel/smpboot.c:928 [smpboot]native_cpu_up - "do_boot_cpu failed %d\012"
arch/x86/kernel/smpboot.c:913 [smpboot]native_cpu_up - "do_boot_cpu %d Already started\012"
arch/x86/kernel/smpboot.c:901 [smpboot]native_cpu_up - "++++++++++++++++++++=_---CPU UP %u\012"
arch/x86/kernel/smpboot.c:850 [smpboot]do_boot_cpu - "CPU%d: has booted.\012"
arch/x86/kernel/smpboot.c:831 [smpboot]do_boot_cpu - "After Callout %d.\012"
arch/x86/kernel/smpboot.c:829 [smpboot]do_boot_cpu - "Before Callout %d.\012"
arch/x86/kernel/smpboot.c:804 [smpboot]do_boot_cpu - "Setting warm reset code and vector.\012"
/usr/src/linux-2.6.36-rc3/arch/x86/include/asm/smpboot_hooks.h:21 [smpboot]smpboot_setup_warm_reset_vector - "3.\012"
/usr/src/linux-2.6.36-rc3/arch/x86/include/asm/smpboot_hooks.h:18 [smpboot]smpboot_setup_warm_reset_vector - "2.\012"
/usr/src/linux-2.6.36-rc3/arch/x86/include/asm/smpboot_hooks.h:15 [smpboot]smpboot_setup_warm_reset_vector - "1.\012"
arch/x86/kernel/smpboot.c:683 [smpboot]wakeup_secondary_cpu_via_init - "After Startup.\012"
arch/x86/kernel/smpboot.c:670 [smpboot]wakeup_secondary_cpu_via_init - "Waiting for send to finish...\012"
arch/x86/kernel/smpboot.c:668 [smpboot]wakeup_secondary_cpu_via_init - "Startup point 1.\012"
arch/x86/kernel/smpboot.c:651 [smpboot]wakeup_secondary_cpu_via_init - "After apic_write.\012"
arch/x86/kernel/smpboot.c:647 [smpboot]wakeup_secondary_cpu_via_init - "Sending STARTUP #%d.\012"
arch/x86/kernel/smpboot.c:644 [smpboot]wakeup_secondary_cpu_via_init - "#startup loops: %d.\012"
arch/x86/kernel/smpboot.c:617 [smpboot]wakeup_secondary_cpu_via_init - "Waiting for send to finish...\012"
arch/x86/kernel/smpboot.c:611 [smpboot]wakeup_secondary_cpu_via_init - "Deasserting INIT.\012"
arch/x86/kernel/smpboot.c:606 [smpboot]wakeup_secondary_cpu_via_init - "Waiting for send to finish...\012"
arch/x86/kernel/smpboot.c:595 [smpboot]wakeup_secondary_cpu_via_init - "Asserting INIT.\012"
arch/x86/kernel/smpboot.c:277 [smpboot]smp_callin - "Stack at about %p\012"
arch/x86/kernel/smpboot.c:257 [smpboot]smp_callin - "CALLIN, before setup_local_APIC().\012"
arch/x86/kernel/smpboot.c:222 [smpboot]smp_callin - "CPU#%d (phys ID: %d) waiting for CALLOUT\012"
arch/x86/kernel/smpboot.c:568 [smpboot]wakeup_secondary_cpu_via_nmi - "NMI sent.\012"
arch/x86/kernel/smpboot.c:555 [smpboot]wakeup_secondary_cpu_via_nmi - "Waiting for send to finish...\012"
arch/x86/kernel/tsc_sync.c:151 [tsc_sync]check_tsc_sync_source - "TSC synchronization [CPU#%d -> CPU#%d]: passed\012"
arch/x86/kernel/apic/apic.c:1779 [apic]smp_error_interrupt - "APIC error on CPU%d: %02x(%02x)\012"
arch/x86/kernel/apic/io_apic.c:3948 [io_apic]io_apic_set_pci_routing - "Pin %d-%d already programmed\012"
arch/x86/kernel/apic/io_apic.c:1584 [io_apic]setup_IO_APIC_irq_extra - "Pin %d-%d already programmed\012"
arch/x86/mm/init_32.c:1031 [init_32]set_kernel_text_ro - "Set kernel text: %lx - %lx for read only\012"
arch/x86/mm/init_32.c:1017 [init_32]set_kernel_text_rw - "Set kernel text: %lx - %lx for read write\012"
kernel/pm_qos_params.c:395 [pm_qos_params]pm_qos_power_write - "<3>%s, %d, 0x%x\012"
kernel/freezer.c:123 [freezer]cancel_freezing - " clean up: %s\012"
kernel/freezer.c:60 [freezer]refrigerator - "%s left refrigerator\012"
kernel/freezer.c:41 [freezer]refrigerator - "%s entered refrigerator\012"
kernel/power/suspend.c:291 [suspend]enter_state - "PM: Finishing wakeup.\012"
kernel/power/suspend.c:287 [suspend]enter_state - "PM: Entering %s sleep\012"
kernel/power/suspend.c:279 [suspend]enter_state - "PM: Preparing system for %s sleep\012"
kernel/irq/manage.c:443 [manage]__irq_set_trigger - "No set_type function for IRQ %d (%s)\012"
fs/notify/fsnotify.c:193 [fsnotify]send_to_group - "%s: group=%p to_tell=%p mnt=%p mask=%x inode_mark=%p inode_test_mask=%x vfsmount_mark=%p vfsmount_test_mask=%x data=%p data_is=%d cookie=%d event=%p\012"
fs/notify/notification.c:407 [notification]fsnotify_create_event - "%s: event=%p to_tell=%p mask=%x data=%p data_type=%d\012"
fs/notify/notification.c:365 [notification]fsnotify_clone_event - "%s: old_event=%p new_event=%p\012"
fs/notify/notification.c:330 [notification]fsnotify_replace_event - "%s: old_event=%p new_event=%p\012"
fs/notify/notification.c:243 [notification]fsnotify_remove_notify_event - "%s: group=%p\012"
fs/notify/notification.c:149 [notification]fsnotify_add_notify_event - "%s: group=%p event=%p priv=%p\012"
fs/notify/notification.c:90 [notification]fsnotify_put_event - "%s: event=%p\012"
fs/notify/inotify/inotify_fsnotify.c:107 [inotify_fsnotify]inotify_handle_event - "%s: group=%p event=%p to_tell=%p mask=%x\012"
fs/notify/inotify/inotify_user.c:295 [inotify_user]inotify_release - "%s: group=%p\012"
fs/notify/inotify/inotify_user.c:320 [inotify_user]inotify_ioctl - "%s: group=%p cmd=%u\012"
fs/notify/inotify/inotify_user.c:249 [inotify_user]inotify_read - "%s: group=%p kevent=%p\012"
fs/notify/inotify/inotify_user.c:144 [inotify_user]get_one_event - "%s: group=%p event=%p\012"
fs/notify/inotify/inotify_user.c:175 [inotify_user]copy_event_to_user - "%s: group=%p event=%p\012"
fs/aio.c:92 [aio]aio_setup - "aio_setup: sizeof(struct page) = %d\012"
fs/aio.c:238 [aio]__put_ioctx - "__put_ioctx: freeing %p\012"
fs/aio.c:1776 [aio]sys_io_cancel - "calling cancel\012"
fs/aio.c:1667 [aio]do_io_submit - "EINVAL: io_submit: invalid context id\012"
fs/aio.c:1580 [aio]io_submit_one - "EINVAL: io_submit: overflow check\012"
fs/aio.c:1570 [aio]io_submit_one - "EINVAL: io_submit: reserve field set\012"
fs/aio.c:1290 [aio]sys_io_destroy - "EINVAL: io_destroy: invalid context id\012"
fs/aio.c:1258 [aio]sys_io_setup - "EINVAL: io_setup: ctx %lu nr_events %u\012"
fs/aio.c:264 [aio]ioctx_alloc - "ENOMEM: nr_events too high\012"
fs/aio.c:976 [aio]aio_complete - "added to ring %p at [%lu]\012"
fs/sysfs/file.c:147 [file]sysfs_read_file - "%s: count = %zd, ppos = %lld, buf = %s\012"
fs/sysfs/dir.c:748 [dir]__sysfs_remove_dir - "sysfs %s: removing dir\012"
fs/sysfs/bin.c:109 [bin]read - "offs = %lld, *off = %lld, count = %d\012"
fs/debugfs/inode.c:226 [debugfs]debugfs_create_file - "debugfs: creating file '%s'\012"
lib/kobject.c:767 [kobject]kset_release - "kobject: '%s' (%p): %s\012"
lib/kobject.c:185 [kobject]kobject_add_internal - "kobject: '%s' (%p): %s: parent: '%s', set: '%s'\012"
lib/kobject.c:602 [kobject]dynamic_kobj_release - "kobject: (%p): %s\012"
lib/kobject.c:573 [kobject]kobject_cleanup - "kobject: '%s': free name\012"
lib/kobject.c:567 [kobject]kobject_cleanup - "kobject: '%s' (%p): calling ktype release\012"
lib/kobject.c:561 [kobject]kobject_cleanup - "kobject: '%s' (%p): auto cleanup kobject_del\012"
lib/kobject.c:554 [kobject]kobject_cleanup - "kobject: '%s' (%p): auto cleanup 'remove' event\012"
lib/kobject.c:549 [kobject]kobject_cleanup - "kobject: '%s' (%p): does not have a release() function, it is broken and must be fixed.\012"
lib/kobject.c:544 [kobject]kobject_cleanup - "kobject: '%s' (%p): %s\012"
lib/kobject.c:93 [kobject]fill_kobj_path - "kobject: '%s' (%p): %s: path = '%s'\012"
lib/kobject_uevent.c:230 [kobject_uevent]kobject_uevent_env - "kobject: '%s' (%p): %s: uevent() returned %d\012"
lib/kobject_uevent.c:188 [kobject_uevent]kobject_uevent_env - "kobject: '%s' (%p): %s: unset subsystem caused the event to drop!\012"
lib/kobject_uevent.c:176 [kobject_uevent]kobject_uevent_env - "kobject: '%s' (%p): %s: filter function caused the event to drop!\012"
lib/kobject_uevent.c:168 [kobject_uevent]kobject_uevent_env - "kobject: '%s' (%p): %s: uevent_suppress caused the event to drop!\012"
lib/kobject_uevent.c:157 [kobject_uevent]kobject_uevent_env - "kobject: '%s' (%p): %s: attempted to send uevent without kset!\012"
lib/kobject_uevent.c:147 [kobject_uevent]kobject_uevent_env - "kobject: '%s' (%p): %s\012"
drivers/pci/probe.c:1430 [probe]pci_create_bus - "bus already known\012"
drivers/pci/probe.c:1403 [probe]pci_scan_child_bus - "bus scan returning with max=%02x\012"
drivers/pci/probe.c:1383 [probe]pci_scan_child_bus - "fixups for bus\012"
drivers/pci/probe.c:1369 [probe]pci_scan_child_bus - "scanning bus\012"
drivers/pci/probe.c:965 [probe]pci_setup_device - "found [%04x:%04x] class %06x header type %02x\012"
drivers/pci/probe.c:699 [probe]pci_scan_bridge - "bus configuration invalid, reconfiguring\012"
drivers/pci/probe.c:694 [probe]pci_scan_bridge - "scanning [bus %02x-%02x] behind bridge, pass %d\012"
drivers/pci/pci.c:2212 [pci]pci_set_mwi - "enabling Mem-Wr-Inval\012"
drivers/pci/pci.c:2109 [pci]__pci_set_master - "%s bus mastering\012"
drivers/pci/slot.c:358 [slot]pci_destroy_slot - "dev %02x, dec refcount to %d\012"
drivers/pci/slot.c:308 [slot]pci_create_slot - "dev %02x, created physical slot %s\012"
drivers/pci/slot.c:106 [slot]pci_slot_release - "dev %02x, released physical slot %s\012"
drivers/pci/quirks.c:2704 [quirks]pci_do_fixups - "calling %pF\012"
drivers/pci/pci-acpi.c:291 [pci_acpi]acpi_dev_run_wake - "ACPI handle has no context in %s!\012"
drivers/video/backlight/backlight.c:159 [backlight]backlight_store_brightness - "backlight: set brightness to %lu\012"
drivers/video/backlight/backlight.c:120 [backlight]backlight_store_power - "backlight: set power to %lu\012"
drivers/video/backlight/backlight.c:279 [backlight]backlight_device_register - "backlight_device_register: name=%s\012"
drivers/acpi/osl.c:1450 [acpi]acpi_os_validate_address - "%s %s resource: start: 0x%llx, end: 0x%llx, name: %s\012"
drivers/acpi/sleep.c:645 [acpi]acpi_pm_device_sleep_wake - "ACPI handle has no context in %s!\012"
drivers/acpi/ec.c:608 [acpi]acpi_ec_gpe_handler - "ACPI: EC: ~~~> interrupt\012"
drivers/acpi/ec.c:143 [acpi]acpi_ec_write_data - "ACPI: EC: <--- data = 0x%2.2x\012"
drivers/acpi/ec.c:131 [acpi]acpi_ec_read_data - "ACPI: EC: ---> data = 0x%2.2x\012"
drivers/acpi/ec.c:124 [acpi]acpi_ec_read_status - "ACPI: EC: ---> status = 0x%2.2x\012"
drivers/acpi/ec.c:596 [acpi]ec_check_sci - "ACPI: EC: push gpe query to the queue\012"
drivers/acpi/ec.c:571 [acpi]acpi_ec_sync_query - "ACPI: EC: push query execution (0x%2x) on queue\012"
drivers/acpi/ec.c:137 [acpi]acpi_ec_write_cmd - "ACPI: EC: <--- command = 0x%2.2x\012"
drivers/acpi/ec.c:230 [acpi]ec_poll - "ACPI: EC: controller reset, restart transaction\012"
drivers/acpi/ec.c:553 [acpi]acpi_ec_run - "ACPI: EC: stop query execution\012"
drivers/acpi/ec.c:548 [acpi]acpi_ec_run - "ACPI: EC: start query execution\012"
drivers/acpi/ec.c:323 [acpi]acpi_ec_transaction - "ACPI: EC: transaction end\012"
drivers/acpi/ec.c:303 [acpi]acpi_ec_transaction - "ACPI: EC: transaction start\012"
drivers/acpi/dock.c:350 [acpi]dock_remove_acpi_device - "error removing bus, %x\012"
drivers/acpi/dock.c:328 [acpi]dock_create_acpi_device - "error adding bus, %x\012"
drivers/acpi/dock.c:447 [acpi]eject_dock - "Failed to evaluate _EJ0!\012"
drivers/acpi/dock.c:436 [acpi]eject_dock - "No _EJ0 support for dock device\012"
drivers/acpi/pci_root.c:354 [acpi]acpi_get_pci_dev - "Not a PCI-to-PCI bridge\012"
drivers/acpi/fan.c:270 [fan]acpi_fan_add - "registered as cooling_device%d\012"
drivers/acpi/processor_driver.c:556 [processor]acpi_processor_add - "registered as cooling_device%d\012"
drivers/pnp/pnpacpi/core.c:112 [core]pnpacpi_disable_resources - "disable resources\012"
drivers/char/vt_ioctl.c:1766 [vt_ioctl]vt_move_to_console - "Suspend: Can't switch VCs."
drivers/gpu/vga/vgaarb.c:1137 [vgaarb]vga_arb_release - "uc->io_cnt == %d, uc->mem_cnt == %d\012"
drivers/gpu/vga/vgaarb.c:1125 [vgaarb]vga_arb_release - "%s\012"
drivers/gpu/vga/vgaarb.c:1095 [vgaarb]vga_arb_open - "%s\012"
drivers/gpu/vga/vgaarb.c:1082 [vgaarb]vga_arb_fpoll - "%s\012"
drivers/gpu/vga/vgaarb.c:1053 [vgaarb]vga_arb_write - "vgaarb: client 0x%p called 'decodes'\012"
drivers/gpu/vga/vgaarb.c:1017 [vgaarb]vga_arb_write - "vgaarb: vgadev %p\012"
drivers/gpu/vga/vgaarb.c:1007 [vgaarb]vga_arb_write - "vgaarb: pdev %p\012"
drivers/gpu/vga/vgaarb.c:999 [vgaarb]vga_arb_write - "vgaarb: pbus %p\012"
drivers/gpu/vga/vgaarb.c:996 [vgaarb]vga_arb_write - "vgaarb: %s ==> %x:%x:%x.%x\012"
drivers/gpu/vga/vgaarb.c:985 [vgaarb]vga_arb_write - "client 0x%p called 'target'\012"
drivers/gpu/vga/vgaarb.c:941 [vgaarb]vga_arb_write - "client 0x%p called 'trylock'\012"
drivers/gpu/vga/vgaarb.c:891 [vgaarb]vga_arb_write - "client 0x%p called 'unlock'\012"
drivers/gpu/vga/vgaarb.c:855 [vgaarb]vga_arb_write - "client 0x%p called 'lock'\012"
drivers/gpu/vga/vgaarb.c:1189 [vgaarb]pci_notify - "%s\012"
drivers/gpu/vga/vgaarb.c:598 [vgaarb]vga_update_device_decodes - "vgaarb: decoding count now is: %d\012"
drivers/gpu/vga/vgaarb.c:179 [vgaarb]__vga_tryget - "%s: owns: %d\012"
drivers/gpu/vga/vgaarb.c:178 [vgaarb]__vga_tryget - "%s: %d\012"
drivers/gpu/vga/vgaarb.c:291 [vgaarb]__vga_put - "%s\012"
drivers/serial/serial_core.c:1421 [serial_core]__uart_wait_until_sent - "uart_wait_until_sent(%d), jiffies=%lu, expire=%lu...\012"
drivers/serial/serial_core.c:578 [serial_core]uart_flush_buffer - "uart_flush_buffer(%d) called\012"
drivers/serial/serial_core.c:1461 [serial_core]uart_hangup - "uart_hangup(%d)\012"
drivers/serial/serial_core.c:1285 [serial_core]uart_close - "uart_close(%d) called\012"
drivers/serial/serial_core.c:1595 [serial_core]uart_open - "uart_open(%d) called\012"
drivers/serial/8250.c:2134 [8250]serial8250_startup - "ttyS%d - enabling bad tx status workarounds\012"
drivers/serial/8250.c:2060 [8250]serial8250_startup - "ttyS%d - using backup timer\012"
drivers/base/core.c:1812 [core]device_shutdown - "shutdown\012"
drivers/base/core.c:1809 [core]device_shutdown - "shutdown\012"
drivers/base/core.c:1725 [core]device_move - "device: '%s': %s: moving to '%s'\012"
drivers/base/core.c:1614 [core]device_rename - "device: '%s': %s: renaming to '%s'\012"
drivers/base/core.c:1461 [core]device_create_release - "device: '%s': %s\012"
drivers/base/core.c:260 [core]dev_uevent - "device: '%s': %s: dev_type uevent() returned %d\012"
drivers/base/core.c:251 [core]dev_uevent - "device: '%s': %s: class uevent() returned %d\012"
drivers/base/core.c:242 [core]dev_uevent - "device: '%s': %s: bus uevent() returned %d\012"
drivers/base/core.c:1202 [core]device_unregister - "device: '%s': %s\012"
drivers/base/core.c:969 [core]device_add - "device: '%s': %s\012"
drivers/base/sys.c:492 [sys]sysdev_resume - " %s\012"
drivers/base/sys.c:489 [sys]sysdev_resume - "Resuming type '%s':\012"
drivers/base/sys.c:483 [sys]sysdev_resume - "Resuming System Devices\012"
drivers/base/sys.c:460 [sys]sysdev_suspend - " %s\012"
drivers/base/sys.c:453 [sys]sysdev_suspend - " %s\012"
drivers/base/sys.c:406 [sys]sysdev_suspend - " %s\012"
drivers/base/sys.c:403 [sys]sysdev_suspend - "Suspending type '%s':\012"
drivers/base/sys.c:399 [sys]sysdev_suspend - "Suspending System Devices\012"
drivers/base/sys.c:389 [sys]sysdev_suspend - "Checking wake-up interrupts\012"
drivers/base/sys.c:334 [sys]sysdev_shutdown - " %s\012"
drivers/base/sys.c:330 [sys]sysdev_shutdown - "Shutting down type '%s':\012"
drivers/base/sys.c:323 [sys]sysdev_shutdown - "Shutting Down System Devices\012"
drivers/base/sys.c:271 [sys]sysdev_register - "Registering sys device '%s'\012"
drivers/base/sys.c:254 [sys]sysdev_register - "Registering sys device of class '%s'\012"
drivers/base/sys.c:157 [sys]sysdev_class_unregister - "Unregistering sysdev class '%s'\012"
drivers/base/sys.c:135 [sys]sysdev_class_register - "Registering sysdev class '%s'\012"
drivers/base/bus.c:964 [bus]bus_unregister - "bus: '%s': unregistering\012"
drivers/base/bus.c:935 [bus]bus_register - "bus: '%s': registered\012"
drivers/base/bus.c:733 [bus]bus_remove_driver - "bus: '%s': remove driver %s\012"
drivers/base/bus.c:658 [bus]bus_add_driver - "bus: '%s': add driver %s\012"
drivers/base/bus.c:83 [bus]driver_release - "driver: '%s': %s\012"
drivers/base/bus.c:541 [bus]bus_remove_device - "bus: '%s': remove device %s\012"
drivers/base/bus.c:473 [bus]bus_add_device - "bus: '%s': add device %s\012"
drivers/base/dd.c:208 [dd]driver_probe_device - "bus: '%s': %s: matched device %s with driver %s\012"
drivers/base/dd.c:137 [dd]really_probe - "bus: '%s': %s: bound device %s to driver %s\012"
drivers/base/dd.c:114 [dd]really_probe - "bus: '%s': %s: probing driver %s with device %s\012"
drivers/base/dd.c:41 [dd]driver_bound - "driver: '%s': %s: bound to device '%s'\012"
drivers/base/dd.c:171 [dd]driver_probe_done - "%s: probe_count = %d\012"
drivers/base/class.c:218 [class]class_create_release - "%s called for %s\012"
drivers/base/class.c:211 [class]class_unregister - "device class '%s': unregistering\012"
drivers/base/class.c:168 [class]__class_register - "device class '%s': registering\012"
drivers/base/class.c:61 [class]class_release - "class '%s' does not have a release() function, be careful\012"
drivers/base/class.c:55 [class]class_release - "class '%s': release.\012"
drivers/base/platform.c:276 [platform]platform_device_add - "Registering platform device '%s'. Parent at %s\012"
drivers/base/power/main.c:396 [main]pm_dev_dbg - "%s%s%s\012"
drivers/base/power/main.c:165 [main]device_pm_move_last - "PM: Moving %s:%s to end of list\012"
drivers/base/power/main.c:152 [main]device_pm_move_after - "PM: Moving %s:%s after %s:%s\012"
drivers/base/power/main.c:136 [main]device_pm_move_before - "PM: Moving %s:%s before %s:%s\012"
drivers/base/power/main.c:117 [main]device_pm_remove - "PM: Removing info for %s:%s\012"
drivers/base/power/main.c:90 [main]device_pm_add - "PM: Adding info for %s:%s\012"
drivers/base/firmware_class.c:538 [firmware_class]_request_firmware - "firmware: requesting %s\012"
drivers/base/firmware_class.c:533 [firmware_class]_request_firmware - "firmware: using built-in firmware %s\012"
drivers/pcmcia/cs.c:341 [pcmcia_core]socket_setup - "setup\012"
drivers/pcmcia/cs.c:258 [pcmcia_core]socket_reset - "reset\012"
drivers/pcmcia/cs.c:510 [pcmcia_core]socket_late_resume - "suspend state 0x%x != resume state 0x%x\012"
drivers/pcmcia/cs.c:294 [pcmcia_core]socket_shutdown - "shutdown\012"
drivers/pcmcia/cs.c:445 [pcmcia_core]socket_insert - "insert done\012"
drivers/pcmcia/cs.c:421 [pcmcia_core]socket_insert - "insert\012"
drivers/pcmcia/cs.c:781 [pcmcia_core]pcmcia_reset_card - "can't reset, is cardbus\012"
drivers/pcmcia/cs.c:776 [pcmcia_core]pcmcia_reset_card - "can't reset, suspended\012"
drivers/pcmcia/cs.c:771 [pcmcia_core]pcmcia_reset_card - "can't reset, not present\012"
drivers/pcmcia/cs.c:766 [pcmcia_core]pcmcia_reset_card - "resetting socket\012"
drivers/pcmcia/cs.c:716 [pcmcia_core]pcmcia_parse_uevents - "parse_uevents: events %08x\012"
drivers/pcmcia/cs.c:691 [pcmcia_core]pcmcia_parse_events - "parse_events: events %08x\012"
drivers/pcmcia/cs.c:216 [pcmcia_core]pcmcia_unregister_socket - "pcmcia_unregister_socket(0x%p)\012"
drivers/pcmcia/cs.c:116 [pcmcia_core]pcmcia_register_socket - "pcmcia_register_socket(0x%p)\012"
drivers/pcmcia/ds.c:339 [pcmcia]pcmcia_card_remove - "unregistering device\012"
drivers/pcmcia/ds.c:321 [pcmcia]pcmcia_card_remove - "pcmcia_card_remove(%d) %s\012"
drivers/pcmcia/ds.c:1220 [pcmcia]pcmcia_bus_resume - "resuming socket %d\012"
drivers/pcmcia/ds.c:1270 [pcmcia]pcmcia_bus_early_resume - "cis mismatch - different card\012"
drivers/pcmcia/ds.c:1227 [pcmcia]pcmcia_bus_suspend - "suspending socket %d\012"
drivers/pcmcia/ds.c:627 [pcmcia]pcmcia_card_add - "invalid CIS or invalid resources\012"
drivers/pcmcia/ds.c:619 [pcmcia]pcmcia_card_add - "validating mem resources failed, delaying card_add\012"
drivers/pcmcia/ds.c:612 [pcmcia]pcmcia_card_add - "no resources available, delaying card_add\012"
drivers/pcmcia/ds.c:547 [pcmcia]pcmcia_device_add - "creating config_t\012"
drivers/pcmcia/ds.c:522 [pcmcia]pcmcia_device_add - "devname is %s\012"
drivers/pcmcia/ds.c:489 [pcmcia]pcmcia_device_add - "adding device to %d, function %d\012"
drivers/pcmcia/ds.c:438 [pcmcia]pcmcia_device_query - "mem device geometry probably means FUNCID_MEMORY\012"
drivers/pcmcia/ds.c:241 [pcmcia]pcmcia_release_dev - "releasing device\012"
drivers/pcmcia/ds.c:233 [pcmcia]pcmcia_release_function - "releasing config_t\012"
drivers/pcmcia/ds.c:648 [pcmcia]pcmcia_requery_callback - "update device information\012"
drivers/pcmcia/ds.c:1180 [pcmcia]pcmcia_dev_resume - "requesting configuration\012"
drivers/pcmcia/ds.c:1171 [pcmcia]pcmcia_dev_resume - "resuming\012"
drivers/pcmcia/ds.c:1148 [pcmcia]pcmcia_dev_suspend - "releasing configuration\012"
drivers/pcmcia/ds.c:1125 [pcmcia]pcmcia_dev_suspend - "suspending\012"
drivers/pcmcia/ds.c:355 [pcmcia]pcmcia_device_remove - "removing device\012"
drivers/pcmcia/ds.c:291 [pcmcia]pcmcia_device_probe - "binding to %s failed with %d\012"
drivers/pcmcia/ds.c:267 [pcmcia]pcmcia_device_probe - "trying to bind to %s\012"
drivers/pcmcia/ds.c:904 [pcmcia]pcmcia_bus_match - "matched to %s\012"
drivers/pcmcia/ds.c:902 [pcmcia]pcmcia_bus_match - "trying to match to %s\012"
drivers/pcmcia/ds.c:894 [pcmcia]pcmcia_bus_match - "matched to %s\012"
drivers/pcmcia/ds.c:892 [pcmcia]pcmcia_bus_match - "trying to match to %s\012"
drivers/pcmcia/ds.c:863 [pcmcia]pcmcia_devmatch - "device needs a fake CIS\012"
drivers/pcmcia/ds.c:857 [pcmcia]pcmcia_devmatch - "skipping FUNC_ID match until userspace ACK\012"
drivers/pcmcia/ds.c:826 [pcmcia]pcmcia_devmatch - "this is a pseudo-multi-function device\012"
drivers/pcmcia/ds.c:730 [pcmcia]pcmcia_load_firmware - "trying to load CIS file %s\012"
drivers/pcmcia/ds.c:206 [pcmcia]pcmcia_unregister_driver - "unregistering driver %s\012"
drivers/pcmcia/ds.c:186 [pcmcia]pcmcia_register_driver - "registering driver %s\012"
drivers/pcmcia/pcmcia_resource.c:64 [pcmcia]release_io_space - "release_io_space for %pR\012"
drivers/pcmcia/pcmcia_resource.c:877 [pcmcia]pcmcia_request_window - "request_window results in %pR\012"
drivers/pcmcia/pcmcia_resource.c:854 [pcmcia]pcmcia_request_window - "failed to set memory mapping\012"
drivers/pcmcia/pcmcia_resource.c:840 [pcmcia]pcmcia_request_window - "allocating mem region failed\012"
drivers/pcmcia/pcmcia_resource.c:829 [pcmcia]pcmcia_request_window - "all windows are used already\012"
drivers/pcmcia/pcmcia_resource.c:817 [pcmcia]pcmcia_request_window - "invalid base address\012"
drivers/pcmcia/pcmcia_resource.c:812 [pcmcia]pcmcia_request_window - "invalid map size\012"
drivers/pcmcia/pcmcia_resource.c:803 [pcmcia]pcmcia_request_window - "No card present\012"
drivers/pcmcia/pcmcia_resource.c:605 [pcmcia]pcmcia_request_io - "pcmcia_request_io succeeded: %pR , %pR"
drivers/pcmcia/pcmcia_resource.c:584 [pcmcia]pcmcia_request_io - "IO already configured\012"
drivers/pcmcia/pcmcia_resource.c:580 [pcmcia]pcmcia_request_io - "Configuration is locked\012"
drivers/pcmcia/pcmcia_resource.c:575 [pcmcia]pcmcia_request_io - "pcmcia_request_io: No card present\012"
drivers/pcmcia/pcmcia_resource.c:572 [pcmcia]pcmcia_request_io - "pcmcia_request_io: %pR , %pR"
drivers/pcmcia/pcmcia_resource.c:136 [pcmcia]alloc_io_space - "alloc_io_space request result %d: %pR\012"
drivers/pcmcia/pcmcia_resource.c:120 [pcmcia]alloc_io_space - "alloc_io_space request failed (%d)\012"
drivers/pcmcia/pcmcia_resource.c:113 [pcmcia]alloc_io_space - "odd IO request\012"
drivers/pcmcia/pcmcia_resource.c:106 [pcmcia]alloc_io_space - "odd IO request\012"
drivers/pcmcia/pcmcia_resource.c:101 [pcmcia]alloc_io_space - "alloc_io_space request for %pR, %d lines\012"
drivers/pcmcia/pcmcia_resource.c:450 [pcmcia]pcmcia_request_configuration - "Configuration is locked\012"
drivers/pcmcia/pcmcia_resource.c:442 [pcmcia]pcmcia_request_configuration - "IntType may not be INT_CARDBUS\012"
drivers/pcmcia/pcmcia_resource.c:404 [pcmcia]pcmcia_release_window - "not releasing unknown window\012"
drivers/pcmcia/pcmcia_resource.c:394 [pcmcia]pcmcia_release_window - "releasing window %pR\012"
drivers/pcmcia/pcmcia_resource.c:281 [pcmcia]pcmcia_modify_configuration - "changing Vcc is not allowed at this time\012"
drivers/pcmcia/pcmcia_resource.c:268 [pcmcia]pcmcia_modify_configuration - "Vpp1 and Vpp2 must be the same\012"
drivers/pcmcia/pcmcia_resource.c:259 [pcmcia]pcmcia_modify_configuration - "changing Vcc or IRQ is not allowed at this time\012"
drivers/pcmcia/pcmcia_resource.c:252 [pcmcia]pcmcia_modify_configuration - "Configuration isnt't locked\012"
drivers/pcmcia/pcmcia_resource.c:247 [pcmcia]pcmcia_modify_configuration - "No card present\012"
drivers/pcmcia/pcmcia_resource.c:166 [pcmcia]pcmcia_access_config - "Configuration isnt't locked\012"
drivers/pcmcia/cistpl.c:1358 [pcmcia]pcmcia_parse_tuple - "parse_tuple failed %d\012"
drivers/pcmcia/cistpl.c:624 [pcmcia]pccard_get_next_tuple - "cs: overrun in pcmcia_get_next_tuple\012"
drivers/pcmcia/cistpl.c:261 [pcmcia]pcmcia_write_cis_mem - "could not map memory\012"
drivers/pcmcia/cistpl.c:236 [pcmcia]pcmcia_write_cis_mem - "could not map memory\012"
drivers/pcmcia/cistpl.c:222 [pcmcia]pcmcia_write_cis_mem - "pcmcia_write_cis_mem(%d, %#x, %u)\012"
drivers/pcmcia/cistpl.c:204 [pcmcia]pcmcia_read_cis_mem - " %#2.2x %#2.2x %#2.2x %#2.2x ...\012"
drivers/pcmcia/cistpl.c:187 [pcmcia]pcmcia_read_cis_mem - "could not map memory\012"
drivers/pcmcia/cistpl.c:174 [pcmcia]pcmcia_read_cis_mem - "attempt to read CIS mem at addr %#x"
drivers/pcmcia/cistpl.c:157 [pcmcia]pcmcia_read_cis_mem - "could not map memory\012"
drivers/pcmcia/cistpl.c:143 [pcmcia]pcmcia_read_cis_mem - "pcmcia_read_cis_mem(%d, %#x, %u)\012"
drivers/pcmcia/pcmcia_cis.c:280 [pcmcia]pcmcia_do_get_tuple - "do_get_tuple: out of memory\012"
drivers/pcmcia/rsrc_nonstatic.c:377 [pcmcia_rsrc]do_validate_mem - "cs: memory probe 0x%06lx-0x%06lx: %p %p %u %u %u"
drivers/pcmcia/rsrc_nonstatic.c:275 [pcmcia_rsrc]readable - "fake CIS is being used: can't validate mem\012"
drivers/usb/host/pci-quirks.c:246 [pci_quirks]quirk_usb_disable_ehci - "EHCI: BIOS handoff\012"
drivers/usb/host/pci-quirks.c:131 [pci_quirks]uhci_check_and_reset_hc - "Performing full reset\012"
drivers/usb/host/pci-quirks.c:125 [pci_quirks]uhci_check_and_reset_hc - "%s: intr = 0x%04x\012"
drivers/usb/host/pci-quirks.c:118 [pci_quirks]uhci_check_and_reset_hc - "%s: cmd = 0x%04x\012"
drivers/usb/host/pci-quirks.c:110 [pci_quirks]uhci_check_and_reset_hc - "%s: legsup = 0x%04x\012"
drivers/input/ff-core.c:249 [input_core]flush_effects - "ff-core: flushing now\012"
drivers/input/ff-core.c:127 [input_core]input_ff_upload - "ff-core: invalid or not supported wave form in upload\012"
drivers/input/ff-core.c:119 [input_core]input_ff_upload - "ff-core: invalid or not supported effect type in upload\012"
drivers/input/ff-memless.c:200 [ff_memless]apply_envelope - "ff-memless: difference = %d\012"
drivers/input/ff-memless.c:196 [ff_memless]apply_envelope - "ff-memless: time_of_envelope = 0x%x\012"
drivers/input/ff-memless.c:195 [ff_memless]apply_envelope - "ff-memless: time_from_level = 0x%x\012"
drivers/input/ff-memless.c:194 [ff_memless]apply_envelope - "ff-memless: difference = %d\012"
drivers/input/ff-memless.c:177 [ff_memless]apply_envelope - "ff-memless: value = 0x%x, attack_level = 0x%x\012"
drivers/input/ff-memless.c:155 [ff_memless]ml_schedule_timer - "ff-memless: timer set\012"
drivers/input/ff-memless.c:152 [ff_memless]ml_schedule_timer - "ff-memless: no actions\012"
drivers/input/ff-memless.c:132 [ff_memless]ml_schedule_timer - "ff-memless: calculating next timer\012"
drivers/input/ff-memless.c:452 [ff_memless]ml_ff_playback - "ff-memless: initiated stop\012"
drivers/input/ff-memless.c:441 [ff_memless]ml_ff_playback - "ff-memless: initiated play\012"
drivers/input/ff-memless.c:409 [ff_memless]ml_effect_timer - "ff-memless: timer: updating effects\012"
drivers/input/keyboard/atkbd.c:1186 [atkbd]atkbd_reconnect - "reconnect request, but serio is disconnected, ignoring...\012"
drivers/input/keyboard/atkbd.c:437 [atkbd]atkbd_interrupt - "Keyboard on %s reports too many keys pressed.\012"
drivers/input/keyboard/atkbd.c:371 [atkbd]atkbd_interrupt - "Received %02x flags %02x\012"
drivers/rtc/class.c:84 [rtc_core]rtc_resume - "%s: time travel!\012"
drivers/rtc/class.c:78 [rtc_core]rtc_resume - "%s: bogus resume time\012"
drivers/rtc/interface.c:277 [rtc_core]rtc_read_alarm - "alarm rollover: %s\012"
drivers/rtc/interface.c:262 [rtc_core]rtc_read_alarm - "alarm rollover: %s\012"
drivers/rtc/interface.c:251 [rtc_core]rtc_read_alarm - "alarm rollover: %s\012"
drivers/rtc/rtc-dev.c:512 [rtc_core]rtc_dev_add_device - "%s: dev (%d:%d)\012"
drivers/rtc/rtc-dev.c:490 [rtc_core]rtc_dev_prepare - "%s: too many RTC devices\012"
drivers/i2c/i2c-boardinfo.c:79 [i2c_boardinfo]i2c_register_board_info - "i2c-core: can't register boardinfo!\012"
drivers/power/power_supply_core.c:47 [power_supply]power_supply_changed_work - "%s\012"
drivers/power/power_supply_core.c:152 [power_supply]power_supply_dev_release - "device: '%s': %s\012"
drivers/power/power_supply_core.c:91 [power_supply]power_supply_am_i_supplied - "%s %d\012"
drivers/power/power_supply_core.c:59 [power_supply]power_supply_changed - "%s\012"
drivers/power/power_supply_sysfs.c:291 [power_supply]power_supply_uevent - "prop %s=%s\012"
drivers/power/power_supply_sysfs.c:254 [power_supply]power_supply_uevent - "POWER_SUPPLY_NAME=%s\012"
drivers/power/power_supply_sysfs.c:250 [power_supply]power_supply_uevent - "No power supply yet\012"
drivers/power/power_supply_sysfs.c:247 [power_supply]power_supply_uevent - "uevent\012"
drivers/power/power_supply_sysfs.c:77 [power_supply]power_supply_show_property - "driver has no data for `%s' property\012"
arch/x86/pci/i386.c:199 [i386]pcibios_allocate_resources - "disabling ROM %pR\012"
arch/x86/pci/i386.c:184 [i386]pcibios_allocate_resources - "BAR %d: reserving %pr (d=%d, p=%d)\012"
arch/x86/pci/fixup.c:26 [fixup]pci_fixup_i450nx - "i450NX PXB %d: %02x/%02x/%02x\012"
arch/x86/pci/fixup.c:83 [fixup]pci_fixup_latency - "Setting max latency to 32\012"
arch/x86/pci/irq.c:985 [irq]pcibios_lookup_irq - "can't route interrupt\012"
arch/x86/pci/irq.c:961 [irq]pcibios_lookup_irq - "PCI INT %c -> newirq %d"
arch/x86/pci/irq.c:919 [irq]pcibios_lookup_irq - "PCI INT %c -> PIRQ %02x, mask %04x, excl %04x"
arch/x86/pci/irq.c:915 [irq]pcibios_lookup_irq - "PCI INT %c not routed\012"
arch/x86/pci/irq.c:909 [irq]pcibios_lookup_irq - "PCI INT %c not found in routing table\012"
arch/x86/pci/irq.c:894 [irq]pcibios_lookup_irq - "no interrupt pin\012"
arch/x86/pci/irq.c:1038 [irq]pcibios_fixup_irqs - "ignoring bogus IRQ %d\012"
net/core/dev.c:4794 [dev]rollback_registered_many - "unregister_netdevice: device %s/%p never was registered\012"
include/net/inet_connection_sock.h:235 [tcp_input]inet_csk_reset_xmit_timer - "%s"
include/net/inet_connection_sock.h:219 [tcp_input]inet_csk_reset_xmit_timer - "reset_xmit_timer: sk=%p %d when=0x%lx, caller=%p\012"
include/net/inet_connection_sock.h:202 [tcp_input]inet_csk_clear_xmit_timer - "%s"
include/net/inet_connection_sock.h:235 [tcp_output]inet_csk_reset_xmit_timer - "%s"
include/net/inet_connection_sock.h:219 [tcp_output]inet_csk_reset_xmit_timer - "reset_xmit_timer: sk=%p %d when=0x%lx, caller=%p\012"
include/net/inet_connection_sock.h:202 [tcp_output]inet_csk_clear_xmit_timer - "%s"
include/net/inet_connection_sock.h:235 [tcp_timer]inet_csk_reset_xmit_timer - "%s"
include/net/inet_connection_sock.h:219 [tcp_timer]inet_csk_reset_xmit_timer - "reset_xmit_timer: sk=%p %d when=0x%lx, caller=%p\012"
include/net/inet_connection_sock.h:235 [tcp_ipv4]inet_csk_reset_xmit_timer - "%s"
include/net/inet_connection_sock.h:219 [tcp_ipv4]inet_csk_reset_xmit_timer - "reset_xmit_timer: sk=%p %d when=0x%lx, caller=%p\012"
include/net/inet_connection_sock.h:235 [ipv6]inet_csk_reset_xmit_timer - "%s"
include/net/inet_connection_sock.h:219 [ipv6]inet_csk_reset_xmit_timer - "reset_xmit_timer: sk=%p %d when=0x%lx, caller=%p\012"
drivers/scsi/scsi_pm.c:28 [scsi_mod]scsi_dev_type_suspend - "scsi suspend: %d\012"
drivers/scsi/scsi_pm.c:41 [scsi_mod]scsi_dev_type_resume - "scsi resume: %d\012"
drivers/pcmcia/yenta_socket.c:86 [yenta_socket]cb_readl - "%04x %08x\012"
drivers/pcmcia/yenta_socket.c:142 [yenta_socket]exca_readb - "%04x %02x\012"
drivers/pcmcia/yenta_socket.c:92 [yenta_socket]cb_writel - "%04x %08x\012"
drivers/pcmcia/yenta_socket.c:157 [yenta_socket]exca_writeb - "%04x %02x\012"
drivers/pcmcia/yenta_socket.c:101 [yenta_socket]config_readb - "%04x %02x\012"
drivers/pcmcia/yenta_socket.c:123 [yenta_socket]config_writeb - "%04x %02x\012"
drivers/pcmcia/o2micro.h:124 [yenta_socket]o2micro_override - "O2: 0x94/0xD4: %02x/%02x\012"
drivers/pcmcia/yenta_socket.c:129 [yenta_socket]config_writew - "%04x %04x\012"
drivers/pcmcia/yenta_socket.c:109 [yenta_socket]config_readw - "%04x %04x\012"
drivers/pcmcia/yenta_socket.c:117 [yenta_socket]config_readl - "%04x %08x\012"
drivers/pcmcia/yenta_socket.c:135 [yenta_socket]config_writel - "%04x %08x\012"
drivers/pcmcia/yenta_socket.c:164 [yenta_socket]exca_writew - "%04x %04x\012"
drivers/serial/serial_cs.c:361 [serial_cs]serial_detach - "serial_detach\012"
drivers/serial/serial_cs.c:280 [serial_cs]serial_remove - "serial_release\012"
drivers/serial/serial_cs.c:329 [serial_cs]serial_probe - "serial_attach()\012"
drivers/serial/serial_cs.c:664 [serial_cs]serial_config - "serial_config\012"
drivers/net/pcmcia/xirc2ps_cs.c:1599 [xirc2ps_cs]do_reset - "%s: ECR is: %#02x\012"
drivers/net/pcmcia/xirc2ps_cs.c:1543 [xirc2ps_cs]do_reset - "%s: do_reset(%p,%d)\012"
drivers/net/pcmcia/xirc2ps_cs.c:1777 [xirc2ps_cs]do_powerdown - "do_powerdown(%p)\012"
drivers/net/pcmcia/xirc2ps_cs.c:557 [xirc2ps_cs]xirc2ps_detach - "detach\012"
drivers/net/pcmcia/xirc2ps_cs.c:995 [xirc2ps_cs]xirc2ps_release - "release\012"
drivers/net/pcmcia/xirc2ps_cs.c:520 [xirc2ps_cs]xirc2ps_probe - "attach()\012"
drivers/net/pcmcia/xirc2ps_cs.c:1433 [xirc2ps_cs]do_config - "do_config(%p)\012"
drivers/net/pcmcia/xirc2ps_cs.c:1496 [xirc2ps_cs]do_ioctl - "%s: ioctl(%-.6s, %#04x) %04x %04x %04x %04x\012"
drivers/net/pcmcia/xirc2ps_cs.c:1317 [xirc2ps_cs]do_start_xmit - "%s: avail. tx space=%u%s\012"
drivers/net/pcmcia/xirc2ps_cs.c:1291 [xirc2ps_cs]do_start_xmit - "do_start_xmit(skb=%p, dev=%p) len=%u\012"
drivers/net/pcmcia/xirc2ps_cs.c:1791 [xirc2ps_cs]do_stop - "do_stop(%p)\012"
drivers/net/pcmcia/xirc2ps_cs.c:1460 [xirc2ps_cs]do_open - "do_open(%p)\012"
drivers/net/pcmcia/xirc2ps_cs.c:777 [xirc2ps_cs]xirc2ps_config - "found %s card\012"
drivers/net/pcmcia/xirc2ps_cs.c:747 [xirc2ps_cs]xirc2ps_config - "config\012"
drivers/net/pcmcia/xirc2ps_cs.c:604 [xirc2ps_cs]set_card_type - "cisrev=%02x mediaid=%02x prodid=%02x\012"
drivers/net/pcmcia/xirc2ps_cs.c:1240 [xirc2ps_cs]xirc2ps_interrupt - "set maxrx=%u\012"
drivers/net/pcmcia/xirc2ps_cs.c:1234 [xirc2ps_cs]xirc2ps_interrupt - "set maxrx=%u (rcvd=%u ticks=%lu)\012"
drivers/net/pcmcia/xirc2ps_cs.c:1214 [xirc2ps_cs]xirc2ps_interrupt - "tx restarted due to execssive collissions\012"
drivers/net/pcmcia/xirc2ps_cs.c:1208 [xirc2ps_cs]xirc2ps_interrupt - "PTR not changed?\012"
drivers/net/pcmcia/xirc2ps_cs.c:1195 [xirc2ps_cs]xirc2ps_interrupt - "receive overrun cleared\012"
drivers/net/pcmcia/xirc2ps_cs.c:1183 [xirc2ps_cs]xirc2ps_interrupt - "%s: Alignment error\012"
drivers/net/pcmcia/xirc2ps_cs.c:1179 [xirc2ps_cs]xirc2ps_interrupt - "%s: CRC error\012"
drivers/net/pcmcia/xirc2ps_cs.c:1175 [xirc2ps_cs]xirc2ps_interrupt - "%s: Packet too long\012"
drivers/net/pcmcia/xirc2ps_cs.c:1171 [xirc2ps_cs]xirc2ps_interrupt - "rsr=%#02x\012"
drivers/net/pcmcia/xirc2ps_cs.c:1103 [xirc2ps_cs]xirc2ps_interrupt - "rsr=%#02x packet_length=%u\012"
drivers/net/pcmcia/xirc2ps_cs.c:1096 [xirc2ps_cs]xirc2ps_interrupt - "%s: RX drop, too much done\012"
drivers/net/pcmcia/xirc2ps_cs.c:1086 [xirc2ps_cs]xirc2ps_interrupt - "%s: ISR=%#2.2x ESR=%#2.2x RSR=%#2.2x TSR=%#4.4x\012"
drivers/net/pcmcia/xirc2ps_cs.c:1072 [xirc2ps_cs]xirc2ps_interrupt - "%s: interrupt %d for dead card\012"
drivers/net/pcmcia/xirc2ps_cs.c:1062 [xirc2ps_cs]xirc2ps_interrupt - "%s: interrupt %d at %#x.\012"
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Re: Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-09-07 12:24 ` Komuro
@ 2010-09-07 17:41 ` Dominik Brodowski
2010-09-13 19:53 ` Dominik Brodowski
2010-09-17 13:06 ` Komuro
2 siblings, 0 replies; 23+ messages in thread
From: Dominik Brodowski @ 2010-09-07 17:41 UTC (permalink / raw)
To: Komuro; +Cc: linux-pcmcia, linux-serial
Dear Komuro,
On Tue, Sep 07, 2010 at 09:24:30PM +0900, Komuro wrote:
> Attached file is the output of /sys/kernel/debug/dynamic_debug/control.
Could you issue
$ echo "module pcmcia +p" > /sys/kernel/debug/dynamic_debug/control
and (re-)insert the card, and then send the dmesg (probably
$ dmesg -s 200000
to me? Thanks!
Best,
Dominik
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Re: Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-09-07 12:24 ` Komuro
2010-09-07 17:41 ` Dominik Brodowski
@ 2010-09-13 19:53 ` Dominik Brodowski
2010-09-17 13:06 ` Komuro
2 siblings, 0 replies; 23+ messages in thread
From: Dominik Brodowski @ 2010-09-13 19:53 UTC (permalink / raw)
To: Komuro; +Cc: linux-pcmcia, linux-serial
Dear Komuro,
does the attached patch help with 2.6.36-rc4?
Best,
Dominik
commit 1852d6b8c3fa2d1765f66cd7d96a8c6bf9f01997
Author: Dominik Brodowski <linux@dominikbrodowski.net>
Date: Mon Aug 30 08:18:54 2010 +0200
pcmcia serial_cs.c: fix multifunction card handling
We shouldn't overwrite pre-set values, and we should also
set the port address to the beginning, and not the end of
the 8-port range.
Reported-by: Komuro <komurojun-mbn@nifty.com>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
index 141c695..7d475b2 100644
--- a/drivers/serial/serial_cs.c
+++ b/drivers/serial/serial_cs.c
@@ -335,8 +335,6 @@ static int serial_probe(struct pcmcia_device *link)
info->p_dev = link;
link->priv = info;
- link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
- link->resource[0]->end = 8;
link->conf.Attributes = CONF_ENABLE_IRQ;
if (do_sound) {
link->conf.Attributes |= CONF_ENABLE_SPKR;
@@ -411,6 +409,27 @@ static int setup_serial(struct pcmcia_device *handle, struct serial_info * info,
/*====================================================================*/
+static int pfc_config(struct pcmcia_device *p_dev)
+{
+ unsigned int port = 0;
+ struct serial_info *info = p_dev->priv;
+
+ if ((p_dev->resource[1]->end != 0) &&
+ (resource_size(p_dev->resource[1]) == 8)) {
+ port = p_dev->resource[1]->start;
+ info->slave = 1;
+ } else if ((info->manfid == MANFID_OSITECH) &&
+ (resource_size(p_dev->resource[0]) == 0x40)) {
+ port = p_dev->resource[0]->start + 0x28;
+ info->slave = 1;
+ }
+ if (info->slave)
+ return setup_serial(p_dev, info, port, p_dev->irq);
+
+ dev_warn(&p_dev->dev, "no usable port range found, giving up\n");
+ return -ENODEV;
+}
+
static int simple_config_check(struct pcmcia_device *p_dev,
cistpl_cftable_entry_t *cf,
cistpl_cftable_entry_t *dflt,
@@ -461,23 +480,8 @@ static int simple_config(struct pcmcia_device *link)
struct serial_info *info = link->priv;
int i = -ENODEV, try;
- /* If the card is already configured, look up the port and irq */
- if (link->function_config) {
- unsigned int port = 0;
- if ((link->resource[1]->end != 0) &&
- (resource_size(link->resource[1]) == 8)) {
- port = link->resource[1]->end;
- info->slave = 1;
- } else if ((info->manfid == MANFID_OSITECH) &&
- (resource_size(link->resource[0]) == 0x40)) {
- port = link->resource[0]->start + 0x28;
- info->slave = 1;
- }
- if (info->slave) {
- return setup_serial(link, info, port,
- link->irq);
- }
- }
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
+ link->resource[0]->end = 8;
/* First pass: look for a config entry that looks normal.
* Two tries: without IO aliases, then with aliases */
@@ -491,8 +495,7 @@ static int simple_config(struct pcmcia_device *link)
if (!pcmcia_loop_config(link, simple_config_check_notpicky, NULL))
goto found_port;
- printk(KERN_NOTICE
- "serial_cs: no usable port range found, giving up\n");
+ dev_warn(&link->dev, "no usable port range found, giving up\n");
return -1;
found_port:
@@ -558,6 +561,7 @@ static int multi_config(struct pcmcia_device *link)
int i, base2 = 0;
/* First, look for a generic full-sized window */
+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
link->resource[0]->end = info->multi * 8;
if (pcmcia_loop_config(link, multi_config_check, &base2)) {
/* If that didn't work, look for two windows */
@@ -565,15 +569,14 @@ static int multi_config(struct pcmcia_device *link)
info->multi = 2;
if (pcmcia_loop_config(link, multi_config_check_notpicky,
&base2)) {
- printk(KERN_NOTICE "serial_cs: no usable port range"
+ dev_warn(&link->dev, "no usable port range "
"found, giving up\n");
return -ENODEV;
}
}
if (!link->irq)
- dev_warn(&link->dev,
- "serial_cs: no usable IRQ found, continuing...\n");
+ dev_warn(&link->dev, "no usable IRQ found, continuing...\n");
/*
* Apply any configuration quirks.
@@ -675,6 +678,7 @@ static int serial_config(struct pcmcia_device * link)
multifunction cards that ask for appropriate IO port ranges */
if ((info->multi == 0) &&
(link->has_func_id) &&
+ (link->socket->pcmcia_pfc == 0) &&
((link->func_id == CISTPL_FUNCID_MULTI) ||
(link->func_id == CISTPL_FUNCID_SERIAL)))
pcmcia_loop_config(link, serial_check_for_multi, info);
@@ -685,7 +689,13 @@ static int serial_config(struct pcmcia_device * link)
if (info->quirk && info->quirk->multi != -1)
info->multi = info->quirk->multi;
- if (info->multi > 1)
+ dev_info(&link->dev,
+ "trying to set up [0x%04x:0x%04x] (pfc: %d, multi: %d, quirk: %p)\n",
+ link->manf_id, link->card_id,
+ link->socket->pcmcia_pfc, info->multi, info->quirk);
+ if (link->socket->pcmcia_pfc)
+ i = pfc_config(link);
+ else if (info->multi > 1)
i = multi_config(link);
else
i = simple_config(link);
@@ -704,7 +714,7 @@ static int serial_config(struct pcmcia_device * link)
return 0;
failed:
- dev_warn(&link->dev, "serial_cs: failed to initialize\n");
+ dev_warn(&link->dev, "failed to initialize\n");
serial_remove(link);
return -ENODEV;
}
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: Re: Re: Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-09-07 12:24 ` Komuro
2010-09-07 17:41 ` Dominik Brodowski
2010-09-13 19:53 ` Dominik Brodowski
@ 2010-09-17 13:06 ` Komuro
2010-09-17 18:52 ` Dominik Brodowski
` (2 more replies)
2 siblings, 3 replies; 23+ messages in thread
From: Komuro @ 2010-09-17 13:06 UTC (permalink / raw)
To: Dominik Brodowski; +Cc: linux-pcmcia, linux-serial
[-- Attachment #1: Type: text/plain, Size: 5841 bytes --]
Hi,
Xircom multi-function card still does not work.
Please see the attached dmesg log.
Best Regards
Komuro
----- Original Message -----
>Date: Mon, 13 Sep 2010 21:53:53 +0200
>From: Dominik Brodowski <linux@dominikbrodowski.net>
>To: Komuro <komurojun-mbn@nifty.com>
>Cc: linux-pcmcia@lists.infradead.org, linux-serial@vger.kernel.org
>Subject: Re: Re: Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when
> calling pcmcia_request_io()
>
>
>Dear Komuro,
>
>does the attached patch help with 2.6.36-rc4?
>
>Best,
> Dominik
>
>commit 1852d6b8c3fa2d1765f66cd7d96a8c6bf9f01997
>Author: Dominik Brodowski <linux@dominikbrodowski.net>
>Date: Mon Aug 30 08:18:54 2010 +0200
>
> pcmcia serial_cs.c: fix multifunction card handling
>
> We shouldn't overwrite pre-set values, and we should also
> set the port address to the beginning, and not the end of
> the 8-port range.
>
> Reported-by: Komuro <komurojun-mbn@nifty.com>
> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
>
>diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
>index 141c695..7d475b2 100644
>--- a/drivers/serial/serial_cs.c
>+++ b/drivers/serial/serial_cs.c
>@@ -335,8 +335,6 @@ static int serial_probe(struct pcmcia_device *link)
> info->p_dev = link;
> link->priv = info;
>
>- link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
>- link->resource[0]->end = 8;
> link->conf.Attributes = CONF_ENABLE_IRQ;
> if (do_sound) {
> link->conf.Attributes |= CONF_ENABLE_SPKR;
>@@ -411,6 +409,27 @@ static int setup_serial(struct pcmcia_device *handle, st
ruct serial_info * info,
>
> /*====================================================================*/
>
>+static int pfc_config(struct pcmcia_device *p_dev)
>+{
>+ unsigned int port = 0;
>+ struct serial_info *info = p_dev->priv;
>+
>+ if ((p_dev->resource[1]->end != 0) &&
>+ (resource_size(p_dev->resource[1]) == 8)) {
>+ port = p_dev->resource[1]->start;
>+ info->slave = 1;
>+ } else if ((info->manfid == MANFID_OSITECH) &&
>+ (resource_size(p_dev->resource[0]) == 0x40)) {
>+ port = p_dev->resource[0]->start + 0x28;
>+ info->slave = 1;
>+ }
>+ if (info->slave)
>+ return setup_serial(p_dev, info, port, p_dev->irq);
>+
>+ dev_warn(&p_dev->dev, "no usable port range found, giving up\n");
>+ return -ENODEV;
>+}
>+
> static int simple_config_check(struct pcmcia_device *p_dev,
> cistpl_cftable_entry_t *cf,
> cistpl_cftable_entry_t *dflt,
>@@ -461,23 +480,8 @@ static int simple_config(struct pcmcia_device *link)
> struct serial_info *info = link->priv;
> int i = -ENODEV, try;
>
>- /* If the card is already configured, look up the port and irq */
>- if (link->function_config) {
>- unsigned int port = 0;
>- if ((link->resource[1]->end != 0) &&
>- (resource_size(link->resource[1]) == 8)) {
>- port = link->resource[1]->end;
>- info->slave = 1;
>- } else if ((info->manfid == MANFID_OSITECH) &&
>- (resource_size(link->resource[0]) == 0x40)) {
>- port = link->resource[0]->start + 0x28;
>- info->slave = 1;
>- }
>- if (info->slave) {
>- return setup_serial(link, info, port,
>- link->irq);
>- }
>- }
>+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
>+ link->resource[0]->end = 8;
>
> /* First pass: look for a config entry that looks normal.
> * Two tries: without IO aliases, then with aliases */
>@@ -491,8 +495,7 @@ static int simple_config(struct pcmcia_device *link)
> if (!pcmcia_loop_config(link, simple_config_check_notpicky, NULL))
> goto found_port;
>
>- printk(KERN_NOTICE
>- "serial_cs: no usable port range found, giving up\n");
>+ dev_warn(&link->dev, "no usable port range found, giving up\n");
> return -1;
>
> found_port:
>@@ -558,6 +561,7 @@ static int multi_config(struct pcmcia_device *link)
> int i, base2 = 0;
>
> /* First, look for a generic full-sized window */
>+ link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
> link->resource[0]->end = info->multi * 8;
> if (pcmcia_loop_config(link, multi_config_check, &base2)) {
> /* If that didn't work, look for two windows */
>@@ -565,15 +569,14 @@ static int multi_config(struct pcmcia_device *link)
> info->multi = 2;
> if (pcmcia_loop_config(link, multi_config_check_notpicky,
> &base2)) {
>- printk(KERN_NOTICE "serial_cs: no usable port range"
>+ dev_warn(&link->dev, "no usable port range "
> "found, giving up\n");
> return -ENODEV;
> }
> }
>
> if (!link->irq)
>- dev_warn(&link->dev,
>- "serial_cs: no usable IRQ found, continuing...\n");
>+ dev_warn(&link->dev, "no usable IRQ found, continuing...\n");
>
> /*
> * Apply any configuration quirks.
>@@ -675,6 +678,7 @@ static int serial_config(struct pcmcia_device * link)
> multifunction cards that ask for appropriate IO port ranges */
> if ((info->multi == 0) &&
> (link->has_func_id) &&
>+ (link->socket->pcmcia_pfc == 0) &&
> ((link->func_id == CISTPL_FUNCID_MULTI) ||
> (link->func_id == CISTPL_FUNCID_SERIAL)))
> pcmcia_loop_config(link, serial_check_for_multi, info);
>@@ -685,7 +689,13 @@ static int serial_config(struct pcmcia_device * link)
> if (info->quirk && info->quirk->multi != -1)
> info->multi = info->quirk->multi;
>
>- if (info->multi > 1)
>+ dev_info(&link->dev,
>+ "trying to set up [0x%04x:0x%04x] (pfc: %d, multi: %d, quirk: %p)\n",
>+ link->manf_id, link->card_id,
>+ link->socket->pcmcia_pfc, info->multi, info->quirk);
>+ if (link->socket->pcmcia_pfc)
>+ i = pfc_config(link);
>+ else if (info->multi > 1)
> i = multi_config(link);
> else
> i = simple_config(link);
>@@ -704,7 +714,7 @@ static int serial_config(struct pcmcia_device * link)
> return 0;
>
> failed:
>- dev_warn(&link->dev, "serial_cs: failed to initialize\n");
>+ dev_warn(&link->dev, "failed to initialize\n");
> serial_remove(link);
> return -ENODEV;
> }
[-- Attachment #2: serial_cs.log --]
[-- Type: application/octet-stream, Size: 14661 bytes --]
pcmcia_socket pcmcia_socket0: pccard: PCMCIA card inserted into slot 0
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x17 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x30 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x3a, 2)
pcmcia_socket pcmcia_socket0: 0x88 0x08 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x44, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x05 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x46, 5)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x0a 0x11 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4b, 2)
pcmcia_socket pcmcia_socket0: 0x44 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x51, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x05 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x58, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x14 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6e, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x77, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x80, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x89, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x03 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8e, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x92, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0c 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa6, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x08 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb0, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x08 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbe, 2)
pcmcia_socket pcmcia_socket0: 0x8a 0x0c 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xcc, 2)
pcmcia_socket pcmcia_socket0: 0x8b 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xd2, 2)
pcmcia_socket pcmcia_socket0: 0x14 0x00 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xd4, 2)
pcmcia_socket pcmcia_socket0: 0xff 0xff 0xf7 0x00 ...
adding device to 0, function 0
pcmcia 0.0: devname is pcmcia0.0
pcmcia 0.0: creating config_t
pcmcia 0.0: pcmcia: registering new device pcmcia0.0 (IRQ: 18)
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x90, 2)
pcmcia_socket pcmcia_socket0: 0x02 0x00 0x0a 0x11 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa, 48)
pcmcia_socket pcmcia_socket0: 0x05 0x00 0x58 0x69 ...
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: this is a pseudo-multi-function device
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to xirc2ps_cs
pcmcia 0.0: trying to match to xirc2ps_cs
pcmcia 0.0: trying to match to xirc2ps_cs
pcmcia 0.0: trying to match to xirc2ps_cs
pcmcia 0.0: trying to match to xirc2ps_cs
pcmcia 0.0: trying to match to xirc2ps_cs
pcmcia 0.0: this is a pseudo-multi-function device
pcmcia 0.0: matched to xirc2ps_cs
xirc2ps_cs 0.0: trying to bind to xirc2ps_cs
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x53, 5)
pcmcia_socket pcmcia_socket0: 0x01 0x3f 0x80 0xff ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x94, 4)
pcmcia_socket pcmcia_socket0: 0x00 0x02 0x0f 0x5c ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x9a, 12)
pcmcia_socket pcmcia_socket0: 0x02 0x06 0x00 0x3f ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa8, 8)
pcmcia_socket pcmcia_socket0: 0x13 0x06 0x00 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb6, 8)
pcmcia_socket pcmcia_socket0: 0x04 0x06 0x00 0x10 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x5a, 20)
pcmcia_socket pcmcia_socket0: 0xe7 0xc1 0x9d 0x0f ...
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0300-0x0010] , [io 0x02e8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0300-0x0010], 10 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request result 0: [io 0x0300-0x030f]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x02e8-0x0008], 10 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request result 0: [io 0x02e8-0x02ef]
pcmcia_socket pcmcia_socket0: pcmcia_request_io succeeded: [io 0x0300-0x030f] , [io 0x02e8-0x02ef]
pcmcia_socket pcmcia_socket0: pcmcia_write_cis_mem(1, 0x7fc0, 1)
pcmcia_socket pcmcia_socket0: pcmcia_write_cis_mem(1, 0x7fc1, 1)
pcmcia_socket pcmcia_socket0: pcmcia_write_cis_mem(1, 0x7fc2, 1)
pcmcia_socket pcmcia_socket0: pcmcia_write_cis_mem(1, 0x7fc5, 1)
pcmcia_socket pcmcia_socket0: pcmcia_write_cis_mem(1, 0x7fc6, 1)
pcmcia_request_configuration
pcmcia_write iobase_0 = 2e8
pcmcia_socket pcmcia_socket0: pcmcia_write_cis_mem(1, 0x7fc0, 1)
pcmcia_socket pcmcia_socket0: pcmcia_write_cis_mem(1, 0x7fc5, 1)
pcmcia_socket pcmcia_socket0: pcmcia_write_cis_mem(1, 0x7fc6, 1)
pcmcia_socket pcmcia_socket0: request_window results in [mem 0xa0001000-0xa0001fff]
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x2, 2)
pcmcia_socket pcmcia_socket0: 0x00 0xff 0x00 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6, 2)
pcmcia_socket pcmcia_socket0: 0x00 0xff 0x00 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x3c, 8)
pcmcia_socket pcmcia_socket0: 0x02 0xdb 0xf3 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 4)
pcmcia_socket pcmcia_socket0: 0xd7 0xa8 0x7f 0x26 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x70, 7)
pcmcia_socket pcmcia_socket0: 0x1f 0x08 0xea 0x60 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x79, 7)
pcmcia_socket pcmcia_socket0: 0x17 0x08 0xea 0x60 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 7)
pcmcia_socket pcmcia_socket0: 0x0f 0x08 0xea 0x60 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8b, 3)
pcmcia_socket pcmcia_socket0: 0x3f 0x08 0x63 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x06 0x00 0x00 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc0, 12)
pcmcia_socket pcmcia_socket0: 0x39 0x30 0x30 0x31 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xce, 4)
pcmcia_socket pcmcia_socket0: 0x01 0x00 0x00 0x00 ...
eth%d: autonegotiation failed; using 10mbs
eth%d: MII selected
eth%d: media 10BaseT, silicon revision 5
eth0: Xircom: port 0x300, irq 18, hwaddr 00:10:a4:f3:db:02
adding device to 0, function 0
pcmcia 0.1: devname is pcmcia0.1
pcmcia 0.1: pcmcia: registering new device pcmcia0.1 (IRQ: 18)
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: this is a pseudo-multi-function device
pcmcia 0.1: matched to serial_cs
serial_cs 0.1: trying to bind to serial_cs
serial_cs 0.1: trying to set up [0x0105:0x110a] (pfc: 1, multi: 0, quirk: (null))
0.1: ttyS3 at I/O 0x2e8 (irq = 18) is a 16550A
adding device to 0, function 0
eth0: autonegotiation failed; using 10mbs
eth0: MII selected
eth0: media 10BaseT, silicon revision 5
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Re: Re: Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-09-17 13:06 ` Komuro
@ 2010-09-17 18:52 ` Dominik Brodowski
2010-09-18 1:45 ` Komuro
2010-09-18 2:48 ` Komuro
2 siblings, 0 replies; 23+ messages in thread
From: Dominik Brodowski @ 2010-09-17 18:52 UTC (permalink / raw)
To: Komuro; +Cc: linux-pcmcia, linux-serial
Dear Komuro,
On Fri, Sep 17, 2010 at 10:06:51PM +0900, Komuro wrote:
> Xircom multi-function card still does not work.
Huh, that is indeed surprising, as the dmesg has all the usual config
descriptions:
eth0: Xircom: port 0x300, irq 18, hwaddr 00:10:a4:f3:db:02
...
0.1: ttyS3 at I/O 0x2e8 (irq = 18) is a 16550A
Are these lines different from what you see on a working kernel?
Best,
Dominik
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Re: Re: Re: Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-09-17 13:06 ` Komuro
2010-09-17 18:52 ` Dominik Brodowski
@ 2010-09-18 1:45 ` Komuro
2010-09-18 9:58 ` Dominik Brodowski
2010-09-18 2:48 ` Komuro
2 siblings, 1 reply; 23+ messages in thread
From: Komuro @ 2010-09-18 1:45 UTC (permalink / raw)
To: Dominik Brodowski; +Cc: linux-pcmcia, linux-serial
Hi,
>Are these lines different from what you see on a working kernel?
dmesg is same between working kernel and 2.6.36-rc3.
but 2.6.36-rc3(+patch) , the serial part still does not work.
----- Original Message -----
>Date: Fri, 17 Sep 2010 20:52:12 +0200
>From: Dominik Brodowski <linux@dominikbrodowski.net>
>To: Komuro <komurojun-mbn@nifty.com>
>Cc: linux-pcmcia@lists.infradead.org, linux-serial@vger.kernel.org
>Subject: Re: Re: Re: Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when
> calling pcmcia_request_io()
>
>
>Dear Komuro,
>
>On Fri, Sep 17, 2010 at 10:06:51PM +0900, Komuro wrote:
>> Xircom multi-function card still does not work.
>
>Huh, that is indeed surprising, as the dmesg has all the usual config
>descriptions:
>
>eth0: Xircom: port 0x300, irq 18, hwaddr 00:10:a4:f3:db:02
>...
>0.1: ttyS3 at I/O 0x2e8 (irq = 18) is a 16550A
>
>Are these lines different from what you see on a working kernel?
>
>Best,
> Dominik
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Re: Re: Re: Re: Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-09-17 13:06 ` Komuro
2010-09-17 18:52 ` Dominik Brodowski
2010-09-18 1:45 ` Komuro
@ 2010-09-18 2:48 ` Komuro
[not found] ` <6075501.91281284805231417.komurojun-mbn@nifty.com>
2 siblings, 1 reply; 23+ messages in thread
From: Komuro @ 2010-09-18 2:48 UTC (permalink / raw)
To: Dominik Brodowski; +Cc: linux-pcmcia, linux-serial
[-- Attachment #1: Type: text/plain, Size: 144 bytes --]
Hi,
Attached file is dmesg of another multi-function card(fmvj18x_cs)
This card works with 2.6.35
but does not work with 2.6.36rc3(+patch).
[-- Attachment #2: serial2.log --]
[-- Type: application/octet-stream, Size: 119993 bytes --]
pcmcia_socket pcmcia_socket0: pccard: PCMCIA card inserted into slot 0
pcmcia_socket pcmcia_socket0: cs: memory probe 0xa0000000-0xa0ffffff:
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf6 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf6 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf6 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
clean.
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x0, 2)
pcmcia_socket pcmcia_socket0: 0x01 0x02 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xf, 2)
pcmcia_socket pcmcia_socket0: 0x20 0x04 0xf7 0xc0 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x11, 4)
pcmcia_socket pcmcia_socket0: 0x05 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x15, 2)
pcmcia_socket pcmcia_socket0: 0x15 0x2a 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x41, 2)
pcmcia_socket pcmcia_socket0: 0x21 0x02 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x45, 2)
pcmcia_socket pcmcia_socket0: 0x1a 0x06 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4d, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x12 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x61, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6a, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x73, 2)
pcmcia_socket pcmcia_socket0: 0x1b 0x07 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7c, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x04 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x82, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8d, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x98, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa3, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x0d 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb2, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbd, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x09 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xc8, 2)
pcmcia_socket pcmcia_socket0: 0x22 0x10 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xda, 2)
pcmcia_socket pcmcia_socket0: 0xff 0x0b 0xf7 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x0b 0x0b 0x0b 0x0b ...
adding device to 0, function 0
pcmcia 0.0: devname is pcmcia0.0
pcmcia 0.0: creating config_t
pcmcia 0.0: pcmcia: registering new device pcmcia0.0 (IRQ: 18)
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x43, 2)
pcmcia_socket pcmcia_socket0: 0x02 0x01 0x15 0x48 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x17, 42)
pcmcia_socket pcmcia_socket0: 0x04 0x01 0x54 0x44 ...
registering driver serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: this is a pseudo-multi-function device
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
registering driver fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: this is a pseudo-multi-function device
pcmcia 0.0: matched to fmvj18x_cs
fmvj18x_cs 0.0: trying to bind to fmvj18x_cs
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x47, 6)
pcmcia_socket pcmcia_socket0: 0x05 0x35 0x20 0x08 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6, 9)
pcmcia_socket pcmcia_socket0: 0x04 0x06 0x00 0x80 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x4f, 18)
pcmcia_socket pcmcia_socket0: 0xc5 0x41 0x99 0x78 ...
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000-0x0020] , [io 0x03f8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000-0x0020], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request result 0: [io 0x0100-0x011f]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x03f8-0x0008], 5 lines
pcmcia_socket pcmcia_socket0: odd IO request
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
pcmcia_socket pcmcia_socket0: release_io_space for [io 0x0100-0x011f]
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000] , [io 0x02f8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000] , [io 0x03e8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000] , [io 0x02e8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
fmvj18x_cs: out of resource for serial
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000] , [io 0x0000]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
fmvj18x_cs 0.0: binding to fmvj18x_cs failed with -19
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x2, 2)
pcmcia_socket pcmcia_socket0: 0x00 0xff 0x00 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x63, 7)
pcmcia_socket pcmcia_socket0: 0x15 0x08 0xaa 0x60 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x6c, 7)
pcmcia_socket pcmcia_socket0: 0x25 0x08 0xaa 0x60 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x75, 7)
pcmcia_socket pcmcia_socket0: 0x35 0x08 0xaa 0x60 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x7e, 4)
pcmcia_socket pcmcia_socket0: 0x00 0x02 0x0f 0x5c ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x84, 9)
pcmcia_socket pcmcia_socket0: 0x05 0x1f 0x0f 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x8f, 9)
pcmcia_socket pcmcia_socket0: 0x06 0x1f 0x0f 0xcc ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0x9a, 9)
pcmcia_socket pcmcia_socket0: 0x07 0x1f 0x0f 0xcc ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xa5, 13)
pcmcia_socket pcmcia_socket0: 0x02 0x06 0x00 0x3f ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xb4, 9)
pcmcia_socket pcmcia_socket0: 0x13 0x06 0x00 0x1f ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xbf, 9)
pcmcia_socket pcmcia_socket0: 0x23 0x06 0x00 0x1f ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(1, 0xca, 16)
pcmcia_socket pcmcia_socket0: 0x84 0x06 0x00 0x0b ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x00 0x00 0x00 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x00 0x00 0x00 0x00 ...
pcmcia 0.0: update device information
adding device to 0, function 0
pcmcia 0.1: devname is pcmcia0.1
pcmcia 0.1: pcmcia: registering new device pcmcia0.1 (IRQ: 18)
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: this is a pseudo-multi-function device
pcmcia 0.1: matched to serial_cs
serial_cs 0.1: trying to bind to serial_cs
serial_cs 0.1: trying to set up [0x0105:0x4815] (pfc: 1, multi: 0, quirk: (null))
serial_cs 0.1: no usable port range found, giving up
serial_cs 0.1: failed to initialize
serial_cs 0.1: binding to serial_cs failed with -19
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: this is a pseudo-multi-function device
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: this is a pseudo-multi-function device
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: this is a pseudo-multi-function device
pcmcia 0.0: matched to fmvj18x_cs
fmvj18x_cs 0.0: trying to bind to fmvj18x_cs
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000-0x0020] , [io 0x03f8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000-0x0020], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request result 0: [io 0x0100-0x011f]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x03f8-0x0008], 5 lines
pcmcia_socket pcmcia_socket0: odd IO request
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
pcmcia_socket pcmcia_socket0: release_io_space for [io 0x0100-0x011f]
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000] , [io 0x02f8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000] , [io 0x03e8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000] , [io 0x02e8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
fmvj18x_cs: out of resource for serial
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000] , [io 0x0000]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
fmvj18x_cs 0.0: binding to fmvj18x_cs failed with -19
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: this is a pseudo-multi-function device
pcmcia 0.1: matched to serial_cs
serial_cs 0.1: trying to bind to serial_cs
serial_cs 0.1: trying to set up [0x0105:0x4815] (pfc: 1, multi: 0, quirk: (null))
serial_cs 0.1: no usable port range found, giving up
serial_cs 0.1: failed to initialize
serial_cs 0.1: binding to serial_cs failed with -19
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: this is a pseudo-multi-function device
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x00 0x00 0x00 0x00 ...
pcmcia_socket pcmcia_socket0: pcmcia_read_cis_mem(0, 0x0, 5)
pcmcia_socket pcmcia_socket0: 0x00 0x00 0x00 0x00 ...
pcmcia 0.0: update device information
pcmcia 0.1: update device information
adding device to 0, function 0
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: this is a pseudo-multi-function device
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to serial_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: trying to match to fmvj18x_cs
pcmcia 0.0: this is a pseudo-multi-function device
pcmcia 0.0: matched to fmvj18x_cs
fmvj18x_cs 0.0: trying to bind to fmvj18x_cs
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000-0x0020] , [io 0x03f8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000-0x0020], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request result 0: [io 0x0100-0x011f]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x03f8-0x0008], 5 lines
pcmcia_socket pcmcia_socket0: odd IO request
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
pcmcia_socket pcmcia_socket0: release_io_space for [io 0x0100-0x011f]
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000] , [io 0x02f8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000] , [io 0x03e8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000] , [io 0x02e8-0x0008]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
fmvj18x_cs: out of resource for serial
pcmcia_socket pcmcia_socket0: pcmcia_request_io: [io 0x0000] , [io 0x0000]
pcmcia_socket pcmcia_socket0: alloc_io_space request for [io 0x0000], 5 lines
pcmcia_socket pcmcia_socket0: alloc_io_space request failed (-22)
fmvj18x_cs 0.0: binding to fmvj18x_cs failed with -19
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: trying to match to serial_cs
pcmcia 0.1: this is a pseudo-multi-function device
pcmcia 0.1: matched to serial_cs
serial_cs 0.1: trying to bind to serial_cs
serial_cs 0.1: trying to set up [0x0105:0x4815] (pfc: 1, multi: 0, quirk: (null))
serial_cs 0.1: no usable port range found, giving up
serial_cs 0.1: failed to initialize
serial_cs 0.1: binding to serial_cs failed with -19
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: this is a pseudo-multi-function device
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
pcmcia 0.1: trying to match to fmvj18x_cs
[-- Attachment #3: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Re: Re: Re: Re: Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io()
2010-09-18 1:45 ` Komuro
@ 2010-09-18 9:58 ` Dominik Brodowski
0 siblings, 0 replies; 23+ messages in thread
From: Dominik Brodowski @ 2010-09-18 9:58 UTC (permalink / raw)
To: Komuro; +Cc: linux-pcmcia, linux-serial
Hey,
with 2.6.36-rc4+ (as of today), I see a (similar?) issue: When inserting
a multifunction card after reboot for the first time, the serial part does
not work. After re-inserting the card, it works. Re-loading the PCMCIA
modules does not make the bug re-appear, so I presume the issue to be
related to the serial layer. Could you verify whether it also works on
2.6.36-rc4+ for you, at least if you re-insert the card?
Will try to investigate further as to the cause(s) of this bug.
Best,
Dominik
^ permalink raw reply [flat|nested] 23+ messages in thread
* serial_cs bug (serial subsystem, not pcmcia subsystem)
[not found] ` <32784617.54791284881963911.komurojun-mbn@nifty.com>
@ 2010-09-19 8:54 ` Dominik Brodowski
0 siblings, 0 replies; 23+ messages in thread
From: Dominik Brodowski @ 2010-09-19 8:54 UTC (permalink / raw)
To: Komuro, linux-serial; +Cc: linux-pcmcia, pavel
Hey,
On Sun, Sep 19, 2010 at 04:39:23PM +0900, Komuro wrote:
> Hi,
>
> > http://userweb.kernel.org/~brodo/pcmcia-2.6.35.diff
>
> Serial part of Xircom card works with pcmcia-2.6.35.diff.
thanks for testing. This means that some non-PCMCIA change since 2.6.35
broke the serial part of Xircom cards -- using serial_cs... To the
linux-serial list: any idea of what might have changed? Pavel: any news from
your side?
Best,
Dominik
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2010-09-19 8:54 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20100805220511.GA7040@comet.dominikbrodowski.net>
[not found] ` <20100805220511.GA7040-S7uyTPAaJ/sb6pqDj42GsMgv3T4z79SOrE5yTffgRl4@public.gmane.org>
2010-08-05 22:06 ` [PATCH 06/18] pcmcia: remove cs_types.h Dominik Brodowski
2010-08-05 22:06 ` [PATCH 07/18] pcmcia: use pcmica_{read,write}_config_byte Dominik Brodowski
2010-08-05 22:06 ` [PATCH 10/18] pcmcia: do not use io_req_t after call to pcmcia_request_io() Dominik Brodowski
2010-08-05 22:06 ` [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io() Dominik Brodowski
2010-08-05 22:06 ` [PATCH 13/18] pcmcia: remove memreq_t Dominik Brodowski
2010-08-08 13:07 ` [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io() Komuro
2010-08-21 1:49 ` Komuro
2010-08-30 6:27 ` Dominik Brodowski
2010-08-31 12:05 ` Komuro
2010-09-04 10:54 ` Dominik Brodowski
2010-09-04 12:03 ` Komuro
2010-09-04 17:43 ` Dominik Brodowski
2010-09-07 12:24 ` Komuro
2010-09-07 17:41 ` Dominik Brodowski
2010-09-13 19:53 ` Dominik Brodowski
2010-09-17 13:06 ` Komuro
2010-09-17 18:52 ` Dominik Brodowski
2010-09-18 1:45 ` Komuro
2010-09-18 9:58 ` Dominik Brodowski
2010-09-18 2:48 ` Komuro
[not found] ` <6075501.91281284805231417.komurojun-mbn@nifty.com>
[not found] ` <14067525.113201284814231692.komurojun-mbn@nifty.com>
[not found] ` <32784617.54791284881963911.komurojun-mbn@nifty.com>
2010-09-19 8:54 ` serial_cs bug (serial subsystem, not pcmcia subsystem) Dominik Brodowski
2010-08-21 4:34 ` Re: [PATCH 11/18] pcmcia: do not use io_req_t when calling pcmcia_request_io() Komuro
2010-08-27 22:41 ` [BUG] " Komuro
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).