svn commit: r190739 - head/sys/dev/usb

Andrew Thompson thompsa at FreeBSD.org
Sun Apr 5 11:21:33 PDT 2009


Author: thompsa
Date: Sun Apr  5 18:21:31 2009
New Revision: 190739
URL: http://svn.freebsd.org/changeset/base/190739

Log:
  MFp4 //depot/projects/usb at 159948
  
  Add more debugging output on enumeration failures.
  
  Submitted by:	Hans Petter Selasky

Modified:
  head/sys/dev/usb/usb_device.c
  head/sys/dev/usb/usb_request.c

Modified: head/sys/dev/usb/usb_device.c
==============================================================================
--- head/sys/dev/usb/usb_device.c	Sun Apr  5 18:21:21 2009	(r190738)
+++ head/sys/dev/usb/usb_device.c	Sun Apr  5 18:21:31 2009	(r190739)
@@ -1505,10 +1505,6 @@ usb2_alloc_device(device_t parent_dev, s
 	udev->speed = speed;
 	udev->flags.usb2_mode = usb2_mode;
 
-	/* speed combination should be checked by the parent HUB */
-
-	hub = udev->parent_hub;
-
 	/* search for our High Speed USB HUB, if any */
 
 	adev = udev;
@@ -1564,7 +1560,8 @@ usb2_alloc_device(device_t parent_dev, s
 		 */
 		if (err) {
 			DPRINTFN(0, "set address %d failed "
-			    "(ignored)\n", udev->address);
+			    "(%s, ignored)\n", udev->address, 
+			    usb2_errstr(err));
 		}
 		/* allow device time to set new address */
 		usb2_pause_mtx(NULL, 
@@ -1600,7 +1597,8 @@ usb2_alloc_device(device_t parent_dev, s
 	    USB_MAX_IPACKET, USB_MAX_IPACKET, 0, UDESC_DEVICE, 0, 0);
 	if (err) {
 		DPRINTFN(0, "getting device descriptor "
-		    "at addr %d failed!\n", udev->address);
+		    "at addr %d failed, %s!\n", udev->address,
+		    usb2_errstr(err));
 		/* XXX try to re-enumerate the device */
 		err = usb2_req_re_enumerate(udev, NULL);
 		if (err) {

Modified: head/sys/dev/usb/usb_request.c
==============================================================================
--- head/sys/dev/usb/usb_request.c	Sun Apr  5 18:21:21 2009	(r190738)
+++ head/sys/dev/usb/usb_request.c	Sun Apr  5 18:21:31 2009	(r190739)
@@ -1487,7 +1487,8 @@ usb2_req_re_enumerate(struct usb2_device
 retry:
 	err = usb2_req_reset_port(parent_hub, mtx, udev->port_no);
 	if (err) {
-		DPRINTFN(0, "addr=%d, port reset failed\n", old_addr);
+		DPRINTFN(0, "addr=%d, port reset failed, %s\n", 
+		    old_addr, usb2_errstr(err));
 		goto done;
 	}
 	/*
@@ -1505,8 +1506,8 @@ retry:
 	err = usb2_req_set_address(udev, mtx, old_addr);
 	if (err) {
 		/* XXX ignore any errors! */
-		DPRINTFN(0, "addr=%d, set address failed! (ignored)\n",
-		    old_addr);
+		DPRINTFN(0, "addr=%d, set address failed! (%s, ignored)\n",
+		    old_addr, usb2_errstr(err));
 	}
 	/* restore device address */
 	udev->address = old_addr;
@@ -1519,14 +1520,16 @@ retry:
 	    USB_MAX_IPACKET, USB_MAX_IPACKET, 0, UDESC_DEVICE, 0, 0);
 	if (err) {
 		DPRINTFN(0, "getting device descriptor "
-		    "at addr %d failed!\n", udev->address);
+		    "at addr %d failed, %s!\n", udev->address,
+		    usb2_errstr(err));
 		goto done;
 	}
 	/* get the full device descriptor */
 	err = usb2_req_get_device_desc(udev, mtx, &udev->ddesc);
 	if (err) {
 		DPRINTFN(0, "addr=%d, getting device "
-		    "descriptor failed!\n", old_addr);
+		    "descriptor failed, %s!\n", old_addr, 
+		    usb2_errstr(err));
 		goto done;
 	}
 done:


More information about the svn-src-all mailing list