summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/controller/xhci.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix spelling.hselasky2013-03-201-1/+2
|
* Add defines to more easily allow a single threaded version of the FreeBSDhselasky2013-02-051-9/+2
| | | | USB stack. This is useful for non-kernel purposes, like the loader.
* Do not unnecessarily split a string literal, becausehselasky2013-01-301-2/+2
| | | | | | splitting it makes it hard to grep. Submitted by: Christoph Mallon
* Modify the FreeBSD USB kernel code so that it can be compiled directlyhselasky2013-01-301-3/+6
| | | | | | | | | | | | | | | | | | | | | | into the FreeBSD boot loader, typically for non-USB aware BIOSes, EFI systems or embedded platforms. This is also useful for out of the system compilation of the FreeBSD USB stack for various purposes. The USB kernel files can now optionally include a global header file which should include all needed definitions required to compile the FreeBSD USB stack. When the global USB header file is included, no other USB header files will be included by default. Add new file containing the USB stack configuration for the FreeBSD loader build. Replace some __FBSDID()'s by /* $FreeBSD$ */ comments. Now all USB files follow the same style. Use cases: - console in loader via USB - loading kernel via USB Discussed with: Hiroki Sato, hrs @ EuroBSDCon
* Add missing NULL pointer check.hselasky2013-01-301-0/+6
| | | | | Reported by: Lars Engels MFC after: 1 week
* Shave off another register write to save some morehselasky2013-01-081-12/+17
| | | | | | | | microseconds of PCI access time. Tested by: sos @ Submitted by: sos @ MFC after: 1 week
* Optimise the XHCI interrupt handling.hselasky2013-01-071-2/+6
| | | | | | | | | | | This patch will save CPU time when the XHCI interrupt is shared with other devices. Only check event rings when interrupt bits are set. Otherwise would indicate hiding possible hardware fault(s). Tested by: sos @ Submitted by: sos @ MFC after: 1 week
* - Add support for Etron EJ168 USB 3.0 Host Controllers.hselasky2012-12-011-19/+51
| | | | | | | | | | | | | This brand of controllers expects that the number of contexts specified in the input slot context points to an active endpoint context, else it refuses to operate. - Ring the correct doorbell when streams mode is used. - Wrap one or two long lines. Tested by: Markus Pfeiffer (DragonFlyBSD) MFC after: 1 week
* Add missing CTLFLAG_TUN flag to tunable sysctls in USB stack.hselasky2012-10-261-4/+3
| | | | | | | | Rearrange the tunables and belonging sysctl declarations, so that they are next to eachother. Submitted by: n_hibma @ MFC after: 1 week
* Inherit USB mode from RootHUB port where the USB device is connected.hselasky2012-10-011-4/+0
| | | | | | | Only RootHUB ports can be dual mode. Disallow OTG ports on external HUBs. This simplifies some checks in the USB controller drivers. MFC after: 1 week
* Add tunable for XHCI port routing.hselasky2012-08-231-2/+15
| | | | MFC after: 1 week
* Add support for the so-called streams feature of BULK endpointshselasky2012-08-121-29/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in SUPER-speed mode, USB 3.0. This feature has not been tested yet, due to lack of hardware. This feature is useful when implementing protocols like UASP, USB attached SCSI which promises higher USB mass storage throughput. This patch also implements support for hardware processing of endpoints for increased performance. The switching to hardware processing of an endpoint is done via a callback to the USB controller driver. The stream feature is implemented like a variant of a hardware USB protocol. USB controller drivers implementing device mode needs to be updated to implement the new "xfer_stall" USB controller method and remove the "xfer" argument from the "set_stall" method. The API's toward existing USB drivers are preserved. To setup a USB transfer in stream mode, set the "stream_id" field of the USB config structure to the desired value. The maximum number of BULK streams is currently hardcoded and limited to 8 via a define in usb_freebsd.h. All USB drivers should be re-compiled after this change. LibUSB will be updated next week to support streams mode. A new IOCTL to setup BULK streams as already been implemented. The ugen device nodes currently only supports stream ID zero. The FreeBSD version has been bumped. MFC after: 2 weeks
* Add support for Multi-TT mode of modern USB HUBs.hselasky2012-04-291-13/+36
| | | | | | | | | | This will give you more bandwidth for isochronous FULL speed applications connected through a High Speed HUB. This patch has been tested with XHCI and EHCI. MFC after: 1 week
* Fix compiler warnings, mostly signed issues,hselasky2012-04-021-4/+3
| | | | | | when USB modules are compiled with WARNS=9. MFC after: 1 weeks
* Bugfix: Make sure the XHCI driver doesn't clearhselasky2012-01-131-1/+1
| | | | | | | the route string field. Else USB 3.0 HUBs won't work. MFC after: 5 days
* Correct use of USB 3.0 POWER bit in the port status register,hselasky2012-01-131-2/+7
| | | | | | | hence it was overlapping the USB 3.0 root HUB's speed bits. Reported by: Kohji Okuno MFC after: 1 week
* - Try to fix support for USB 3.0 HUBs.hselasky2012-01-121-8/+13
| | | | | | - Try to fix support for USB 3.0 suspend and resume. MFC after: 1 week
* Add missing change to XHCI driver similar to changes in r228483.hselasky2011-12-311-16/+20
| | | | MFC after: 0 days
* Make some XHCI command timeouts less strict.hselasky2011-11-181-9/+9
| | | | | Reported by: Jan Henrik Sylvester MFC after: 1 week
* Some brands of XHCI controllers needs more time to reset.hselasky2011-11-151-3/+3
| | | | | Reported by: Jan Henrik Sylvester MFC after: 1 week
* Fix size of USB 3.0 descriptor field.hselasky2011-11-091-1/+1
| | | | MFC after: 3 days
* Fix size of USB 3.0 descriptor field.hselasky2011-11-091-1/+2
| | | | MFC after: 3 days
* Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.ed2011-11-071-1/+1
| | | | | | The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
* Fix suspend and resume of FULL and HIGH speed USB deviceshselasky2011-10-261-1/+14
| | | | | | | in the generic XHCI driver. There appears to be some minor logic missing for this feature to work. MFC after: 3 days
* - Add support for 64-byte contexts to XHCI driver.hselasky2011-01-131-46/+102
| | | | | | | - Remove some dead code. - Fixed one instance of missing endian conversion. Approved by: thompsa (mentor)
* Remove unneeded includes of <sys/linker_set.h>. Other headers that usejhb2011-01-111-1/+0
| | | | | | it internally contain nested includes. Reviewed by: bde
* Commit initial version of new XHCI driver which was written fromhselasky2010-10-031-0/+3862
scratch. This driver adds support for USB3.0 devices. The XHCI interface is also backwards compatible to USB2.0 and USB1.0 and will evntually replace the OHCI/UHCI and EHCI drivers. There will be follow-up commits during the coming week to link the driver into the default kernel build and add missing USB3.0 functionality in the USB core. Currently only the driver files are committed. Approved by: thompsa (mentor)
OpenPOWER on IntegriCloud