#
368827 |
|
30-Dec-2020 |
hselasky |
MFC r368659 and r368664: Improve handling of alternate settings in the USB stack.
Allow setting the alternate interface number to fail when there is only one alternate setting present, to comply with the USB specification.
Refactor how iface->num_altsetting is computed.
Bump the __FreeBSD_version due to change of core USB structure.
PR: 251856 Submitted by: Ma, Horse <Shichun.Ma@dell.com> Sponsored by: Mellanox Technologies // NVIDIA Networking
Git Hash: d511b855ed55bf72e88f7b00fa1268379f30a792 Git Author: hselasky@FreeBSD.org
|
#
361911 |
|
08-Jun-2020 |
hselasky |
MFC r361581: Implement helper function, usbd_get_max_frame_length(), which allows kernel device drivers to correctly predict the default USB transfer frame length.
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
|
#
330015 |
|
26-Feb-2018 |
hselasky |
MFC r329198: Fix for incorrect PnP information used by devmatch(8).
Sponsored by: Mellanox Technologies
|
#
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 |
#
298932 |
|
02-May-2016 |
pfg |
dev/usb: minor spelling fixes in comments.
No functional change.
Reviewed by: hselasky
|
#
292865 |
|
29-Dec-2015 |
hselasky |
Update metadata for "tools/tools/bus_autoconf" after r292080. Use BYTE_ORDER instead of _BYTE_ORDER due to 3rd party USB software for now.
|
#
292080 |
|
11-Dec-2015 |
imp |
Create a USB_PNP_INFO and use it to export the existing PNP tables. Some drivers needed some slight re-arrangement of declarations to accommodate this. Change the USB pnp tables slightly to allow better compatibility with the system by moving linux driver info from start of each entry to the end. All other PNP tables in the system have the per-device flags and such at the end of the elements rather that at the beginning.
Differential Review: https://reviews.freebsd.org/D3458
|
#
286773 |
|
14-Aug-2015 |
hselasky |
Improve the realtime properties of USB transfers for embedded systems 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
|
#
267240 |
|
08-Jun-2014 |
hselasky |
Resolve a deadlock setting the USB configuration index from userspace on USB HUBs by moving the code into the USB explore threads. The deadlock happens because child devices of the USB HUB don't have the expected reference count when called from outside the explore thread. Only the HUB device itself, which the IOCTL interface locks, gets the correct reference count.
MFC after: 3 days
|
#
263159 |
|
14-Mar-2014 |
hselasky |
Workaround for USB MIDI adapters which use non-supported values of wMaxPacketSize for BULK endpoints.
MFC after: 1 week
|
#
259218 |
|
11-Dec-2013 |
hselasky |
USB method structures for USB controllers and USB pipes should be constant and does not need to be modified. This also saves a small amount of RAM.
|
#
246194 |
|
01-Feb-2013 |
hselasky |
Make use of USB ID sections configurable.
|
#
246122 |
|
30-Jan-2013 |
hselasky |
Modify the FreeBSD USB kernel code so that it can be compiled directly 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
|
#
244500 |
|
20-Dec-2012 |
hselasky |
Allocate separate USB buffers for DMA'ed data, so that DMA data does not reside next to non DMA data. This might cause more memory to be allocated, but solves problems on platforms using manual cache synchronization.
Add a convenience function to get the buffer only from a USB transfer's page cache structure.
MFC after: 1 week Suggested by: imp
|
#
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
|
#
233774 |
|
02-Apr-2012 |
hselasky |
Fix compiler warnings, mostly signed issues, when USB modules are compiled with WARNS=9.
MFC after: 1 weeks
|
#
225469 |
|
10-Sep-2011 |
hselasky |
Refactor auto-quirk solution so that we break as few external drivers as possible.
PR: usb/160299 Approved by: re (kib) Suggested by: rwatson MFC after: 0 days
|
#
225350 |
|
02-Sep-2011 |
hselasky |
This patch adds automatic detection of USB mass storage devices which does not support the no synchronize cache SCSI command.
The __FreeBSD_version version macro has been bumped and external kernel modules needs to be recompiled after this patch.
Approved by: re (kib) MFC after: 1 week PR: usb/160299
|
#
224777 |
|
11-Aug-2011 |
hselasky |
Use synchronous device destruction instead of asynchronous, so that a new device having the same name like a previous one is not created before the old one is gone. This fixes some panics due to asserts in the devfs code which were added recently.
Approved by: re (kib) MFC after: 1 week
|
#
223538 |
|
25-Jun-2011 |
hselasky |
- Export the USB device ID format to userspace tools.
MFC after: 14 days
|
#
223486 |
|
24-Jun-2011 |
hselasky |
- Move all USB device ID arrays into so-called sections, sorted according to the mode which they support: host, device or dual mode - Add generic tool to extract these data: tools/bus_autoconf
Discussed with: imp Suggested by: Robert Millan <rmh@debian.org> PR: misc/157903 MFC after: 14 days
|
#
222786 |
|
06-Jun-2011 |
hselasky |
Improve enumeration of Low- and Full-speed devices connected through a High-speed USB HUB by resetting the transaction translator (TT) before trying re-enumeration. Also when clear-stall fails multiple times try a re-enumeration.
Suggested by: Trevor Blackwell MFC after: 14 days
|
#
222051 |
|
18-May-2011 |
avg |
usb: change to one-pass probing of device drivers
This brings USB bus more in line with how newbus is supposed to be used. Also, because of the two-pass probing the following message was produced by devd in default configuration when almost any USB device was connected: Unknown USB device: vendor <> product <> bus <> This should be fixed now.
Note that many USB device drivers pass some information from probe method to attach method via ivars. For this to continue working we rely on the fact that the subr_bus code calls probe method of a winning driver again before calling its attach method in the case where multiple drivers claim to support a device. This is done because device description is set in successful probe methods and we want to get a correct device description from a winning driver. So now this logic is re-used for setting ivars too.
Reviewed by: hselasky MFC after: 1 month
|
#
220301 |
|
03-Apr-2011 |
hselasky |
- Improvements to USB PF solution - Add more fields for USB device and host mode - Add more information to USB PF header so that decoding can easily be done by software analyzer tools like Wireshark. - Optimise usbdump to display USB streams in text format more efficiently. - Software using USB PF must be recompiled after this commit, due to structure changes.
MFC after: 7 days Approved by: thompsa (mentor)
|
#
219100 |
|
28-Feb-2011 |
hselasky |
- Add support for software pre-scaling of ISOCHRONOUS transfers.
MFC after: 14 days Approved by: thompsa (mentor)
|
#
214429 |
|
27-Oct-2010 |
hselasky |
Add support for setting per-interface PnP information.
Submitted by: Nick Hibma Approved by: thompsa (mentor)
|
#
213435 |
|
04-Oct-2010 |
hselasky |
This commit adds full support for USB 3.0 devices in host and device mode in the USB core. The patch mostly consists of updating the USB HUB code to support USB 3.0 HUBs. This patch also add some more USB controller methods to support more active-alike USB controllers like the XHCI which needs to be informed about various device state events.
USB 3.0 HUBs are not tested yet, due to lack of hardware, but are believed to work.
After this update the initial device descriptor is only read twice when we know that the bMaxPacketSize is too small for a single packet transfer of this descriptor.
Approved by: thompsa (mentor)
|
#
212135 |
|
02-Sep-2010 |
thompsa |
Add support for power mode filtering as some USB hardware does not support power saving.
Submitted by: Hans Petter Selasky
|
#
200653 |
|
17-Dec-2009 |
thompsa |
Use the EVENTHANDLER system to hook into the usb device configuration and perform a function such as ejecting a 3G autoinstaller disk. The eventhandler system properly tracks threads and is safe to unload, remove the setting/clearing of a function pointer in the kernel by u3g(4) which included a tsleep for safety.
|
#
199672 |
|
22-Nov-2009 |
thompsa |
Improve High Speed slot allocation mechanism by moving the computation to the endpoint rather than per xfer and provide functions around get/free of resources.
Submitted by: Hans Petter Selasky
|
#
199059 |
|
08-Nov-2009 |
thompsa |
improve support for high speed isochronous endpoints which does not run 1:1, but needs intervalling 1:2, 1:4 or 1:8
Submitted by: Hans Petter Selasky
|
#
195968 |
|
29-Jul-2009 |
alfred |
Missed this file for r195963: USB core: - add support for defragging of written device data. - improve handling of alternate settings in device side mode. - correct return value from usbd_get_no_alts() function. - reported by: HPS - P4 ID: 166156, 166168
- report USB device release information to devd and pnpinfo. - reported by: MIHIRA Sanpei Yoshiro - P4 ID: 166221
Submitted by: hps Approved by: re
|
#
195121 |
|
27-Jun-2009 |
thompsa |
Sync to p4
- Add support for devices that handle set and clear stall in hardware. - Add missing get timestamp function - Add more xfer flags
Submitted by: Hans Petter Selasky Approved by: re (kib)
|
#
194682 |
|
23-Jun-2009 |
thompsa |
Fix a typeo in the frame len function to unbreak the build, make it shorter while I am here.
|
#
194677 |
|
23-Jun-2009 |
thompsa |
- Make struct usb_xfer opaque so that drivers can not access the internals - Reduce the number of headers needed for a usb driver, the common case is just usb.h and usbdi.h
|