Issue with configuring multifunction card in Acer Aspire laptop.

kaustav.majumdar at kaustav.majumdar at
Wed May 17 05:50:38 EDT 2006

Hi all,

We are writing a PCMCIA client driver for USB function of a
multifunction PCMCIA card.
We are facing an issue in configuring both of the functions of the card.

The card hosts a serial function (function 0) and a USB function
(function 1).
The serial function is driven by standard serial_cs.
The dump_cis information of the card shows:

Socket 0:
    SRAM 200ns, 2kb
    ROM 200ns, 512b
    fn_specific 200ns, 512b
  mfc {
    manfid 0xABCD, 0xABCD
    vers_1 6.1, "CF CARD", "GENERIC", "", ""
    funcid serial_port [post]
      uart 16550 [space/mark/odd/even] [5/6/7/8] [1/1.5/2]
    config base 0x0200 mask 0x006f last_index 0x07
    cftable_entry 0x07 [default]
      Vcc Vnom 3300mV
      io 0x0000-0x000f [lines=4] [8bit]
      irq mask 0xffff [level] [shared]
  }, {
    funcid unknown
    config base 0x0300 mask 0x006f last_index 0x07
    cftable_entry 0x07 [default]
      Vcc Vnom 3300mV
      io 0x0000-0x003f [lines=6] [8bit]
      irq mask 0xffff [level] [shared]
      memory 0x0000-0x07ff @ 0x0000

The USB client driver is working properly when we don't insert the
serial_cs module.
That is, when the serial function is not configured then the USB client
driver is configuring the USB function perfectly.
But we are facing problem when we insert both the modules and try to
configure both the functions simultaneously.
In that case we are getting following messages from dmesg:

yenta_socket: yenta_set_mem_map
pcmcia: registering new device pcmcia0.0
yenta_socket: yenta_set_mem_map
yenta_socket: yenta_set_mem_map
yenta_socket: yenta_set_mem_map
yenta_socket: yenta_set_mem_map
serial_multi_config(0xc8791600) inside 1st while
serial_multi_config(0xc8791600) inside 1st if
i = 0x0 [This is the return value from pcmcia_request_io]
serial_multi_config(0xc8791600) inside 2nd if
yenta_socket: yenta_set_socket
yenta_socket: yenta_set_power
yenta_socket: yenta_set_socket
yenta_socket: yenta_set_power
yenta_socket: yenta_set_mem_map
yenta_socket: yenta_set_mem_map
yenta_socket: yenta_set_mem_map
yenta_socket: yenta_set_mem_map
yenta_socket: yenta_set_mem_map
yenta_socket: yenta_set_mem_map
yenta_socket: yenta_set_io_map
ttyS4: detected caps 00000700 should be 00000100
0.0: ttyS4 at I/O 0x100 (irq = 6) is a 16C950/954
pcmcia: registering new device pcmcia0.1
yenta_socket: yenta_set_mem_map
USB-HCD_cs: USB-HCD_cs_attach: Attach entry point starts
USB-HCD_cs: USB-HCD_cs_event: event for (0xc727c080)
USB-HCD_cs: USB-HCD_cs_config: config starting for (0xc727c080)
yenta_socket: yenta_set_mem_map
yenta_socket: yenta_set_mem_map
yenta_socket: yenta_set_mem_map
yenta_socket: yenta_set_mem_map
USB-HCD_cs: USB-HCD_cs_config: configuration failed
0.1: GetNextTuple: No more items
USB-HCD_cs: USB-HCD_cs_release(0xc727c080)
USB-HCD_cs: USB-HCD_cs_release: configuration can not be released
USB-HCD_cs: USB-HCD_cs_release: io window can not be released
USB-HCD_cs: USB-HCD_cs_release: release successful
USB-HCD_cs: USB-HCD_cs_event: event successfully handled for
USB-HCD_cs: USB-HCD_cs_attach: successfully completed
ds: ds_open(socket 0)
pcmcia: Detected deprecated PCMCIA ioctl usage.
pcmcia: This interface will soon be removed from the kernel; please
expect breakage unless you upgrade to new tools.
pcmcia: see for
ds: ds_release(socket 0)
ds: ds_open(socket 0)
ds: ds_release(socket 0)

On further study, we had found out this is failing in the function
alloc_io_space(), where it checks for most obvious conflicts.
Also we are getting following output from cat /proc/ioports:

0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
0070-0077 : rtc
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0100-010f : pcmcia_socket0
  0100-0107 : serial
0170-0177 : ide1
01f0-01f7 : ide0
0376-0376 : ide1
03c0-03df : vga+
03f6-03f6 : ide0
04d0-04d1 : pnp 00:03
0cf8-0cff : PCI conf1
1000-10ff : 0000:00:02.6
  1000-10ff : SiS SI7013 Modem
1400-14ff : 0000:00:02.7
  1400-14ff : SiS SI7012
1800-18ff : 0000:00:04.0
  1800-18ff : sis900
1c00-1c7f : 0000:00:02.6
  1c00-1c7f : SiS SI7013 Modem
1c80-1cff : 0000:00:02.7
  1c80-1cff : SiS SI7012
2000-200f : 0000:00:02.5
  2000-2007 : ide0
  2008-200f : ide1
2400-24ff : PCI CardBus #02
2800-28ff : PCI CardBus #02
8000-807f : motherboard
  8000-8003 : PM1a_EVT_BLK
  8004-8005 : PM1a_CNT_BLK
  8008-800b : PM_TMR
  8010-8015 : ACPI CPU throttle
  8016-8016 : PM2_CNT_BLK
  8020-8023 : GPE0_BLK
  8030-8033 : GPE1_BLK
8080-80ff : motherboard
  8080-80ff : pnp 00:03
8100-811f : 0000:00:02.1
  8100-811f : motherboard
    8100-811f : pnp 00:03
      8100-811f : sis96x_smbus
a000-afff : PCI Bus #01
  a000-a07f : 0000:01:00.0

The system we are testing on is Acer Aspire 3003LC running Linux Kernel, downloaded from
We are using PCMCIAUTILS-013.
The /etc/pcmcia/config.opts file reads as:

# Local PCMCIA Configuration File
# System resources available for PCMCIA cards
# NOTE: these settings have no effect on resources assigned to a
# CardBus bridge device itself; this file only affects resources
# assigned to cards.  Also, interrupt settings here will only affect
# ISA bus interrupts assigned to 16-bit cards.  PCI interrupts
# generally can't be reconfigured.
# With the kernel PCMCIA subsystem, these settings also have no effect
# at all on resources used for 32-bit CardBus cards.  Those are set by
# the PCI hotplug subsystem.

include port 0x100-0x4ff, port 0x800-0x8ff, port 0xc00-0xcff
include memory 0xc0000-0xfffff
include memory 0xa0000000-0xa0ffffff, memory 0x60000000-0x60ffffff

# High port numbers do not always work...
include port 0x1000-0x17ff

# Extra port range for IBM Token Ring
#include port 0xa00-0xaff

# Resources we should not use, even if they appear to be available

# First built-in serial port
exclude irq 4
# Second built-in serial port
#exclude irq 3
# First built-in parallel port
exclude irq 7
# PS/2 Mouse controller port, comment this out if you don't have a PS/2
# based mouse
exclude irq 12
# SB emulation ports
exclude port 0x220-0x22f
# Radeon IGP MCE's if you touch ports 3b0->3bb & 3d3
exclude port 0x3b0-0x3bb
exclude port 0x3d3-0x3d3


# Examples of options for loadable modules

# To fix sluggish network with IBM ethernet adapter...
#module "pcnet_cs" opts "mem_speed=600"

# Options for IBM Token Ring adapters
#module "ibmtr_cs" opts "mmiobase=0xd0000 srambase=0xd4000"

# Options for Raylink/WebGear driver: uncomment only one line...
# Generic ad-hoc network
module "ray_cs" opts "essid=ADHOC_ESSID hop_dwell=128 beacon_period=256
# Infrastructure network for older cards
#module "ray_cs" opts "net_type=1 essid=ESSID1"
# Infrastructure network for WebGear
#module "ray_cs" opts "net_type=1 essid=ESSID1 translate=1 hop_dwell=128

# Options for WaveLAN/IEEE driver (AccessPoint mode)...
#module "wvlan_cs" opts "station_name=MY_PC"
# Options for WaveLAN/IEEE driver (ad-hoc mode)...
#module "wvlan_cs" opts "port_type=3 channel=1 station_name=MY_PC"

# Options for Xircom Netwave driver...
#module "netwave_cs" opts "domain=0x100 scramble_key=0x0"

Looking forward to your suggestions.
Thanks in advance,

With Regards,
Kaustav Majumdar

The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments.

WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email.

More information about the linux-pcmcia mailing list