#
358019 |
|
17-Feb-2020 |
hselasky |
MFC r356597: Define the XHCI endpoint states.
Sponsored by: Mellanox Technologies
|
#
356782 |
|
16-Jan-2020 |
hselasky |
MFC r356545: Fix a XHCI driver issue with Intel's Gemini Lake SOC.
Do not configure any endpoint twice, but instead keep track of which endpoints are configured on a per device basis, and use an evaluate endpoint context command instead. When changing the configuration make sure all endpoints get deconfigured and the configured endpoint mask is reset.
This fixes an issue where an endpoint might stop working if there is an error and the endpoint needs to be reconfigured as a part of the error recovery mechanism in the FreeBSD USB stack.
Tested by: Shichun.Ma@dell.com Sponsored by: Mellanox Technologies
|
#
333199 |
|
03-May-2018 |
hselasky |
MFC r333100: Improve fix in r304629 by allowing configuration of the behaviour through a SYSCTL instead of a compile time define.
Add quirk by default for all LynxPoint XHCI controllers.
PR: 227602 Sponsored by: Mellanox Technologies
|
#
331722 |
|
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re)
|
#
330897 |
|
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg
|
#
315251 |
|
14-Mar-2017 |
hselasky |
MFC r312424:
Fix problem with suspend and resume when using Skylake chipsets. Make sure the XHCI controller is reset after halting it. The problem is clearly a BIOS bug as the suspend and resume is failing without loading the XHCI driver. The same happens when using Linux and the XHCI driver is not loaded.
Submitted by: Yanko Yankulov <yanko.yankulov@gmail.com> PR: 216261
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
302371 |
|
06-Jul-2016 |
hselasky |
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.
Approved by: re (hrs) MFC after: 1 week
|
#
302076 |
|
22-Jun-2016 |
hselasky |
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 Approved by: re (hrs) MFC after: 1 week
|
#
295928 |
|
23-Feb-2016 |
hselasky |
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 after: 1 week
|
#
292683 |
|
24-Dec-2015 |
andrew |
Ads support to the xhci pci attachment to use MSI-X interrupts when available. As with MSI interrupts these can be disabled by setting hw.usb.xhci.msix to 0 in the loader.
MSI-X interrupts are needed on some hardware, for example the Cavium ThunderX only supports them, and with this we don't fall back to polling.
PR: 204378 Reviewed by: hselasky, jhb MFC after: 1 week (after r292669) Sponsored by: ABT Systems Ltd Differential Revision: https://reviews.freebsd.org/D4698
|
#
279544 |
|
02-Mar-2015 |
hselasky |
Add quirk to disable 64-bit XHCI DMA after r276717.
Requested by: Gary Jennejohn <gljennjohn@gmail.com> MFC after: 3 days
|
#
276799 |
|
07-Jan-2015 |
hselasky |
Fix misleading comment.
MFC after: 1 week Reported by: rpaulo@
|
#
276407 |
|
30-Dec-2014 |
hselasky |
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 after: 1 week Suggested by: Kohji Okuno <okuno.kohji@jp.panasonic.com>
|
#
276321 |
|
27-Dec-2014 |
marius |
Improve/fix interrupt allocation/setup/release: - Simplify MSI allocation to what is actually needed for a single one. - Release the MSI and the corresponding bus resource as appropriate when either the interrupt resource cannot be allocated or setting up the interrupt fails. - Error out when interrupt allocation or setup fails and polling is disabled. - Release the MSI after the corresponding bus resource so the former is not leaked on detach. - Remove a redundant softc member.
MFC after: 3 days
|
#
272479 |
|
03-Oct-2014 |
hselasky |
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.
MFC after: 3 days
|
#
269139 |
|
26-Jul-2014 |
hselasky |
Split the XHCI TRB allocations into smaller parts, so that we don't end up allocating contiguous busdma buffers above PAGE_SIZE bytes.
MFC after: 1 week Tested by: Ruslan Bukin <br@bsdpad.com>
|
#
265015 |
|
27-Apr-2014 |
hselasky |
Setting the IMOD value below 0x3F8 can cause IRQ lockups in the Intel LynxPoint USB 3.0 controllers found in MacBookPro 2013's.
MFC after: 2 days Tested by: Huang Wen Hui <huanghwh@gmail.com>
|
#
261872 |
|
14-Feb-2014 |
hselasky |
Fix minor logical error in the XHCI driver. Set correct SETUP packet direction value.
MFC after: 2 days Reported by: Horse Ma <HMa@wyse.com>
|
#
255768 |
|
21-Sep-2013 |
hselasky |
Stability fixes for Intel LynxPoint XHCI controllers. Disable XHCI port 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)
|
#
253094 |
|
09-Jul-2013 |
kib |
Use MSI for xhci(4), if supported.
Reviewed by: jhb Tested by: dchagin Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
251499 |
|
07-Jun-2013 |
hselasky |
Add support for polling the XHCI interrupt handler when 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
|
#
251247 |
|
02-Jun-2013 |
hselasky |
Correct some XHCI streams mode transfer handling found by code inspection. 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
|
#
246363 |
|
05-Feb-2013 |
hselasky |
Add defines to more easily allow a single threaded version of the FreeBSD USB stack. This is useful for non-kernel purposes, like the loader.
|
#
243780 |
|
01-Dec-2012 |
hselasky |
- Add support for Etron EJ168 USB 3.0 Host Controllers. 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
|
#
239617 |
|
23-Aug-2012 |
hselasky |
Add tunable for XHCI port routing.
MFC after: 1 week
|
#
239214 |
|
12-Aug-2012 |
hselasky |
Add support for the so-called streams feature of BULK endpoints 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
|
#
229086 |
|
31-Dec-2011 |
hselasky |
Add missing change to XHCI driver similar to changes in r228483.
MFC after: 0 days
|
#
217374 |
|
13-Jan-2011 |
hselasky |
- Add support for 64-byte contexts to XHCI driver. - Remove some dead code. - Fixed one instance of missing endian conversion.
Approved by: thompsa (mentor)
|
#
213379 |
|
03-Oct-2010 |
hselasky |
Commit initial version of new XHCI driver which was written from 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)
|