summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/controller/xhci.h
Commit message (Collapse)AuthorAgeFilesLines
* MFC r302371:hselasky2016-08-121-1/+1
| | | | | Fix regression issue with XHCI on 32-bit ARMv7 Armada-38x. Make sure "struct xhci_dev_ctx_addr" fits into a single 4K page until further.
* MFC r302076:hselasky2016-06-291-3/+4
| | | | | | | | Update the definition for number of scratch pages to match the latest version of the XHCI specification. Make sure the code can handle the maximum number of allowed scratch pages. Submitted by: Shichun_Ma@Dell.com
* MFC r295928:hselasky2016-03-071-0/+1
| | | | | | | | | | | Configure the correct bMaxPacketSize for control endpoints before requesting the initial complete device descriptor and not as part of the subsequent babble error recovery. Babble means that the received USB packet was bigger than than configured maximum packet size. This only affects enumeration of FULL speed USB devices which use a bMaxPacketSize different from 8 bytes. This patch might help fix enumeration of USB devices which exhibit USB I/O errors in dmesg during boot.
* MFC r279544:hselasky2015-03-051-1/+1
| | | | | | Add quirk to disable 64-bit XHCI DMA after r276717. Requested by: Gary Jennejohn <gljennjohn@gmail.com>
* MFC r276321, r276404, r276407 and r276799:hselasky2015-01-111-4/+15
| | | | | | | | | | | | Various XHCI fixes and improvements: - Improve and fix MSI interrupt allocation, setup and release. - Add missed flushing of data which can happen when "xhci_configure_mask()" is called from "xhci_configure_reset_endpoint()". Ensure the 3-strikes error feature is always enabled except for ISOCHRONOUS transfers. - Allow systems having a page size greater than 4K to use fewer scatter-gather XHCI TRB entries for its payload data. The XHCI controller can handle at least 65536 bytes per scatter-gather list entry.
* MFC r272349, r272422 and r272479:hselasky2014-10-061-1/+2
| | | | | | | | | | - Fix XHCI driver for devices which have more than 15 physical root HUB ports. The current bitmap array was too small to hold more than 16 bits and would at some point toggle the context size, which then would trigger an enumeration fault and cause a fallback to the EHCI companion controller, if any. - Make sure we always set the maximum number of valid contexts. - Set default cycle state in case of early interrupts.
* MFC r269139:hselasky2014-08-021-4/+4
| | | | | Split the XHCI TRB allocations into smaller parts, so that we don't end up allocating contiguous busdma buffers above PAGE_SIZE bytes.
* MFC r265015:hselasky2014-04-291-0/+1
| | | | | Setting the IMOD value below 0x3F8 can cause IRQ lockups in the Intel LynxPoint USB 3.0 controllers found in MacBookPro 2013's.
* MFC r261872:hselasky2014-02-231-0/+1
| | | | | Fix minor logical error in the XHCI driver. Set correct SETUP packet direction value.
* Stability fixes for Intel LynxPoint XHCI controllers. Disable XHCI porthselasky2013-09-211-1/+4
| | | | | | | | | | routing if we get certain errors. Poll for command completion upon command timeouts. The XHCI error events might not generate interrupts. MFC after: 1 week Reported by: Daniel Gerzo <danger@rulez.sk>, Antonis Anastasiadis <anastasiadis@datalive.gr> PR: usb/181159 Approved by: re (gjb)
* Use MSI for xhci(4), if supported.kib2013-07-091-0/+1
| | | | | | | Reviewed by: jhb Tested by: dchagin Sponsored by: The FreeBSD Foundation MFC after: 1 week
* Add support for polling the XHCI interrupt handler whenhselasky2013-06-071-0/+3
| | | | | | | | | | the regular interrupt handler is not working properly or in case of MSI interrupts which are not yet supported. Remove interrupt setup code for FreeBSD versions older than 700031. MFC after: 1 week PR: usb/179342
* Correct some XHCI streams mode transfer handling found by code inspection.hselasky2013-06-021-0/+1
| | | | | | | The existing streams mode support is not working and has not been tested due to lack of hardware which supports the given feature. MFC after: 1 week
* Add defines to more easily allow a single threaded version of the FreeBSDhselasky2013-02-051-2/+1
| | | | USB stack. This is useful for non-kernel purposes, like the loader.
* - Add support for Etron EJ168 USB 3.0 Host Controllers.hselasky2012-12-011-1/+1
| | | | | | | | | | | | | 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 tunable for XHCI port routing.hselasky2012-08-231-0/+1
| | | | MFC after: 1 week
* Add support for the so-called streams feature of BULK endpointshselasky2012-08-121-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 missing change to XHCI driver similar to changes in r228483.hselasky2011-12-311-3/+0
| | | | MFC after: 0 days
* - Add support for 64-byte contexts to XHCI driver.hselasky2011-01-131-0/+3
| | | | | | | - Remove some dead code. - Fixed one instance of missing endian conversion. Approved by: thompsa (mentor)
* Commit initial version of new XHCI driver which was written fromhselasky2010-10-031-0/+499
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