Up to [DragonFly] / src / sys / bus / usb
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Remove the code which disables port status change interrupts for 1 second when one occured. It meant that event get lost or delayed until the next change leaving the port dead under some circumstances. Obtained-from: NetBSD
Nuke PROC_(UN)LOCK, usb_callout_t, usb_kthread_create* and uio_procp.
Nuke SIMPLEQ_* and logprintf.
Nuke the code specific to NetBSD/OpenBSD/FreeBSD at first. I doubt anyone will update these pieces and I don't intend to review macros for all platforms. There is the chance though that I might kill something which should stay in the code in form "TODO: port it to DF". So, please review and kick me.
Sync USB support (host controller part) with FreeBSD6. Following changes on FreeBSD-CURRENT(by iedowse@freebsd.org) are merged: ehci.c rev 1.52 ohci.c rev 1.167 uhci.c rev 1.172 usb.c rev 1.111 usbdi.h rev 1.61 "Use a different task queue for host controller and peripheral driver tasks. Since the host controllers rely on tasks to process transfer timeouts, if a synchronous transfer from a driver was invoked from a task and timed out, it would never complete because the single task thread was stuck performing the synchronous transfer so couldn't process the timeout." As of this commit, only following kernel APIs are changed: - usbd_get_string_desc() takes one more argument which returns the actual size of the string description. - usb_add_task() takes one more argument. The extra arguemnt is used to specify to which task queue the task should be added. There is two task queues defined, one for peripheral driver (USB_TASKQ_DRIVER), one for host controller (USB_TASKQ_HC). ugen(4) is adapted according to the above kernel API changes. Thank all of the folks for their work on the USB support. Tested-by: swildner@, vbd@, joerg@(1.6 backport), Max Herrgard <herrgard@gmail.com> # Though VT6202 is supported by ehci(4), I still have problems with this # chip, even with the updated ehci(4).
- Add workarounds for dropped interrupts on VIA and ATI controllers. - Include more vendor IDs. Submitted-by: Gary <gary@velocity-servers.net> Taken-from: FreeBSD/NetBSD
Update FreeBSD tag to what the source code has.
Update with the NetBSD code (which can include FreeBSD/OpenBSD changes):
v1.13: suspend/resume support
v1.14: was already applied by Matt, ifdefs for soft interrupt related stuff
v1.15: interrupt transfers, done originally by iedowse of FreeBSD, some minor
changes by David Gwyne. Note that NetBSD misattributed and OpenBSD did
not attribute at all.
v1.16: implement a DMA memory reserve, ifdef'd for NetBSD.
v1.17: ifdefs for sc_child for NetBSD/OpenBSD.
v1.18: add EHCI_MAX_POLLRATE
Synchronise with NetBSD v1.18: Allow 32 chars in the saved vendor string. Fixes kern/29760.
Attempt to avoid a livelocked USB interrupt during boot by not enabling the EHCI interrupt until after all the companion controllers have been attached.
Add defined(__FreeBSD__) and defined(__DragonFly__) where appropriate
Bring in the entire FreeBSD-5 USB infrastructure. As of this commit my USB camera, Hard Drive, Mouse, and Sony memory key all work and I can even unplug and replug them in without crashing the port. Not all drivers and subsystems compile as of this commit, but the ones that do not are very close.