summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/controller
Commit message (Collapse)AuthorAgeFilesLines
...
* - Add initial host mode support for Mentor Graphics USB OTG controllergonzo2013-07-073-104/+1568
| | | | - Sync musb_otg_atmelarm with new core logic API
* Fix some recent regression issues:hselasky2013-06-071-47/+55
| | | | | | | | | | | | | 1) Only multi-TD isochronous transfers should use NORMAL type after specific type as per XHCI specification. 2) BEI bit is only available in NORMAL and ISOCHRONOUS TRB types. Don't use this bit for other types to avoid hardware asserts. Reserved bits should be don't care though ... MFC after: 1 week PR: usb/179342
* Add support for polling the XHCI interrupt handler whenhselasky2013-06-073-15/+49
| | | | | | | | | | 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 the TD size computation. npkt should reflect the number of packetshselasky2013-06-021-2/+6
| | | | | | | remaining after the current TRB has been executed. Refer to section 4.11.2.4 of the XHCI specification for USB. MFC after: 1 week
* Correct TRB type for multi TRB transfers of non-NORMAL type, like isochronous.hselasky2013-06-021-6/+14
| | | | | | | Only the first TRB should be markes as special. Subsequent ones should be marked as NORMAL. Optimise away TD first variable. MFC after: 1 week
* Use the correct constant for 8000 IRQ/s.hselasky2013-06-021-1/+1
| | | | MFC after: 1 week
* Block event interrupts when we don't need it as soon as possible.hselasky2013-06-021-9/+24
| | | | | | | Typically this feature is used for isochronous transfers. This reduces the amount of XHCI interrupting. MFC after: 1 week
* Don't set the start ISOC ASAP bit for non-isochronous TRBs.hselasky2013-06-021-5/+8
| | | | MFC after: 1 week
* Correct some XHCI streams mode transfer handling found by code inspection.hselasky2013-06-022-18/+37
| | | | | | | 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
* Revert r251023 until a more proper solution is foundhselasky2013-05-282-32/+0
| | | | | | for ATI based USB controllers. MFC after: 1 week
* Workaround for for a problem seen with ATI Technologies EHCIhselasky2013-05-272-0/+32
| | | | | | | | | | | | | | | | controller hardware most likely present on UHCI chipsets aswell. The bug manifests itself when issuing isochronous transfers and bulk transfers towards the same device simultaneously. From time to time it happens that either the completion IRQ was missing or that the completion IRQ was happening before the ITD/SITD was completely written back to memory. The workaround assumes that double buffered isochronous transfers are used, and that a second interrupt is generated at the beginning of the next isochronous transfer to complete the previous one. Possibly skipping the interrupt at the last isochronous frame is possible, but will then break single buffered isochronous transfers. For now we can live with some extra interrupts. MFC after: 1 week
* Add convenience wrapper functions to run callbacks in the context of thehselasky2013-04-231-0/+25
| | | | USB explore thread.
* Add descriptive comment.hselasky2013-04-231-0/+6
|
* Add OHCI controller ID.hselasky2013-04-211-0/+2
| | | | | MFC after: 2 weeks Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com>
* Add ID for ASMedia ASM1042 USB 3.0 controller.mav2013-04-101-0/+3
| | | | MFC after: 1 week
* Fix regression issue after r248910.hselasky2013-04-071-1/+1
| | | | | PR: arm/177685 Submitted by: Christoph Mallon <christoph.mallon@gmx.de>
* Integrate Efika MX project back to home.ray2013-03-201-0/+282
| | | | Sponsored by: The FreeBSD Foundation
* Fix spelling.hselasky2013-03-201-1/+2
|
* Resolve a LOR after r246616. Protect control requests using the USB devicehselasky2013-02-131-6/+12
| | | | | | | | | enumeration lock. Make sure all callers of usbd_enum_lock() check the return value. Remove the control transfer specific lock. Bump the FreeBSD version number, hence external USB modules may need to be recompiled due to a USB device structure change. MFC after: 1 week
* Add defines to more easily allow a single threaded version of the FreeBSDhselasky2013-02-053-39/+33
| | | | USB stack. This is useful for non-kernel purposes, like the loader.
* Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on ↵sbz2013-01-301-1/+2
| | | | | | | device_method_t arrays Reviewed by: cognet Approved by: cognet
* Do not unnecessarily split a string literal, becausehselasky2013-01-301-2/+2
| | | | | | splitting it makes it hard to grep. Submitted by: Christoph Mallon
* Use string literals in string descriptors for marginallyhselasky2013-01-306-25/+12
| | | | | | better readability. Submitted by: Christoph Mallon
* Provide one global language string descriptor forhselasky2013-01-306-36/+12
| | | | | | | american english instead of giving each module its own. Submitted by: Christoph Mallon
* Modify the FreeBSD USB kernel code so that it can be compiled directlyhselasky2013-01-3011-26/+75
| | | | | | | | | | | | | | | | | | | | | | 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-012-20/+52
| | | | | | | | | | | | | 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
* Fix LOW and FULL speed USB INTERRUPT endpoint support for thehselasky2012-11-093-41/+159
| | | | | | | | | DWC OTG driver. Fix a hang issue when using LOW and FULL speed BULK traffic. Make sure we don't ask for data in the last microframe. This allows using devices like USB mice and USB keyboards connected to the RPI-B. Suggested by: gonzo @
* Allow using the embedded EHCI host controller in Freescale SoCsmarcel2012-11-032-6/+12
| | | | by adding the missing bits. See ehci_fsl.c for their use.
* Add missing CTLFLAG_TUN flag to tunable sysctls in USB stack.hselasky2012-10-266-21/+17
| | | | | | | | Rearrange the tunables and belonging sysctl declarations, so that they are next to eachother. Submitted by: n_hibma @ MFC after: 1 week
* Make several timing parameters of the USB enumeration sequence tuneable.hselasky2012-10-243-4/+4
| | | | | | | | | | | Also update the port reset time from 250ms to 50ms. Some USB devices have a hard limit in hardware at 222ms for the port reset time and will not enumerate unless this delay is closer to the usb.org defined value. This patch can fix enumeration with some USB devices. Tested by: Guido van Rooij Submitted by: Nick Hibma MFC after: 1 week
* Inherit USB mode from RootHUB port where the USB device is connected.hselasky2012-10-019-36/+1
| | | | | | | 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
* Correct NYET handling. Remove superfluous transfer complete interrupt mask.hselasky2012-09-281-34/+23
|
* Make sure the "wMaxPacketSize" limitations are respected.hselasky2012-09-271-3/+28
|
* Make sure we record NAK tokens in the TD structure for IN direction.hselasky2012-09-273-63/+43
| | | | | Improve host channel disabling. Wait two times 125us for channel to be disabled. The DWC OTG doesn't like when channels are re-used too early.
* Make sure the DWC OTG host mode channels are given enough time to disable.hselasky2012-09-262-1/+18
|
* DWC OTG host mode improvements:hselasky2012-09-241-3/+36
| | | | | - Make HSIC selection dynamic. - Make LOW speed USB devices work through HIGH speed USB HUB.
* DWC OTG host mode improvements. Add support for the 3-strikes and you arehselasky2012-09-233-458/+627
| | | | | | | | | | gone rule. Optimise use of channels so that when a channel is not ready another channel is used. Instead of using the SOF interrupt use the system timer to drive the host statemachine. This might give lower throughput and higher latency, but reduces the CPU usage significantly. The DWC OTG host mode support should not be considered for serious USB host controller applications. Some problems are still seen with LOW speed USB devices.
* DWC OTG improvements. Implement full support for SPLIT transactions, in otherhselasky2012-09-143-208/+445
| | | | | words FULL/LOW speed devices through HIGH speed HUBs. Improve support for suspend and resume in host mode.
* Fix TX FIFO sizes. Correct FIFO handling in Host mode.hselasky2012-09-122-66/+84
|
* Reduce DWC OTG polling rate by using the SOF interrupt.hselasky2012-09-122-42/+75
|
* Fix missing parts of DWC OTG host mode support. The host mode supporthselasky2012-09-112-193/+168
| | | | | | of the DWC OTG is very simple in PIO mode, and we need to re-transmit data when NAK is received among other things. We probably will need to implement some kind of rate limitation on the NAK-ing.
* Poll VBUS status every second, hence the AT91 GPIO library doesn't supporthselasky2012-09-102-51/+15
| | | | registering interrupt handlers yet for GPIO events.
* Fix for IRQ hang in DWC OTG host mode.hselasky2012-09-101-19/+27
|
* Cleanup interrupt handling in Host Mode.hselasky2012-09-102-45/+45
|
* Implement missing USB suspend and resume support for DWC OTG driver.hselasky2012-09-091-6/+60
|
* Add support for DWC OTG.hselasky2012-09-091-0/+3
|
* Add support for host mode to the DWC OTG controller driver.hselasky2012-09-093-193/+1174
| | | | | | | The DWC OTG host mode support should still be considered experimental. Isochronous support for DWC OTG is not fully implemented. Some code added derives from Aleksandr Rybalko's dotg.c driver.
OpenPOWER on IntegriCloud