linux-mips
[Top] [All Lists]

Re: Problems with PCMCIA on AMD Alchemy DB1100

To: ppopov@embeddedalley.com
Subject: Re: Problems with PCMCIA on AMD Alchemy DB1100
From: Josh Green <jgreen@users.sourceforge.net>
Date: Wed, 02 Feb 2005 12:07:48 -0800
Cc: linux-mips@linux-mips.org
In-reply-to: <4200230A.6020002@embeddedalley.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1107304567.2912.34.camel@SillyPuddy.localdomain> <4200230A.6020002@embeddedalley.com>
Sender: linux-mips-bounce@linux-mips.org
> > Some additional problems that I have been experiencing, but am still
> > investigating.  If anyone has any ideas of what is causing these, I'd
> > love to hear them.
> > 
> > I have 2 Senao 802.11b PCMCIA cards and I'm using the hostap_cs driver.
> > If I initialize pcmcia (cardmgr) with both cards in the PCMCIA slots
> > only one of them will initialize, the second one causes an error:
> > 
> > Linux Kernel Card Services
> >   options:  none
> > hostap_cs: 0.2.6 - 2004-12-25 (Jouni Malinen <jkmaline@cc.hut.fi>)
> > hostap_cs: Registered netdevice wifi0
> > hostap_cs: index 0x01: Vcc 3.3, irq 34, io 0xc0000000-0xc000003f
> > wifi0: NIC: id=0x800c v1.0.0
> > wifi0: PRI: id=0x15 v1.1.0
> > wifi0: STA: id=0x1f v1.4.9
> > 0.0: RequestIO: Configuration locked    <--- Second card causes this
> > 0.0: GetNextTuple: No more items
> > ds: unable to create instance of 'hostap_cs'!
> > 
> > 
> > If I bring up PCMCIA without the cards in, and then insert one, and then
> > the other, both cards initialize fine and I get wlan0 and wlan1.
> 


I think I found this bug, and this time its in drivers/pcmcia/ds.c which
surprises me, since I would think it would have been detected sooner.
Here is the patch:

--- ds.c.orig   2005-01-13 06:06:18.000000000 -0800
+++ ds.c        2005-02-02 11:58:29.125469160 -0800
@@ -660,7 +660,7 @@
                        p_dev = pcmcia_get_dev(p_dev);
                        if (!p_dev)
                                continue;
-                       if ((!p_dev->client.state & CLIENT_UNBOUND) ||
+                       if ((!(p_dev->client.state & CLIENT_UNBOUND)) ||
                            (!p_dev->dev.driver)) {
                                pcmcia_put_dev(p_dev);
                                continue;


Best regards,
        Josh Green

Attachment: signature.asc
Description: This is a digitally signed message part

<Prev in Thread] Current Thread [Next in Thread>