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>