| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to better integrate modern LinuxKPI USB this tries to reduce
a contention point of "LIST". Given there is no need to use a LIST here
change it to SLIST to avoid conflicts.
It is a workaround which does not solve the actual problem (overlapping
namespaces) but it helps us a lot for now.
Sponsored by: The FreeBSD Foundation
X-MFC? unclear
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D46534
|
|
|
|
| |
Remove /^/[*/]\s*\$FreeBSD\$.*\n/
|
|
|
|
|
|
|
|
|
| |
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix
|
|
|
|
|
|
|
|
|
|
|
| |
Bump the FreeBSD version due to structure change to
force recompilation of external USB modules.
MFC after: 1 week
Sponsored by: Mellanox Technologies
Notes:
svn path=/head/; revision=356135
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
above 1Kbyte. It might look like some XHCI(4) controllers do not
support when the USB control transfer is split using a link TRB. The
next NORMAL TRB after the link TRB is simply failing with XHCI error
code 4. The quirk ensures we allocate a 64Kbyte buffer so that the
data stage TRB is not broken with a link TRB.
Found at: EuroBSDcon 2019
MFC after: 1 week
Sponsored by: Mellanox Technologies
Notes:
svn path=/head/; revision=352556
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.
The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.
Notes:
svn path=/head/; revision=326255
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
like RPI-B and RPI-2.
Description of problem:
USB transfers can process data in their callbacks sometimes causing
unacceptable latency for other USB transfers. Separate BULK completion
callbacks from CONTROL, INTERRUPT and ISOCHRONOUS callbacks, and give
BULK completion callbacks lesser execution priority than the
others. This way USB audio won't be interfered by heavy USB ethernet
usage for example.
Further serve USB transfer completion in a round robin fashion,
instead of only serving the most CPU hungry. This has been done by
adding a third flag to USB transfer queue structure which keeps track
of looping callbacks. The "command" callback function then decides
what to do when looping.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=286773
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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. The "destroy_dev()"
function waits for all system calls involving the given character
device to return. Character device system calls may lock the USB
enumeration lock, which is also held when "destroy_dev()" is
called. This can sometimes lead to a deadlock not noticed by
WITNESS. The current solution is to ensure the calling thread is the
only one holding the USB enumeration lock and prevent other threads
from getting refs while a USB device detach is ongoing. This turned
out not to be sufficient. To solve this deadlock we could use
"destroy_dev_sched()" to schedule the device destruction in the
background, but then we don't know when it is safe to free() the
private data of the character device. Instead a callback function is
executed by the USB explore process to kill off any leftover USB
character devices synchronously after the USB device explore code is
finished and the USB enumeration lock is no longer locked. This makes
porting easier and also ensures us that character devices must
eventually go away after a USB device detach.
While at it ensure that "flag_iserror" is only written when "priv_mtx"
is locked, which is protecting it.
MFC after: 5 days
Notes:
svn path=/head/; revision=277136
|
|
|
|
|
|
|
|
|
|
| |
- Fix some comments and whitespace while at it.
MFC after: 1 month
Submitted by: marius@
Notes:
svn path=/head/; revision=276717
|
|
|
|
|
|
|
|
|
|
|
| |
- Implement support for interrupt filters in the DWC OTG driver, to
reduce the amount of CPU task switching when only feeding the FIFOs.
- Add common spinlock to the USB bus structure.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=266394
|
|
|
|
|
|
|
|
| |
constant and does not need to be modified. This also saves a small
amount of RAM.
Notes:
svn path=/head/; revision=259218
|
|
|
|
|
|
|
| |
MFC after: 1 week
Notes:
svn path=/head/; revision=259023
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
so that simultaneous access cannot happen. Protect scratch area using
the enumeration lock. Also reduce stack usage in usbd_transfer_setup()
by moving some big stack members to the scratch area. This saves around
200 bytes of stack.
- Fix a whitespace.
MFC after: 1 week
Notes:
svn path=/head/; revision=246616
|
|
|
|
|
|
|
| |
USB stack. This is useful for non-kernel purposes, like the loader.
Notes:
svn path=/head/; revision=246363
|
|
|
|
| |
Notes:
svn path=/head/; revision=246360
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch should remove the need for kldunload of USB
controller drivers at suspend and kldload of USB controller
drivers at resume.
This patch also fixes some build issues in avr32dci.c
MFC after: 2 weeks
Notes:
svn path=/head/; revision=228483
|
|
|
|
|
|
|
|
|
|
| |
take all benefits whenever BPF code is improved.
Pointed by: jkim
Reviewed by: thompsa
Notes:
svn path=/head/; revision=215802
|
|
|
|
|
|
|
|
|
|
|
|
| |
packets which go through each USB host controllers. Its implementations
are almost based on BPF code and very similar with it except it's
little bit customized for USB packet only. The userland program
usbdump(8) would be committed soon.
Discussed with: hps, thompsa, yongari
Notes:
svn path=/head/; revision=215649
|
|
|
|
|
|
|
|
|
| |
PR: usb/138563
Reported by: Bruce Cran
Submitted by: Hans Petter Selasky
Notes:
svn path=/head/; revision=197559
|
|
|
|
| |
Notes:
svn path=/head/; revision=194230
|
|
|
|
|
|
|
| |
USB_ADD_BYTES macro.
Notes:
svn path=/head/; revision=193074
|
|
|
|
| |
Notes:
svn path=/head/; revision=193045
|
|
|
|
| |
Notes:
svn path=/head/; revision=192984
|
|
|
|
| |
Notes:
svn path=/head/; revision=192500
|
|
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/head/; revision=191402
|
|
|
|
|
|
|
|
|
| |
Resolve possible device side mode deadlock by creating another thread.
Submitted by: Hans Petter Selasky
Notes:
svn path=/head/; revision=191400
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/head/; revision=190754
|
|
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/head/; revision=190735
|
|
|
|
|
|
|
| |
Submitted by: Hans Petter Selasky
Notes:
svn path=/head/; revision=190191
|
|
|
|
|
|
|
|
|
|
| |
- start using the new USB typedefs in the USB core
- Remove usage of USB_ADD_BYTES()
Submitted by: Hans Petter Selasky
Notes:
svn path=/head/; revision=190181
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the devfs clone handler to open the (invisible) devices on the fly.
The /dev entries are layed out as follows,
/dev/usbctl = master device
/dev/usb/0.1.0.5 = usb device, (<bus>.<dev>.<iface>.<endpoint>)
/dev/ugen0.1 -> usb/0.1.0.0 = ugen link to ctrl endpoint
This also removes the custom permissions model from USB. Bump
__FreeBSD_version to 800066.
Submitted by: rink (earlier version)
Notes:
svn path=/head/; revision=189110
|
|
Notes:
svn path=/head/; revision=188942
|