summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/controller
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2010-10-04 23:18:05 +0000
committerhselasky <hselasky@FreeBSD.org>2010-10-04 23:18:05 +0000
commitf58df490d49462ae839658025d0adc79cf5848ad (patch)
treec082c15f2b4af936b99eda2cd4c67777fdf391ee /sys/dev/usb/controller
parentcacc63611c920df4de9b0e17b85172a00c979e75 (diff)
downloadFreeBSD-src-f58df490d49462ae839658025d0adc79cf5848ad.zip
FreeBSD-src-f58df490d49462ae839658025d0adc79cf5848ad.tar.gz
This commit adds full support for USB 3.0 devices in host and device
mode in the USB core. The patch mostly consists of updating the USB HUB code to support USB 3.0 HUBs. This patch also add some more USB controller methods to support more active-alike USB controllers like the XHCI which needs to be informed about various device state events. USB 3.0 HUBs are not tested yet, due to lack of hardware, but are believed to work. After this update the initial device descriptor is only read twice when we know that the bMaxPacketSize is too small for a single packet transfer of this descriptor. Approved by: thompsa (mentor)
Diffstat (limited to 'sys/dev/usb/controller')
-rw-r--r--sys/dev/usb/controller/usb_controller.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/usb/controller/usb_controller.c b/sys/dev/usb/controller/usb_controller.c
index d1a3da2..71e7ef1 100644
--- a/sys/dev/usb/controller/usb_controller.c
+++ b/sys/dev/usb/controller/usb_controller.c
@@ -107,6 +107,7 @@ static driver_t usb_driver = {
DRIVER_MODULE(usbus, ohci, usb_driver, usb_devclass, 0, 0);
DRIVER_MODULE(usbus, uhci, usb_driver, usb_devclass, 0, 0);
DRIVER_MODULE(usbus, ehci, usb_driver, usb_devclass, 0, 0);
+DRIVER_MODULE(usbus, xhci, usb_driver, usb_devclass, 0, 0);
/* Device Only Drivers */
DRIVER_MODULE(usbus, at91_udp, usb_driver, usb_devclass, 0, 0);
@@ -359,6 +360,11 @@ usb_bus_attach(struct usb_proc_msg *pm)
device_printf(bus->bdev, "480Mbps Wireless USB v2.5\n");
break;
+ case USB_REV_3_0:
+ speed = USB_SPEED_SUPER;
+ device_printf(bus->bdev, "4.8Gbps Super Speed USB v3.0\n");
+ break;
+
default:
device_printf(bus->bdev, "Unsupported USB revision\n");
usb_root_mount_rel(bus);
OpenPOWER on IntegriCloud