summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/usb_device.c
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2014-01-24 07:48:52 +0000
committerhselasky <hselasky@FreeBSD.org>2014-01-24 07:48:52 +0000
commitf692196495136a8dd592a7f06a940e6fae03fd6d (patch)
tree839fc6ad65b9e949db26d1b71d21c9f0c50ef134 /sys/dev/usb/usb_device.c
parent34792a80a8f08a81c382a8100ee6ff81820ed688 (diff)
downloadFreeBSD-src-f692196495136a8dd592a7f06a940e6fae03fd6d.zip
FreeBSD-src-f692196495136a8dd592a7f06a940e6fae03fd6d.tar.gz
MFC r260588 and r260589:
- Separate I/O errors from reception of STALL PID. - Implement better error recovery for Transaction Translators, TTs, found in High Speed USB HUBs which translate from High Speed USB into FULL or LOW speed USB. In some rare cases SPLIT transactions might get lost, which might leave the TT in an unknown state. Whenever we detect such an error try to issue either a clear TT buffer request, or if that is not possible reset the whole TT.
Diffstat (limited to 'sys/dev/usb/usb_device.c')
-rw-r--r--sys/dev/usb/usb_device.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/usb/usb_device.c b/sys/dev/usb/usb_device.c
index 7e8181c..3af48d8 100644
--- a/sys/dev/usb/usb_device.c
+++ b/sys/dev/usb/usb_device.c
@@ -98,7 +98,7 @@ static void usb_init_attach_arg(struct usb_device *,
struct usb_attach_arg *);
static void usb_suspend_resume_sub(struct usb_device *, device_t,
uint8_t);
-static void usbd_clear_stall_proc(struct usb_proc_msg *_pm);
+static usb_proc_callback_t usbd_clear_stall_proc;
static usb_error_t usb_config_parse(struct usb_device *, uint8_t, uint8_t);
static void usbd_set_device_strings(struct usb_device *);
#if USB_HAVE_DEVCTL
@@ -1474,7 +1474,7 @@ usb_suspend_resume(struct usb_device *udev, uint8_t do_suspend)
static void
usbd_clear_stall_proc(struct usb_proc_msg *_pm)
{
- struct usb_clear_stall_msg *pm = (void *)_pm;
+ struct usb_udev_msg *pm = (void *)_pm;
struct usb_device *udev = pm->udev;
/* Change lock */
OpenPOWER on IntegriCloud