Date: Wed, 12 Dec 2007 22:52:34 GMT From: Hans Petter Selasky <hselasky@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 130746 for review Message-ID: <200712122252.lBCMqYNb079935@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=130746 Change 130746 by hselasky@hselasky_laptop001 on 2007/12/12 22:52:00 Neither of OHCI, UHCI or EHCI supports USB device mode. Check for that when setting up pipes. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ehci.c#61 edit .. //depot/projects/usb/src/sys/dev/usb/ohci.c#50 edit .. //depot/projects/usb/src/sys/dev/usb/uhci.c#51 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ehci.c#61 (text+ko) ==== @@ -3924,10 +3924,15 @@ { ehci_softc_t *sc = EHCI_BUS2SC(udev->bus); - DPRINTFN(1, ("pipe=%p, addr=%d, endpt=%d (%d)\n", + DPRINTFN(1, ("pipe=%p, addr=%d, endpt=%d, mode=%d (%d)\n", pipe, udev->address, - edesc->bEndpointAddress, sc->sc_addr)); + edesc->bEndpointAddress, udev->flags.usb_mode, + sc->sc_addr)); + if (udev->flags.usb_mode != USB_MODE_HOST) { + /* not supported */ + return; + } if (udev->address == sc->sc_addr) { switch (edesc->bEndpointAddress) { case USB_CONTROL_ENDPOINT: ==== //depot/projects/usb/src/sys/dev/usb/ohci.c#50 (text+ko) ==== @@ -2842,10 +2842,15 @@ { ohci_softc_t *sc = OHCI_BUS2SC(udev->bus); - DPRINTFN(1, ("pipe=%p, addr=%d, endpt=%d (%d)\n", + DPRINTFN(1, ("pipe=%p, addr=%d, endpt=%d, mode=%d (%d)\n", pipe, udev->address, - edesc->bEndpointAddress, sc->sc_addr)); + edesc->bEndpointAddress, udev->flags.usb_mode, + sc->sc_addr)); + if (udev->flags.usb_mode != USB_MODE_HOST) { + /* not supported */ + return; + } if (udev->address == sc->sc_addr) { switch (edesc->bEndpointAddress) { case USB_CONTROL_ENDPOINT: ==== //depot/projects/usb/src/sys/dev/usb/uhci.c#51 (text+ko) ==== @@ -3332,10 +3332,15 @@ { uhci_softc_t *sc = UHCI_BUS2SC(udev->bus); - DPRINTFN(1, ("pipe=%p, addr=%d, endpt=%d (%d)\n", + DPRINTFN(1, ("pipe=%p, addr=%d, endpt=%d, mode=%d (%d)\n", pipe, udev->address, - edesc->bEndpointAddress, sc->sc_addr)); + edesc->bEndpointAddress, udev->flags.usb_mode, + sc->sc_addr)); + if (udev->flags.usb_mode != USB_MODE_HOST) { + /* not supported */ + return; + } if (udev->address == sc->sc_addr) { switch (edesc->bEndpointAddress) { case USB_CONTROL_ENDPOINT:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200712122252.lBCMqYNb079935>