#
272461 |
|
02-Oct-2014 |
gjb |
Copy stable/10@r272459 to releng/10.1 as part of the 10.1-RELEASE process.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
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
|
#
242126 |
|
26-Oct-2012 |
hselasky |
Add missing CTLFLAG_TUN flag to tunable sysctls in USB stack. Rearrange the tunables and belonging sysctl declarations, so that they are next to eachother.
Submitted by: n_hibma @ MFC after: 1 week
|
#
241987 |
|
24-Oct-2012 |
hselasky |
Make several timing parameters of the USB enumeration sequence tuneable. 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
|
#
241082 |
|
01-Oct-2012 |
hselasky |
Inherit USB mode from RootHUB port where the USB device is connected. 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
|
#
233774 |
|
02-Apr-2012 |
hselasky |
Fix compiler warnings, mostly signed issues, when USB modules are compiled with WARNS=9.
MFC after: 1 weeks
|
#
228483 |
|
13-Dec-2011 |
hselasky |
Implement better support for USB controller suspend and resume.
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
|
#
227461 |
|
12-Nov-2011 |
hselasky |
Style change. - Make it easier to port the USB code to other platforms by only using one set of memory functions for clearing and copying memory. None of the memory copies are overlapping. This means using bcopy() is not required. - Fix a compile warning when USB_HAVE_BUSDMA=0 - Add missing semicolon in avr32dci. - Update some comments.
MFC after: 1 week
|
#
227309 |
|
07-Nov-2011 |
ed |
Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.
The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
|
#
217265 |
|
11-Jan-2011 |
jhb |
Remove unneeded includes of <sys/linker_set.h>. Other headers that use it internally contain nested includes.
Reviewed by: bde
|
#
213802 |
|
13-Oct-2010 |
hselasky |
Correct some root HUB descriptor fields in multiple controller drivers. Remove an unused structure.
Approved by: thompsa (mentor)
|
#
212134 |
|
02-Sep-2010 |
thompsa |
Change argument for usbd_get_dma_delay() from USB bus to USB device, some embedded hardware needs to know exactly which device is in question before it exactly can decide the required delay.
Submitted by: Hans Petter Selasky
|
#
209443 |
|
22-Jun-2010 |
thompsa |
Add support for LOW speed BULK transfers. This mode is not recommended by the USB 2.0 standard, though some USB devices use it anyway.
Submitted by: Hans Petter Selasky
|
#
199675 |
|
22-Nov-2009 |
thompsa |
Provide tunables for some of the usb sysctls that affect boot behaviour.
Submitted by: Andriy Gapon
|
#
198501 |
|
26-Oct-2009 |
thompsa |
Revert r198500 for now, this will break situations when hw.pci.usb_early_takeover is set to zero and the SMM release is never done.
Pointed out by: marcel
|
#
198500 |
|
26-Oct-2009 |
thompsa |
Remove usb controller takeover code now that it is handled by the pci code.
Reminded by: jhb Reviewed by: HPS
|
#
198151 |
|
15-Oct-2009 |
thompsa |
Workaround buggy BIOS code in USB regard. By doing the BIOS to OS handover for 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
|
#
196219 |
|
14-Aug-2009 |
jhb |
Purge mergeinfo from files that were temporarily renamed while USB2 was imported into the tree alongside USB.
Approved by: re (mergeinfo blanket)
|
#
195960 |
|
29-Jul-2009 |
alfred |
USB CORE: - 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
|
#
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
|
#
194228 |
|
14-Jun-2009 |
thompsa |
s/usb2_/usb_|usbd_/ on all function names for the USB stack.
|
#
193644 |
|
07-Jun-2009 |
thompsa |
Rename usb pipes to endpoints as it better represents what they are, and struct usb_pipe may be used for a different purpose later on.
|
#
193045 |
|
29-May-2009 |
thompsa |
s/usb2_/usb_/ on all typedefs for the USB stack.
|
#
192984 |
|
28-May-2009 |
thompsa |
s/usb2_/usb_/ on all C structs for the USB stack.
|
#
192502 |
|
20-May-2009 |
thompsa |
Rename the usb sysctl tree from hw.usb2.* back to hw.usb.*.
Submitted by: Hans Petter Selasky
|
#
192499 |
|
20-May-2009 |
thompsa |
- rename usb2_mode to usb_mode [1] - change variable types to use the enum
Submitted by: Hans Petter Selasky [1]
|
#
191824 |
|
05-May-2009 |
thompsa |
Revert part of r191494 which used the udev state to mark suspending, this needs 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
|
#
191494 |
|
25-Apr-2009 |
thompsa |
Track the usb device state as its powered on, addressed and configured. This 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.
|
#
191402 |
|
22-Apr-2009 |
thompsa |
MFp4 //depot/projects/usb@160930
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
|
#
190755 |
|
05-Apr-2009 |
thompsa |
Remove usb_sw_transfer.[ch] which are now empty after r190735.
|
#
190754 |
|
05-Apr-2009 |
thompsa |
Provide a better commit log for r190735, forced by making a whitespace change.
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
|
#
190749 |
|
05-Apr-2009 |
piso |
Remove pointeless mergeinfo that crept in from r190633.
|
#
190738 |
|
05-Apr-2009 |
thompsa |
MFp4 //depot/projects/usb@159946
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
|
#
190735 |
|
05-Apr-2009 |
thompsa |
MFp4 //depot/projects/usb@159922
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
|
#
190633 |
|
01-Apr-2009 |
piso |
Implement an ipfw action to reassemble ip packets: reass.
|
#
190581 |
|
30-Mar-2009 |
mav |
Integrate user/mav/ata branch:
Add ch_suspend/ch_resume methods for PCI controllers and implement them for AHCI. Refactor AHCI channel initialization according to it.
Fix Port Multipliers operation. It is far from perfect yet, but works now. Tested with JMicron JMB363 AHCI + SiI 3726 PMP pair. Previous version was also tested with SiI 4726 PMP.
Hardware sponsored by: Vitsch Electronics / VEHosting.nl
|
#
190471 |
|
27-Mar-2009 |
thompsa |
The buffer start and end phys addresses should be 0x0 for an OHCI zero length packet, this fixes LS/FS devices on the Gateworks 2348 XScale board.
Reviewed by: HPS
|
#
190183 |
|
20-Mar-2009 |
thompsa |
MFp4 //depot/projects/usb @159479,159502,159516,159522,159529
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
|
#
190181 |
|
20-Mar-2009 |
thompsa |
MFp4 //depot/projects/usb @159431,159437,159438
- start using the new USB typedefs in the USB core - Remove usage of USB_ADD_BYTES()
Submitted by: Hans Petter Selasky
|
#
190174 |
|
20-Mar-2009 |
thompsa |
MFp4 //depot/projects/usb @159430
- 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
|
#
188983 |
|
24-Feb-2009 |
thompsa |
MFp4 //depot/projects/usb@157853
Clean up old way of polling the USB hardware. The existing polling support was a bit hackish.
Submitted by: Hans Petter Selasky
|
#
188942 |
|
23-Feb-2009 |
thompsa |
Move the new USB stack into its new home.
|
#
188409 |
|
09-Feb-2009 |
thompsa |
MFp4 //depot/projects/usb; 157069,157296,157375,157384,157430
- Change "usb2_pause_mtx" so that it takes the timeout value in ticks - USB controller: EHCI High Speed Interrupt endpoint fix. - Fix OHCI and EHCI counting bug when multiple TD's are involved in a short USB transfer and a short packet happens on the non-last TD in the USB transfer frame. - USB process naming cleanup.
Submitted by: Hans Petter Selasky
|
#
188273 |
|
07-Feb-2009 |
thompsa |
Dont hold the lock over the controller init, we are still attaching.
|
#
187173 |
|
13-Jan-2009 |
thompsa |
MFp4: //depot/projects/usb@155839
This change is about removing three fields from "struct usb2_xfer" which can be reached from "struct usb2_xfer_root" instead and cleaning up the code after this change. The fields are "xfer->udev", "xfer->xfer_mtx" and "xfer->usb2_sc". In this process the following changes were also made: Rename "usb2_root" to "xroot" which is short for "xfer root". Rename "priv_mtx" to "xfer_mtx" in USB core. The USB_XFER_LOCK and USB_XFER_UNLOCK macros should only be used in the USB core due to dependency towards "xroot". Substitute macros for the real lock in two USB device drivers.
Submitted by: Hans Petter Selasky
|
#
187172 |
|
13-Jan-2009 |
thompsa |
MFp4: //depot/projects/usb@155834
Factor out roothub process into the USB bus structure for all USB controller drivers. Essentially I am trying to save some processes on the root HUB and get away from the config thread pradigm. There will be a follow up commit where the root HUB control and interrupt callback will be moved over to run from the roothub process. Total win: 3 processes become 1 for every USB controller.
Submitted by: Hans Petter Selasky
|
#
187167 |
|
13-Jan-2009 |
thompsa |
MFp4: //depot/projects/usb@155759
Optimise: Remove extra flush calls.
Submitted by: Hans Petter Selasky
|
#
186730 |
|
03-Jan-2009 |
alfred |
Sync with usb4bsd:
src/lib/libusb20/libusb20_desc.c
Make "libusb20_desc_foreach()" more readable.
src/sys/dev/usb2/controller/*.[ch] src/sys/dev/usb2/core/*.[ch]
Implement support for USB power save for all HC's.
Implement support for Big-endian EHCI.
Move Huawei quirks back into "u3g" driver.
Improve device enumeration.
src/sys/dev/usb2/ethernet/*[ch]
Patches for supporting new AXE Gigabit chipset.
src/sys/dev/usb2/serial/*[ch]
Fix IOCTL return code.
src/sys/dev/usb2/wlan/*[ch]
Sync with old USB stack.
Submitted by: hps
|
#
186454 |
|
23-Dec-2008 |
thompsa |
Remove CALLOUT_RETURNUNLOCKED from the callouts, there is no reason for them to drop the lock for us.
|
#
185950 |
|
11-Dec-2008 |
thompsa |
Remove superfluous return statements from the end of void functions.
|
#
184824 |
|
10-Nov-2008 |
thompsa |
Convert the two main locking areas into macros to make it clear on what we are grabbing and why. These are now:
USB_BUS_LOCK/USB_BUS_UNLOCK USB_XFER_LOCK/USB_XFER_UNLOCK
Reviewed by: alfred
|
#
184610 |
|
04-Nov-2008 |
alfred |
Bring in USB4BSD, Hans Petter Selasky rework of the USB stack that includes significant features and SMP safety.
This commit includes a more or less complete rewrite of the *BSD USB stack, including Host Controller and Device Controller drivers and updating all existing USB drivers to use the new USB API:
1) A brief feature list:
- A new and mutex enabled USB API.
- Many USB drivers are now running Giant free.
- Linux USB kernel compatibility layer.
- New UGEN backend and libusb library, finally solves the "driver unloading" problem. The new BSD licensed libusb20 library is fully compatible with libusb-0.1.12 from sourceforge.
- New "usbconfig" utility, for easy configuration of USB.
- Full support for Split transactions, which means you can use your full speed USB audio device on a high speed USB HUB.
- Full support for HS ISOC transactions, which makes writing drivers for various HS webcams possible, for example.
- Full support for USB on embedded platforms, mostly cache flushing and buffer invalidating stuff.
- Safer parsing of USB descriptors.
- Autodetect of annoying USB install disks.
- Support for USB device side mode, also called USB gadget mode, using the same API like the USB host side. In other words the new USB stack is symmetric with regard to host and device side.
- Support for USB transfers like I/O vectors, means more throughput and less interrupts.
- ... see the FreeBSD quarterly status reports under "USB project"
2) To enable the driver in the default kernel build:
2.a) Remove all existing USB device options from your kernel config file.
2.b) Add the following USB device options to your kernel configuration file:
# USB core support device usb2_core
# USB controller support device usb2_controller device usb2_controller_ehci device usb2_controller_ohci device usb2_controller_uhci
# USB mass storage support device usb2_storage device usb2_storage_mass
# USB ethernet support, requires miibus device usb2_ethernet device usb2_ethernet_aue device usb2_ethernet_axe device usb2_ethernet_cdce device usb2_ethernet_cue device usb2_ethernet_kue device usb2_ethernet_rue device usb2_ethernet_dav
# USB wireless LAN support device usb2_wlan device usb2_wlan_rum device usb2_wlan_ral device usb2_wlan_zyd
# USB serial device support device usb2_serial device usb2_serial_ark device usb2_serial_bsa device usb2_serial_bser device usb2_serial_chcom device usb2_serial_cycom device usb2_serial_foma device usb2_serial_ftdi device usb2_serial_gensa device usb2_serial_ipaq device usb2_serial_lpt device usb2_serial_mct device usb2_serial_modem device usb2_serial_moscom device usb2_serial_plcom device usb2_serial_visor device usb2_serial_vscom
# USB bluetooth support device usb2_bluetooth device usb2_bluetooth_ng
# USB input device support device usb2_input device usb2_input_hid device usb2_input_kbd device usb2_input_ms
# USB sound and MIDI device support device usb2_sound
2) To enable the driver at runtime:
2.a) Unload all existing USB modules. If USB is compiled into the kernel then you might have to build a new kernel.
2.b) Load the "usb2_xxx.ko" modules under /boot/kernel having the same base name like the kernel device option.
Submitted by: Hans Petter Selasky hselasky at c2i dot net Reviewed by: imp, alfred
|