Skip site navigation (1)Skip section navigation (2)
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>