Re: Problems with PCMCIA (Texas Instruments PCI1450)

From: Russell King
Date: Fri Sep 05 2003 - 14:57:07 EST


On Fri, Sep 05, 2003 at 09:40:27PM +0200, Daniel Ritz wrote:
> On Fri September 5 2003 20:38, Russell King wrote:
> > On Fri, Sep 05, 2003 at 08:19:28PM +0200, Daniel Ritz wrote:
> > > ok, now i can reproduce the problem on my ti1410 too. on boot detection
> > > works fine with an UP kernel and fails with an SMP kernel. thanx for the
> > > hint.
> > >
> > > i go to look at the csets a bit and try to find out more....
> > > (i think i know which change...)
> >
> > Care to provide a hint?
>
> yes. just tested. patch below makes on boot detection with a SMP kernel
> working again (for me). which is nice, but i don't see why it is better
> that way...

Ok, now I need to hear from Sven (and others) to see if this patch fixes
their problems. Also, are these other people running a SMP kernel as
well?

Meanwhile, I'm wondering if we have a timing problem here. Can you check
whether adding a mdelay(1) just after the BUG_ON in the original code
fixes the problem?

> ===== cs.c 1.56 vs edited =====
> --- 1.56/drivers/pcmcia/cs.c Sun Aug 3 14:48:43 2003
> +++ edited/cs.c Fri Sep 5 21:42:09 2003
> @@ -316,7 +316,6 @@
>
> wait_for_completion(&socket->thread_done);
> BUG_ON(!socket->thread);
> - pcmcia_parse_events(socket, SS_DETECT);
>
> return 0;
> }
> @@ -1524,6 +1523,9 @@
> if (client == NULL)
> return CS_OUT_OF_RESOURCE;
>
> + if (++s->real_clients == 1)
> + pcmcia_parse_events(s, SS_DETECT);
> +
> *handle = client;
> client->state &= ~CLIENT_UNBOUND;
> client->Socket = s;
>

--
Russell King (rmk@xxxxxxxxxxxxxxxx) http://www.arm.linux.org.uk/personal/
Linux kernel maintainer of:
2.6 ARM Linux - http://www.arm.linux.org.uk/
2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/