| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Reported by: Mike Tancsa
MFC after: 3 days
Approved by: thompsa (mentor)
|
|
|
|
|
|
| |
Reported by: Luiz Otavio O Souza
MFC after: 14 days
Approved by: thompsa (mentor)
|
|
|
|
|
|
| |
Reported by: Garrett Cooper
MFC after: 14 days
Approved by: thompsa (mentor)
|
|
|
|
|
|
| |
Reported by: gavin
MFC after: 14 days
Approved by: thompsa (mentor)
|
|
|
|
|
|
|
|
| |
value is updated after that we read it in the queue-head. This patch can
fix problems with BULK timeouts. The issue was found on a Nvidia chipset.
MFC after: 14 days
Approved by: thompsa (mentor)
|
|
|
|
|
|
| |
it internally contain nested includes.
Reviewed by: bde
|
|
|
|
|
|
|
| |
within the first 4 bytes of the EHCI memory space. For controllers that
use big-endian MMIO, reading them with 1- and 2-byte reads would then
return the wrong values. Instead, read the combined register with a 4-byte
read and mask out the interesting quantities.
|
|
|
|
|
|
|
|
|
|
| |
proper solution which is to not use the TERMINATE pointer, but rather
link to a halted TD. The initial fix was due to a misunderstanding
about how the EHCI hardware works. Thanks to Alan Stern for clearing
this up. This patch can increase mass storage read performance
significantly when the IRQ rate is less than 8000 IRQ/s.
Approved by: thompsa (mentor)
|
|
|
|
|
|
|
| |
errors from the applications. Only use endless retransmission while in the
non-addressed state on a High-Speed device.
Approved by: thompsa (mentor)
|
|
|
|
| |
Approved by: thompsa (mentor)
|
|
|
|
| |
Approved by: thompsa (mentor)
|
|
|
|
|
|
|
| |
embedded hardware needs to know exactly which device is in question before it
exactly can decide the required delay.
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
| |
USB 2.0 standard, though some USB devices use it anyway.
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
|
|
|
|
| |
microframe slot was not in the smask. The problem was that the EHCI driver was
then thinking that the transfer was immediately complete in some cases. Which
could lead to freeze-like situations, which can be recovered by unplugging the
USB device.
Reported by: Richard Kolkovich
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
| |
the illusion of a tunable setting but was always turned on regardless.
MFC after: 1 week
|
|
|
|
|
|
| |
the hardware to stall.
Submitted by: Hans Petter Selasky
|
|
|
|
| |
Submitted by: Hans Petter Selasky
|
|
|
|
| |
Reviewed by: HPS
|
|
|
|
| |
Submitted by: Andriy Gapon
|
|
|
|
|
|
| |
endpoint rather than per xfer and provide functions around get/free of resources.
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
| |
but needs intervalling 1:2, 1:4 or 1:8
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some EHCI chips from VIA / ATI seem to trigger interrupts before writing back
the qTD status, or miss signalling occasionally under heavy load. If the host
machine is too fast, we can miss transaction completion - when we scan the
active list the transaction still seems to be active. This generally exhibits
itself as a umass stall that never recovers.
We work around this behaviour by setting up this callback after any softintr
that completes with transactions still pending, giving us another chance to
check for completion after the writeback has taken place
Submitted by: Alexander Nedotsuko
MFC after: 3 days
|
|
|
|
|
|
|
|
|
| |
all host controllers at the same time, we avoid problems where the BIOS will
actually write to the USB registers of all the USB host controllers every time
we handover one of them, and consequently reset the OS programmed values.
Submitted by: avg
Reviewed by: jhb
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The EHCI HW can use the qtd_next field instead of qtd_altnext when a short
packet is received. This contradicts what is stated in the EHCI datasheet.
Also the total-bytes field in the status field of the following TD gets
corrupted upon reception of a short packet! We work this around in software by
not queueing more than one job/TD at a time of up to 16Kbytes! The bug has been
seen on multiple INTEL based EHCI chips. Other vendors have not been tested
yet.
- Applications using /dev/usb/X.Y.Z, where Z is non-zero are affected, but not
applications using LibUSB v0.1, v1.2 and v2.0.
- Mass Storage (umass) is affected.
Submitted by: Hans Petter Selasky
MFC after: 3 days
|
|
|
|
|
|
| |
statements to zero.
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
|
|
|
|
|
| |
- Add minimum polling support to drive UMASS
and UKBD in case of panic.
- Add extra check to ukbd probe to fix problem about
mouse devices attaching like keyboards.
- P4 ID: 166148
Submitted by: hps
Approved by: re
|
|
|
|
| |
- Reduce the number of headers needed for a usb driver, the common case is just usb.h and usbdi.h
|
| |
|
|
|
|
| |
usb_pipe may be used for a different purpose later on.
|
| |
|
| |
|
|
|
|
|
|
| |
transactions.
Submitted by: Hans Petter Selasky
|
|
|
|
| |
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
| |
- change variable types to use the enum
Submitted by: Hans Petter Selasky [1]
|
|
|
|
| |
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
|
|
| |
to be set via two variables (peer_suspended and self_suspended) and can not be
merged into one.
Submitted by: Hans Petter Selasky
Pointy hat: me
|
|
|
|
|
|
|
|
|
| |
helps
to avoid touching the device when it is not going to respond and would otherwise
timeout.
Implement the suspend tracking as a udev state too.
|
|
|
|
|
|
|
| |
Change the roothub exec functions to take the usb request and data pointers
directly rather than placing them on the parent bus struct.
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
|
|
|
| |
Use direct reference to parent high-speed HUB instead of indirect, due to
pointer clearing race at detach of parent USB HUB.
Reported by: kientzle
Submitted by: Hans Petter Selasky
PR: usb/133545
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactor how we interface with the root HUB. This is achieved by making a
direct call from usb2_do_request to the host controller for root hub requests,
this call will perform the controller specific register read/writes and return
the error code.
This cuts out a lot of code in the host controller files and saves one thread
per USB bus.
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
|
| |
Some cancelable flags are always true. Substitute these away. These cancelable
flags were mostly useful with the root HUB which is now handled differently.
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
|
| |
Refactor how we interface with the root HUB. This cuts around 1200 lines of
code totally and saves one thread per USB bus.
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
|
|
| |
Workaround for buggy USB hardware not handling new SETUP packet before STATUS
stage is complete, this allows xfers to endpoint0 to return a short frame.
Submitted by: Hans Petter Selasky
Reported by: me
|
|
|
|
|
|
|
| |
- start using the new USB typedefs in the USB core
- Remove usage of USB_ADD_BYTES()
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
|
|
|
|
| |
- Move tunable defines into usb_core.h and dependancy towards usb_defs.h
- Leave hardcoded defines in "usb_defs.h".
- Allow overriding all tunable defines.
- Add more customisable typedefs.
- Correct maximum device number.
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o add Transaction Translator support (still missing ISOC xfers)
o add EHCI_SCFLG_BIGEMMIO flag to force big-endian byte-select to be
set in USBMODE
o split reset work into new public routine ehci_reset so bus shim drivers
can force big-endian byte-select before ehci_init
o enable TT and big-endian MMIO
o force a reset before ehci_init to get byte-select setup
Also go back to using USB_EHCI_BIG_ENDIAN_DESC at compile time to enable the
byteswapping and reduce diffs to the original commits.
This fixes the new USB stack on the Cambria board.
|
|
|
|
| |
Reviewed by: hps
|
|
|
|
|
|
|
| |
Workaround a EHCI performance problem by issuing a doorbell after queueing a
bulk xfer.
Submitted by: Hans Petter Selasky
|
|
|
|
|
|
|
| |
Clean up old way of polling the USB hardware. The existing polling support was
a bit hackish.
Submitted by: Hans Petter Selasky
|