Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Aug 2010 15:45:40 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 181773 for review
Message-ID:  <201008031545.o73FjeR5003151@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@181773?ac=10

Change 181773 by hselasky@hselasky_laptop001 on 2010/08/03 15:45:30

	USB core:
		- allow the USB controller to select another USB
		address during the SET_ADDRESS request.

Affected files ...

.. //depot/projects/usb/src/sys/dev/usb/usb_request.c#37 edit

Differences ...

==== //depot/projects/usb/src/sys/dev/usb/usb_request.c#37 (text+ko) ====

@@ -1776,8 +1776,12 @@
 		DPRINTFN(0, "addr=%d, set address failed! (%s, ignored)\n",
 		    old_addr, usbd_errstr(err));
 	}
-	/* restore device address */
-	udev->address = old_addr;
+	/*
+	 * Restore device address, if the controller driver did not
+	 * set a new one:
+	 */
+	if (udev->address == USB_START_ADDR)
+		udev->address = old_addr;
 
 	/* allow device time to set new address */
 	usb_pause_mtx(mtx, USB_MS_TO_TICKS(USB_SET_ADDRESS_SETTLE));
@@ -1809,7 +1813,8 @@
 		goto retry;
 	}
 	/* restore address */
-	udev->address = old_addr;
+	if (udev->address == USB_START_ADDR)
+		udev->address = old_addr;
 	return (err);
 }
 



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