Subject: Re: ehci and Dell keyboards
To: Lennart Augustsson <lennart@augustsson.net>
From: Patrick Welche <prlw1@newn.cam.ac.uk>
List: current-users
Date: 11/15/2005 16:45:29
What seems to be happening is that when you plug the keyboard into a USB
port, ehci_intr1() is called:
intrs = EHCI_STS_INTRS(EOREAD4(sc, EHCI_USBSTS));
if (!intrs)
return (0);
eintrs = intrs & sc->sc_eintrs;
DPRINTFN(7, ("ehci_intr1: sc=%p intrs=0x%x(0x%x) eintrs=0x%x\n",
sc, (u_int)intrs, EOREAD4(sc, EHCI_USBSTS),
(u_int)eintrs));
if (!eintrs)
return (0);
intrs = 8 = EHCI_STS_FLR /* RWC frame list rollover */
sc->sc_eintrs = 55 = 32+16+4+2+1 (everything apart from 8)
=> eintrs = 0, and we return to ehci_intr() without doing anything.
It seems to me that "frame list rollover" - whatever that is - isn't
implemented, given that EHCI_STS_FLR doesn't appear in EHCI_NORMAL_INTRS.
Looks like a read of ehci-r10.pdf comes next...
Cheers,
Patrick