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