Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Feb 2006 10:14:05 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        Ian Dowse <iedowse@freebsd.org>
Cc:        freebsd-usb@freebsd.org
Subject:   Re: usb/79656: [usb] RHSC interrupts lost
Message-ID:  <200602251014.06172.hselasky@c2i.net>
In-Reply-To: <200602250355.k1P3tUUm048030@freefall.freebsd.org>
References:  <200602250355.k1P3tUUm048030@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602251014.06172.hselasky>