Author: thompsa
Date: Tue Jun 22 20:57:48 2010
New Revision: 209443
URL: http://svn.freebsd.org/changeset/base/209443

Log:
  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

Modified:
  head/sys/dev/usb/controller/ehci.c
  head/sys/dev/usb/controller/ohci.c
  head/sys/dev/usb/controller/uhci.c
  head/sys/dev/usb/usb_transfer.c

Modified: head/sys/dev/usb/controller/ehci.c
==============================================================================
--- head/sys/dev/usb/controller/ehci.c  Tue Jun 22 20:52:35 2010        
(r209442)
+++ head/sys/dev/usb/controller/ehci.c  Tue Jun 22 20:57:48 2010        
(r209443)
@@ -3792,9 +3792,7 @@ ehci_ep_init(struct usb_device *udev, st
                        }
                        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 */

Modified: head/sys/dev/usb/controller/ohci.c
==============================================================================
--- head/sys/dev/usb/controller/ohci.c  Tue Jun 22 20:52:35 2010        
(r209442)
+++ head/sys/dev/usb/controller/ohci.c  Tue Jun 22 20:57:48 2010        
(r209443)
@@ -2614,9 +2614,7 @@ ohci_ep_init(struct usb_device *udev, st
                        }
                        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 */

Modified: head/sys/dev/usb/controller/uhci.c
==============================================================================
--- head/sys/dev/usb/controller/uhci.c  Tue Jun 22 20:52:35 2010        
(r209442)
+++ head/sys/dev/usb/controller/uhci.c  Tue Jun 22 20:57:48 2010        
(r209443)
@@ -3068,9 +3068,7 @@ uhci_ep_init(struct usb_device *udev, st
                        }
                        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 */

Modified: head/sys/dev/usb/usb_transfer.c
==============================================================================
--- head/sys/dev/usb/usb_transfer.c     Tue Jun 22 20:52:35 2010        
(r209442)
+++ head/sys/dev/usb/usb_transfer.c     Tue Jun 22 20:57:48 2010        
(r209443)
@@ -3057,7 +3057,7 @@ usbd_get_std_packet_size(struct usb_std_
        };
 
        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,
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to