Re: REMINDER: 2.4.25 and 2.6.x yenta detection issue

From: Jonathan Sambrook
Date: Thu Apr 29 2004 - 12:39:37 EST


At 23:10 on Wed 28/04/04, daniel.ritz@xxxxxx masquerading as 'Daniel Ritz' wrote:
> On Wednesday 28 April 2004 21:54, Jonathan Sambrook wrote:
> > At 21:07 on Fri 19/03/04, rmk+lkml@xxxxxxxxxxxxxxxx masquerading as 'Russell King' wrote:
> > > On Fri, Mar 19, 2004 at 03:14:54PM -0300, Marcelo Tosatti wrote:
> > > > It seems the problem reported by Silla Rizzoli is still present in 2.6.x
> > > > and 2.4.25 (both include the voltage interrogation patch by rmk).
> > > >
> > > > Daniel Ritz made some efforts to fix it, but did not seem to get it right.
> > >
> > > And that effort is still going on. Daniel and Pavel have been trying
> > > to find a good algorithm for detecting and fixing misconfigured TI
> > > interrupt routing, and this effort is still on-going.
> > >
> > > What would be useful is if Silla could test some of Daniel's patches
> > > and provide feedback.
> > >
> > > The latest 2.6 patch from Daniel is at:
> >
> > Any movement on 2.4.x w.r.t this?
> > Even a patch to get back 2.4.23 functionality whihc worked fine here
> > would be good (need > 2.4.25 for XFS).
> >
>
> well, the 2.4 of the TI interrupt routing that is merged in 2.6 is is here since april 6:
> http://ritz.dnsalias.org/linux/pcmcia-ti-routing-9_v24.patch
> (yes, the 2.6 version is nicer 'cos of the nicer override handling there)
>
> the problem silla rizzoli has is different. the patch that solved it:

Hmmn.. my TI1410 is still detecting my Yenta/Orinoco based configuration
as Anonymous Memory, that's with pcmcia-ti-routing-9_v24.patch :( As I
say, was working with 2.4.22.

dmesg says:
Linux Kernel Card Services 3.1.22
options: [pci] [cardbus] [pm]
PCI: Enabling device 01:06.0 (0000 -> 0002)
Yenta TI: socket 01:06.0, mfunc 0x00001d92, devctl 0x02
Yenta TI: socket 01:06.0 probing PCI interrupt failed, trying to fix
Yenta TI: socket 01:06.0 no PCI interrupts. Fish. Please report.
Yenta ISA IRQ mask 0x0000, PCI irq 0
Socket status: 10000011
cs: IO port probe 0x0c00-0x0cff: excluding 0xcf0-0xcff
cs: IO port probe 0x0800-0x08ff: clean.
cs: IO port probe 0x0100-0x04ff: excluding 0x4d0-0x4d7
cs: IO port probe 0x0a00-0x0aff: clean.
cs: memory probe 0x40000000-0x40000fff: excluding
0x40000000-0x40001fff

lspci:
01:06.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus
Controller (rev 01)

>
> --- snip ---
> the CB_CDETECT1 and CB_CDETECT2 bits both needs to be 0 for the card being
> recognized correctly (and one of the voltage bits need to be set).
>
> with the patch we always redo the interrogation as longs as we're not sure
> a card is really there (it would be bad to do so on some bridges). this solves
> hangs of the bridge seen at least on one TI1520.
>
> the if-statement was originally added 'cos some bridges misbehave if the
> interrogation is done when a card is already correctly recognised. this is
> still true with the patch.
>
> the ti1520 that silla rizzoli has shoots itself in the head (read: hangs) and does not
> regognise card insert/removal event. the card only works there if it was inserted on
> boot. redoing the interrogation when there's no card kicks the bridge back into the
> right state making it work...
>
> --- 1.15/drivers/pcmcia/yenta.c Tue Jan 6 11:55:05 2004
> +++ edited/drivers/pcmcia/yenta.c Fri Feb 20 23:17:54 2004
> @@ -677,10 +677,9 @@
>
> /* Redo card voltage interrogation */
> state = cb_readl(socket, CB_SOCKET_STATE);
> - if (!(state & (CB_CDETECT1 | CB_CDETECT2 | CB_5VCARD |
> - CB_3VCARD | CB_XVCARD | CB_YVCARD)))
> -
> - cb_writel(socket, CB_SOCKET_FORCE, CB_CVSTEST);
> + if (!(state & (CB_5VCARD | CB_3VCARD | CB_XVCARD | CB_YVCARD)) ||
> + (state & (CB_CDETECT1 | CB_CDETECT2)))
> + cb_writel(socket, CB_SOCKET_FORCE, CB_CVSTEST);
> }
>
> /* Called at resume and initialization events */
>

--

Jonathan Sambrook
Software Developer
Designer Servers

Attachment: pgp00000.pgp
Description: PGP signature