aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/usb
diff options
context:
space:
mode:
authorAndrew Thompson <thompsa@FreeBSD.org>2010-06-22 20:57:48 +0000
committerAndrew Thompson <thompsa@FreeBSD.org>2010-06-22 20:57:48 +0000
commita4cadedb58732247495654bdc9dafaee55c4150d (patch)
tree309d928489f1ea66c71c2f1880e5b0478ac9dd21 /sys/dev/usb
parentca9d2489c685b47fb38c1fed62de511807159e4e (diff)
downloadsrc-a4cadedb58732247495654bdc9dafaee55c4150d.tar.gz
src-a4cadedb58732247495654bdc9dafaee55c4150d.zip
Add support for LOW speed BULK transfers. This mode is not recommended by the
USB 2.0 standard, though some USB devices use it anyway. Submitted by: Hans Petter Selasky
Notes
Notes: svn path=/head/; revision=209443
Diffstat (limited to 'sys/dev/usb')
-rw-r--r--sys/dev/usb/controller/ehci.c4
-rw-r--r--sys/dev/usb/controller/ohci.c4
-rw-r--r--sys/dev/usb/controller/uhci.c4
-rw-r--r--sys/dev/usb/usb_transfer.c2
4 files changed, 4 insertions, 10 deletions
diff --git a/sys/dev/usb/controller/ehci.c b/sys/dev/usb/controller/ehci.c
index 6f22c0a8e038..40c95241672a 100644
--- a/sys/dev/usb/controller/ehci.c
+++ b/sys/dev/usb/controller/ehci.c
@@ -3792,9 +3792,7 @@ ehci_ep_init(struct usb_device *udev, struct usb_endpoint_descriptor *edesc,
}
break;
case UE_BULK:
- if (udev->speed != USB_SPEED_LOW) {
- ep->methods = &ehci_device_bulk_methods;
- }
+ ep->methods = &ehci_device_bulk_methods;
break;
default:
/* do nothing */
diff --git a/sys/dev/usb/controller/ohci.c b/sys/dev/usb/controller/ohci.c
index fa7f23ac1963..0d630d763252 100644
--- a/sys/dev/usb/controller/ohci.c
+++ b/sys/dev/usb/controller/ohci.c
@@ -2614,9 +2614,7 @@ ohci_ep_init(struct usb_device *udev, struct usb_endpoint_descriptor *edesc,
}
break;
case UE_BULK:
- if (udev->speed != USB_SPEED_LOW) {
- ep->methods = &ohci_device_bulk_methods;
- }
+ ep->methods = &ohci_device_bulk_methods;
break;
default:
/* do nothing */
diff --git a/sys/dev/usb/controller/uhci.c b/sys/dev/usb/controller/uhci.c
index f87907c4925e..50fdb0d1e868 100644
--- a/sys/dev/usb/controller/uhci.c
+++ b/sys/dev/usb/controller/uhci.c
@@ -3068,9 +3068,7 @@ uhci_ep_init(struct usb_device *udev, struct usb_endpoint_descriptor *edesc,
}
break;
case UE_BULK:
- if (udev->speed != USB_SPEED_LOW) {
- ep->methods = &uhci_device_bulk_methods;
- }
+ ep->methods = &uhci_device_bulk_methods;
break;
default:
/* do nothing */
diff --git a/sys/dev/usb/usb_transfer.c b/sys/dev/usb/usb_transfer.c
index 535d12bfdef3..e9bd64eafc35 100644
--- a/sys/dev/usb/usb_transfer.c
+++ b/sys/dev/usb/usb_transfer.c
@@ -3057,7 +3057,7 @@ usbd_get_std_packet_size(struct usb_std_packet_size *ptr,
};
static const uint16_t bulk_min[USB_SPEED_MAX] = {
- [USB_SPEED_LOW] = 0, /* not supported */
+ [USB_SPEED_LOW] = 8,
[USB_SPEED_FULL] = 8,
[USB_SPEED_HIGH] = 512,
[USB_SPEED_VARIABLE] = 512,