usb/79656: [usb] RHSC interrupts lost

Hans Petter Selasky hselasky at c2i.net
Sat Feb 25 01:14:01 PST 2006


On Saturday 25 February 2006 04:55, Ian Dowse wrote:
> Synopsis: [usb] RHSC interrupts lost
>
> State-Changed-From-To: open->feedback
> State-Changed-By: iedowse
> State-Changed-When: Sat Feb 25 03:53:50 UTC 2006
> State-Changed-Why:
>
> If possible, could you provide information about how to reproduce
> this problem, and a patch to fix it?
>
> http://www.freebsd.org/cgi/query-pr.cgi?pr=79656

Symptom: You plug a USB device and it is not detected at all.

I am not using the old USB driver, but basically what you need to do is this:

ehci.c
======

void
ehci_pcd_enable(void *v_sc)
{
        ehci_softc_t *sc = v_sc;

        ehci_pcd_able(sc, 1);

+        /* acknowledge any PCD interrupt */
+        EOWRITE4(sc, EHCI_USBSTS, EHCI_STS_PCD);

+        ehci_pcd(sc, sc->sc_intrxfer);
}

ohci.c
======

void
ohci_rhsc_enable(void *v_sc)
{
        ohci_softc_t *sc = v_sc;
        int s;

        s = splhardusb();
        ohci_rhsc_able(sc, 1);
        splx(s);

+        /* acknowledge any RHSC interrupt */
+        OWRITE4(sc, OHCI_INTERRUPT_STATUS, OHCI_RHSC);

+        ohci_rhsc(sc, sc->sc_intrxfer);
}

--HPS


More information about the freebsd-usb mailing list