summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/controller
Commit message (Collapse)AuthorAgeFilesLines
* MFC r308464, r308471: Add some device IDs found in my new laptop.mav2016-11-161-0/+2
|
* MFC r307518:hselasky2016-11-0713-78/+0
| | | | | | | | | | | | | | | | | | | | | Fix device delete child function. When detaching device trees parent devices must be detached prior to detaching its children. This is because parent devices can have pointers to the child devices in their softcs which are not invalidated by device_delete_child(). This can cause use after free issues and panic(). Device drivers implementing trees, must ensure its detach function detaches or deletes all its children before returning. While at it remove now redundant device_detach() calls before device_delete_child() and device_delete_children(), mostly in the USB controller drivers. Tested by: Jan Henrik Sylvester <me@janh.de> Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D8070
* MFC r303891, r303892:pfg2016-09-081-6/+6
| | | | | | | | sys: replace comma with semicolon when pertinent. Uses of commas instead of a semicolons can easily go undetected. The comma can serve as a statement separator but this shouldn't be abused when statements are meant to be standalone.
* MFC r281499:hselasky2016-09-083-3/+3
| | | | | | | | | | | Modify the return value of the uhci/ehci/xhci PCI probe routines to 'BUS_PROBE_DEFAULT'. This allows bhyve's 'ppt' driver to claim ownership of the device and pass it through to the guest. In the common case where there are no competing drivers for USB controllers this change is a no-op. PR: 212256
* MFC r304629:hselasky2016-08-291-0/+4
| | | | | | | | | | Don't separate the status stage of the XHCI USB control transfers into its own job because this breaks the simplified QEMU XHCI TRB parser, which expects the complete USB control transfer as a series of back to back TRBs. The old behaviour is kept under #ifdef in case this change breaks enumeration of any USB devices. PR: 212021
* MFC r304597:hselasky2016-08-291-6/+8
| | | | | | | | | | Fix for invalid use of bits in input context. Basically split configuring of EP0 and non-EP0 into xhci_cmd_evaluate_ctx() and xhci_cmd_configure_ep() respectivly. This resolves some errors when using XHCI under QEMU and gets is more in line with the XHCI specification. PR: 212021
* 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 r302336:hselasky2016-07-111-16/+18
| | | | | | | Fix interrupt loop when switching from USB device to USB host mode by clearing all endpoint interrupt bits. PR: 210736
* MFC r302306:hselasky2016-07-111-1/+4
| | | | | | | | Fix detection of USB device disconnects in USB host mode when the USB device is connected directly to the USB port of the DWC OTG, in this case a RPI-zero. PR: 210695
* MFC r302076:hselasky2016-06-293-7/+8
| | | | | | | | 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 r298983: Add some device IDs from Intel Sunrise Point chipsets.mav2016-05-201-0/+2
|
* MFC r297387: Add some device IDs found on AMD FCH shipsets.mav2016-04-123-1/+7
|
* r297229 (by hselasky): Add more UHCI PCI IDs.mav2016-03-291-0/+6
|
* MFC r297049: Add IDs for Intel Wellsburg USB controllers.mav2016-03-282-0/+6
|
* MFC r295463 (by hselasky): Correct PCI device description.mav2016-03-281-1/+1
|
* MFC r275137 (by adrian): Add PCI ID for Intel Lynx Point LP controller.mav2016-03-281-0/+2
| | | | PR: kern/195398
* MFC r295928:hselasky2016-03-072-0/+14
| | | | | | | | | | | 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 r293192:hselasky2016-01-121-6/+21
| | | | Fix for directly connected FULL or LOW speed USB devices.
* MFC r291199:hselasky2016-01-041-1/+1
| | | | Fix compile warning about shifting signed negative constant.
* MFC r290542:hselasky2015-11-192-39/+143
| | | | | | | Avoid using the bounce buffer when the source or destination buffer is 32-bits aligned. Merge the two bounce buffers into a single one. Some rough tests showed that the DWC OTG throughput on RPI2 increased by 10% after this patch.
* MFC r290195:hselasky2015-11-061-6/+11
| | | | | | | Reduce the DWC OTG interrupt load by not reading all the host channel status registers for every interrupt. Check a common host channel status interrupt register first, then conditionally read the individual host channel status registers.
* MFC r285914, r289029 and r289560:hselasky2015-11-032-82/+81
| | | | | | | | | | | | | | - Move the remainder of host controller capability registers reading from xhci_start_controller() to xhci_init(). These values don't change at run- time so there's no point of acquiring them on every USB_HW_POWER_RESUME instead of only once during initialization. In r276717, reading the first couple of registers in question already had been moved as a prerequisite for the changes in that revision. - Identify ASMedia ASM1042A controllers. - Use NULL instead of 0 for pointers. - Add quirks for USB 3.0 PCI devices. PR: 203650
* MFC r289030:kevlo2015-10-121-5/+10
| | | | | | | | | Add support for Fresco Logic USB 3.0 host controller. Fresco Logic hosts advertise MSI, but fail to actually generate MSI interrupts. We have to disable MSI use. Reviewed by: hselasky
* MFC r287355, r287772 and r287825:hselasky2015-10-082-0/+10
| | | | | | | | Add new USB PCI IDs. PR: 202807 Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com> Differential Revision: https://reviews.freebsd.org/D3665
* MFC r286773:hselasky2015-08-291-4/+10
| | | | | Improve the realtime properties of USB transfers for embedded systems like RPI-B and RPI-2.
* MFC r283067, r286118, r285638, r285935, r286778, r286780 and r286802:hselasky2015-08-293-408/+374
| | | | | | | | | | | | - Make the FIFO configuration a bit more flexible for the DWC OTG in device side mode. - Limit the number of times we loop inside the DWC OTG poll handler to avoid starving other fast interrupts. Fix a comment while at it. - Optimise the DWC OTG host mode driver's transmit path - Optimise the DWC OTG host mode driver's receive path - Minor code refactor to avoid duplicating code. - Handle NYET high speed tokens and predict NAK'ing is up next. - Fixes for HIGH speed ISOCHRONOUS traffic.
* MFC r283922:hselasky2015-06-051-56/+52
| | | | | | | Fix for control endpoint handling in the DWC OTG driver. The data stage processing is only allowed after the setup complete event has been received. Else a race may occur and the OUT data can be corrupted. While at it ensure resetting a FIFO has the required wait loop.
* MFC r283103:hselasky2015-06-031-2/+31
| | | | | Fix for DWC OTG device side isochronous transfers. The even or odd isochronous frame bit needs to be flipped.
* MFC r281881:hselasky2015-05-051-9/+7
| | | | | | Disable multi process interrupts, because the current code doesn't use them. Else we can end up in an infinite interrupt loop in USB device mode.
* MFC r279563:hselasky2015-03-061-1/+12
| | | | Add quirk for USB 3.0 controllers which don't support 64-bit DMA.
* MFC r279544:hselasky2015-03-053-6/+12
| | | | | | Add quirk to disable 64-bit XHCI DMA after r276717. Requested by: Gary Jennejohn <gljennjohn@gmail.com>
* MFC r279210:hselasky2015-03-052-12/+49
| | | | | | Add support for the DWC OTG v2 chipset found in the STM32F4 series of processors. Make sure we pullup the data lines in device mode when we power on the port.
* MFC r279233:hselasky2015-02-271-0/+7
| | | | | | Ensure that the XHCI driver will refresh the control endpoint settings when re-enumerating a FULL speed device. Else the wrong max packet setting might be used when trying to re-enumerate a FULL speed device.
* MFC r278850:hselasky2015-02-251-1/+8
| | | | | | Handle VBUS error interrupts. PR: 190471
* MFC r277454, r277460, r277465, r277466, r277467, r277469, r277470, r277471,ian2015-02-131-17/+17
| | | | | | | | | | | | | | | | | | | | | r277472, r277473, r277474, r277475, r277476, r277477, r277478, r277479, r277480, r277512, r277516: Add inline implementations of arm bus_space_read/write_N(). Revise the arm bus_space implementation to avoid dereferencing the tag on every operation to retrieve the bs_cookie value almost nothing actually uses. Use the explicit member initializer style to init the bus_space struct. Use arm/bus_space-v6.c for all armv6 systems Consolidate many identical implementations of bus_space to a single common tag and implementation shared by armv4 and armv6. Micro-optimize the new arm inline bus_space implementation by grouping all the data the inline functions access together at the start of the bus_space struct so that they all fit in a single cache line.
* MFC r272103: Move s3c2xx0 into the samsung directory.ian2015-02-131-1/+1
|
* MFC r278477:hselasky2015-02-131-2/+2
| | | | Fix DMA address casts.
* MFC r278071:hselasky2015-02-101-1/+11
| | | | | | | Section 3.2.9 in the XHCI specification about control transfers says that we should use a normal-TRB if there are more TRBs extending the data-stage TRB. Add a dedicated state bit to the internal USB transfer flags to handle this case.
* MFC r277136:hselasky2015-02-051-0/+40
| | | | | | | | | | Resolve a special case deadlock: When two or more threads are simultaneously detaching kernel drivers on the same USB device we can get stuck in the "usb_wait_pending_ref_locked()" function because the conditions needed for allowing detach are not met. While at it ensure that "flag_iserror" is only written when "priv_mtx" is locked, which is protecting it.
* MFC r266969 and r276717:hselasky2015-02-0520-56/+82
| | | | | | Add 64-bit DMA support in the XHCI controller driver. - Fix some comments and whitespaces while at it. - Add support for PAE.
* MFC r276798:hselasky2015-01-191-6/+11
| | | | | Fix handling of an error case when the MUSB driver is operating in USB device side mode.
* MFC r271156 and r273376:hselasky2015-01-112-0/+9
| | | | | - Add IDs for Intel Patsburg USB 2.0 controller. - Add the Intel BayTrail USB device which needs port routing for USB 3.0.
* MFC r276321, r276404, r276407 and r276799:hselasky2015-01-113-29/+48
| | | | | | | | | | | | 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 r275624:hselasky2014-12-151-0/+1
| | | | | | Add port routing support for Wildcat Point. PR: 195793
* MFC r275101:mav2014-12-032-0/+6
| | | | Add bunch of PCI IDs of Intel Wildcat Point (9 Series) chipsets.
* MFC r269569:hselasky2014-10-311-2/+2
| | | | | | | | Remove unused defines. Fix some device_printf's that were missing '\n' at the end or had spelling errors. PR: 145319
* MFC r272349, r272422 and r272479:hselasky2014-10-062-8/+16
| | | | | | | | | | - 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 r271953:hselasky2014-09-251-1/+8
| | | | | | | Some XHCI hardware requires dropping the endpoint context before adding it again. Approved by: re, glebius
* MFC r269565:hselasky2014-08-132-4/+4
| | | | Rename driver name a bit to avoid unit number confusion in dmesg.
* MFC r269604:hselasky2014-08-134-85/+127
| | | | | | | | - Implement fast interrupt handler to save CPU usage. - Cleanup some register reads and writes to use existing register access macros. - Ensure code which only applies to the control endpoint is not run for other endpoints in the data transfer path.
OpenPOWER on IntegriCloud