diff options
author | thompsa <thompsa@FreeBSD.org> | 2009-04-05 18:21:31 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2009-04-05 18:21:31 +0000 |
commit | c027cb0b46a4fc7b093b2dab4435f73ba122dde5 (patch) | |
tree | 690ee3160dee8b59e37a8582fd1c57e4657436f5 | |
parent | 5138467a033263478ce63a8558c823bdb9287b95 (diff) | |
download | FreeBSD-src-c027cb0b46a4fc7b093b2dab4435f73ba122dde5.zip FreeBSD-src-c027cb0b46a4fc7b093b2dab4435f73ba122dde5.tar.gz |
MFp4 //depot/projects/usb@159948
Add more debugging output on enumeration failures.
Submitted by: Hans Petter Selasky
-rw-r--r-- | sys/dev/usb/usb_device.c | 10 | ||||
-rw-r--r-- | sys/dev/usb/usb_request.c | 13 |
2 files changed, 12 insertions, 11 deletions
diff --git a/sys/dev/usb/usb_device.c b/sys/dev/usb/usb_device.c index 8d4e573..13eb0d4 100644 --- a/sys/dev/usb/usb_device.c +++ b/sys/dev/usb/usb_device.c @@ -1505,10 +1505,6 @@ usb2_alloc_device(device_t parent_dev, struct usb2_bus *bus, 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, struct usb2_bus *bus, */ 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, struct usb2_bus *bus, 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) { diff --git a/sys/dev/usb/usb_request.c b/sys/dev/usb/usb_request.c index be92c04..9f6c936 100644 --- a/sys/dev/usb/usb_request.c +++ b/sys/dev/usb/usb_request.c @@ -1487,7 +1487,8 @@ usb2_req_re_enumerate(struct usb2_device *udev, struct mtx *mtx) 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: |