History log of /src/sys/dev/usb/ehcivar.h |
Revision | | Date | Author | Comments |
1.53 |
| 23-Sep-2024 |
skrll | Allocate a whole cacheline for all the descriptor types used by ehci so that
i) they can be alloc'ed without USBMALLOC_COHERENT which can mean they're now mapped cacheable, and ii) the "soft" versions are cacheable, and mapped as small as possible.
A quick test of
dd if=/dev/rsd0 of=/dev/null bs=1m count=1024
improved by approximagely 10% on a Banana PI.
|
1.52 |
| 20-Jan-2024 |
jmcneill | ehci: add EHCIF_32BIT_ACCESS flag to force 32-bit MMIO
|
1.51 |
| 13-Mar-2022 |
riastradh | branches: 1.51.4; ehci(4): Serialize access to portsc registers.
Both ehci_roothub_ctrl and ehci_suspend/resume do r/m/w on them, so use a mutex to serialize access to avoid stomping on each other.
|
1.50 |
| 13-Mar-2022 |
riastradh | ehci(4): Fix doorbell synchronization.
ehci_sync_hc was previously subject to spurious wakeup, in which case the CPU might proceed from aborting and recycle a DMA buffer before the hardware was done writing to it. Now the code is not subject to spurious wakeup -- it waits (up to the 1sec timeout) for the relevant interrupt to be delivered, not for anything else.
|
1.49 |
| 22-Dec-2021 |
skrll | Three fixes
- pass the 64bit DMA tag if the HCCPARAMS says ehci supports it and the 64bit DMA tag is available/valid. This should help with the "cannot create xfer" error on 64bit systems.
- restrict the control structure memory allocation to the low 4GB (CTRLDSSEGMENT was always set to zero anyway)
- if ehci_init fails then tidyup before returning the error.
|
1.48 |
| 15-Mar-2020 |
skrll | Use roundup. NFCI.
|
1.47 |
| 04-Mar-2020 |
skrll | Consistency in use of #define names. No functional change as values of before and after defines are the same.
|
1.46 |
| 18-Sep-2018 |
mrg | implement a gross hack to fix "boot -a" on systems with usb keyboards on systems with ehci handover to uhci (and maybe ohci), and fix a similar problem for "boot -s".
there is effort to ensure that all devices attached via USB are probed before RB_ASKNAME or RB_SINGLE attempts to ask any questions on the console, and largely this works, often by chance, today, for USB disks and root. i've recently pushed this more into uhub and general USB device attachment as well, and kept a config_pending reference across the first explore of a bus. these fix many issues with directly attached hubs.
however, on systems where devices connected to ehci ports are handed over to a companion uhci or ohci port, it may not be the first, or even second, bus explore that finds the device finally before attachment, and at this point all config_pending references are dropped.
there is no direct communication between drivers, the potentials are looked up but their device_t is only used for generic things like the name, so informing the correct companion to expect a device and deal with the config_pending references is not possible without some fairly ugly layer violations or multi-level callbacks (eg, we have "ehci0", and usually an the relevant companion, eg, "uhci2", but it is the uhub that uhci2 has attached that will deal with the device attachment.)
with the above fixes to generic USB code, the disown happens during the first explore. the hack works by, at this point, checking if (a) root is not mounted, (b) single user or ask name are set, and (c) if the hack as not been triggered already. if all 3 conditions are true, then a config_pending_incr() is called and a callback is triggered for (default) 5 seconds to call config_pending_decr(). ehci detach pauses waiting for this callback if scheduled.
this allows enough time for the uhub and the ukbd/wskbd to attach before the RK_ASKROOT prompts appear. testing shows it takes between 1.5 and 2 seconds for the keyboard to appear after the disown occurs.
Index: dev/usb/ehcivar.c - new sc_compcallout, sc_compcallout, sc_complock, and a state for th handover hack.
Index: dev/usb/ehci.c ehci_init(): - use aprint_normal_dev() instead of manual device_xname(). - initialise sc_compcallout, sc_compcallout, sc_complock, and sc_comp_state. ehci_detach(): - if there are companion controllers, tear own the above, including waiting if there is a callback scheduled. ehci_disown_callback(): - new callout to call config_pending_decr() in the the future. schedule this ca ehci_disown_sched_callback(): - if booting to single user or asking names, call config_pending_incr() and schedule the callout above, default 5 second delay. ehci_disown(): - if disowning a port call ehci_disown_sched_callback().
|
1.45 |
| 09-Aug-2018 |
mrg | pull across abort fixes from nick-nhusb. add more abort fixes, using ideas from Taylor and Nick, and myself. special thanks to both who inspired much of the code here, if not wrote it directly.
among other problems, this assert should no longer trigger:
panic: kernel diagnostic assertion "xfer->ux_state == XFER_ONQU" failed: file "/current/src/sys/dev/usb/usbdi.c", line 914
using usbhist i was able to track down my instance of it being related to userland close() beginning, dropping the sc_lock, and then the usb softintr completes the transfer normally, and when it is done, the abort path attempts to re-complete the transfer, and the above assert is tripped.
changes from nhusb were commited with these logs: -- Move the struct usb_task to struct usbd_xfer for everyone to use. -- Set device transfer status to USBD_IN_PROGRESS if start methods succeeds -- Actually set the transfer status on transfers in ohci_abort_xfer and the controller is dying -- Don't supply the lock to callout_halt when polling as it won't be held -- Improve transfer abort -- Mark device transfers as USBD_IN_PROGRESS appropriately and improve abort handling -- #ifdef DIAGNOSTIC -> KASSERT and add another KASSERT -- Mark device transfers as USBD_IN_PROGRESS appropriately and improve abort handling --
additional changes include: - initialise the usb abort task in the HCI allocx routine, so that it can be safely usb_rem_task()'d. - rework the handling of softintr vs cancellation vs timeout abort based upon a scheme from Taylor: when completing a transfer normally: - if the status is not in progress, it must be cancelled or timed out, and we should not process this xfer. - set the status as normal. - unconditionallly callout_stop() and usb_rem_task(). they're safe and either aren't running, or will run and do nothing. - finally call usb_transfer_complete(). when aborting a transfer: - status should be cancelled or timed out. - if cancelling, callout_halt and usb_rem_task_wait() to make sure the timer is either done or cancelled. - at this point, the ux_status must not be cancelled or timed out, and if it is not in progress we're done. - set the status. - if the controller is dying, just return. - perform HCI-specific tasks to abort this xfer. - finally call usb_transfer_complete(). for the timeout and timeout task: - if the HCI is not dying, and the ux_status is in progress, then trigger the usb abort task. - remove UXFER_ABORTWAIT and UXFER_ABORTING.
tested on: - multiple PC systems with several types of devices: ugen/UPS, ucom, umass with disk, ssd and cdrom backends, kbd, ms, using uhci, ehci and xhci. - erlite3: sd@umass on dwc2. - sunblade2000: kbd/ms and umass disk on ohci.
untested: - motg, slhci and ahci. motg has some portion of the new scheme applied, but slhci and ahci require more study.
future work includes pushing a lot of the common abort handling into usbdi.c and leaving upm_abort() for HC specific tasks, but this change is pullup-able to netbsd-7 and netbsd-8 as it does not change any external API, as well as removing over 100 lines of code while adding over 30 new asserts.
XXX: pullup-7, pullup-8.
|
1.44 |
| 09-Apr-2018 |
jakllsch | branches: 1.44.2; Stop potential misuse of vendor names and USB vendor IDs in root hub device and string descriptors.
Firstly: Few vendors have identical PCI-SIG vendor IDs and USB-IF vendor IDs. As such, using the PCI vendor ID as a USB vendor ID may trample on whomever is allocated that USB vendor ID.
Secondly: The vendor of the host controller hardware implementation has little to nothing to do with our usbroothub implementation. Thus we should not potentially associate any problems therewith to such third party.
This change will result in root hubs being identified by USB Vendor ID 0x0000. Root hub vendor string will now be "NetBSD" (or, specifically: ostype). Product ID (0x0000) and product strings remain unchanged.
|
1.43 |
| 23-Apr-2016 |
skrll | branches: 1.43.10; 1.43.16; Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
1.42 |
| 02-Feb-2013 |
matt | branches: 1.42.12; 1.42.14; 1.42.18; Use CACHE_LINE_SIZE for EHCI_SQTD_ALIGN to make sure the sqtd fully consume a cacheline.
|
1.41 |
| 29-Jan-2013 |
christos | use a pool instead of a linked list to avoid synchronization problems.
|
1.40 |
| 10-Jun-2012 |
mrg | branches: 1.40.2; merge the jmcneill-usbmp branch. many thanks to jared for the initial work, and every one else who has tested things for me. this is largely my fault at this point :-)
the main changes are something like:
- usbd_bus_methods{} gains a get_lock() to enable the host controller to provide a lock for the USB code. if the lock isn't provided, old-style protection is (partially) applied.
- ehci/ohci/uhci have been converted to the new interfaces, including mutex/cv/etc conversion.
- usbdivar.h contains a discussion about locking and what locks are held for which method calls. more to come for usbdi(9) here.
- audio drivers (uaudio, umidi, auvitek) have been properly SMPified now that USB is ready.
- scsi drivers have been modified to take the kernel lock explicitly before calling into scsi code.
- usb pipes are associated with a lock, that is the same as the controller lock. (this could be split up further in the future.)
- several usbfoo_locked() or usbfoo_unlocked() functions have been added to the usbdi(9) to enable functionality with or without the USB lock (per controller) already being held.
the TODO.usbmp file has specific details on what is left to do, including what device-specific changes should be done now that the whole framework is ready.
|
1.39 |
| 06-Mar-2012 |
mrg | pull down from usbmp:
kill the !USE_USE_SOFTINTR code.
|
1.38 |
| 18-Jan-2011 |
matt | branches: 1.38.6; 1.38.10; Add preliminary support for Embedded Transaction Translator Function (as found on the MPC8536 and AR9334) which allows low/full devices to be connected to an EHCI root hub.
|
1.37 |
| 16-Oct-2010 |
kiyohara | branches: 1.37.2; Add vendor dependent functions. sc_vendor_init()/sc_vendor_port_status().
|
1.36 |
| 24-Feb-2010 |
dyoung | branches: 1.36.2; A pointer typedef entails trading too much flexibility to declare const and non-const types, and the kernel uses both const and non-const PMF qualifiers and device suspensors, so change the pmf_qual_t and device_suspensor_t typedefs from "pointers to const" to non-pointer, non-const types.
|
1.35 |
| 08-Jan-2010 |
dyoung | branches: 1.35.2; Expand PMF_FN_* macros.
|
1.34 |
| 04-Sep-2009 |
dyoung | Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
1.33 |
| 14-Oct-2008 |
jmcneill | branches: 1.33.16; kern/39727: race condition in ehci isoc abort xfer path
From Jeremy Morse:
* Serialize access to the ehci intrlist. * Change the ehci intrlist to a tailq so xfers are not queued out of order. * In ehci_check_itd_intr, don't treat a transfer error as an indication that the xfer is no longer active.
|
1.32 |
| 02-Aug-2008 |
jmcneill | High speed isochronous support, from Jeremy Morse as part of Google Summer of Code 2008.
|
1.31 |
| 28-Jun-2008 |
bouyer | branches: 1.31.2; Add appropriate bus_dmamap_sync() calls to uhci(4), ohci(4) and ehci(4), as proposed on tech-kern@. While all DMA memory used in the USB framework is mapped BUS_DMAMAP_COHERENT (including data memory, which is memcpy'd from/to USB-private buffers), the CPU can reorder loads or stores from/to main memory, causing the controller to have an incoherent view of the DMA descriptors lists for a short time. bus_dmamap_sync() should contain memory barriers that prevents the CPU from reordering load/store. Note that BUS_DMAMAP_COHERENT is still required for the DMA descriptor lists - these can't work properly with software cache coherency. This fixes "host controller process error/host controller halted" errors I'm occasionally seeing with a umodem device on uhci on x86. Thanks to Michael Lorenz for testing it on his O2, and Izumi Tsutsui on his Cobalt Qube 2700.
|
1.30 |
| 28-Apr-2008 |
martin | branches: 1.30.2; 1.30.4; Remove clause 3 and 4 from TNF licenses
|
1.29 |
| 28-Mar-2008 |
drochner | branches: 1.29.2; 1.29.4; split device/softc for USB host controllers and the usb (control) device, this is hairy stuff, and I've only tested with uhci/ehci at pci, please test the rest and report problems
|
1.28 |
| 07-Mar-2008 |
dyoung | Use device_t and accessors. Setup power management in the PCI front-end (XXX needs to look more alike the Cardbus front-end). Establish the shutdown hook using PMF.
|
1.27 |
| 22-Feb-2008 |
dyoung | Add a method to detach child.
Cosmetic: use device_t and accessors. Use aprint_*_dev(). Use PMF_FN_{ARGS,CALL,PROTO}.
|
1.26 |
| 09-Dec-2007 |
jmcneill | branches: 1.26.6; 1.26.10; Merge jmcneill-pm branch.
|
1.25 |
| 05-Dec-2007 |
ad | branches: 1.25.2; lockmgr -> mutex
|
1.24 |
| 07-Jan-2007 |
drochner | branches: 1.24.14; 1.24.20; 1.24.22; 1.24.28; 1.24.30; Remove the code which disables port status change interrupts for 1s when one occured -- this makes that events get lost (or delayed until the next change), in particular in the handover process from the EHCI to a companion controller, laeving the port dead under some circumstances. This fixes the "can't reconnect" symptom for me. I don't see why the interrupt should be disabled - it is acknowledged in the interrupt handler and shouldn't be active again until the next status change.
|
1.23 |
| 17-Jan-2006 |
xtraeme | branches: 1.23.18; 1.23.22; 1.23.24; From OpenBSD:
-- Add a workaround for VIA EHCI controllers which, under load, signal qTD completion before they have performed writeback from the overlay qTD.
This condition would exhibit itself as a umass stall that never recovers. --
This fixes the problem reported by Thomas Klausner on current-users@: http://mail-index.netbsd.org/current-users/2006/01/17/0000.html
|
1.22 |
| 27-Dec-2005 |
chs | branches: 1.22.2; changes for making DIAGNOSTIC not change the kernel ABI: - for structure fields that are conditionally present, make those fields always present. - for functions which are conditionally inline, make them never inline. - remove some other functions which are conditionally defined but don't actually do anything anymore. - make a lock-debugging function conditional on only LOCKDEBUG.
as discussed on tech-kern some time back.
|
1.21 |
| 20-Nov-2005 |
augustss | Keep a flag for each port that keeps track of if the port has been reset instead of having one flag for the controller.
Also, don't try to modify read-only power bits if the controller doesn't support power cobntrol.
|
1.20 |
| 28-Aug-2005 |
augustss | branches: 1.20.6; Minor cosmetic change.
|
1.19 |
| 29-Apr-2005 |
augustss | branches: 1.19.2; Allow 32 chars in the saved vendor string. Fixes kern/29760.
|
1.18 |
| 27-Apr-2005 |
augustss | Add define for EHCI_MAX_POLLRATE.
|
1.17 |
| 11-Jan-2005 |
imp | branches: 1.17.2; 1.17.8; Merge from FreeBSD: sc_child is only used on NetBSD and OpenBSD, ifdef appropriately FreeBSD revisions: ehcivar.h 1.8 ohcivar.h 1.39 uhicvar.h 1.39
|
1.16 |
| 21-Dec-2004 |
fvdl | Implement an USB memory reserve. Allocate some memory per host controller in the wanted bus_dma space. If an allocation fails during operation (i.e. when hotplugging an umass device), fall back to using the reserve.
The amount can be configured as USB_MEM_RESERVE. The default value is 256k.
Ideally, there would be a way to steal pages in the desired area from UVM, but that's far more complicated, and this is not intrusive, plus it works.
|
1.15 |
| 22-Oct-2004 |
augustss | Add interrupt transfers. From OpenBSD. Having interrupt transfers enables some more device types to be used, most notably USB2 hubs. USB2 hubs still cannot handle anything but USB2 devices, because there is node code to handle hub Transaction Translation yet. XXX This code doesn't do good bw scheduling, but it's certainly better than nothing. :)
|
1.14 |
| 22-Oct-2004 |
augustss | Insert from ifdefs for soft interrupt related stuff. From OpenBSD.
|
1.13 |
| 21-Oct-2004 |
augustss | Add suspend/resume support. From OpenBSD.
|
1.12 |
| 31-Dec-2001 |
augustss | branches: 1.12.16; 1.12.20; Change abort slightly. Change debug output.
|
1.11 |
| 21-Nov-2001 |
augustss | Add some interrupt processing.
|
1.10 |
| 21-Nov-2001 |
augustss | Set up control xfers. Handle xfer timeouts. Better debug messages.
|
1.9 |
| 20-Nov-2001 |
augustss | Simplify async list handling.
|
1.8 |
| 19-Nov-2001 |
augustss | Start of pipe open routine.
|
1.7 |
| 18-Nov-2001 |
augustss | Add more fields to hardware structs. Add memory allocation for various data structures.
|
1.6 |
| 16-Nov-2001 |
augustss | Add some more data structure defs.
|
1.5 |
| 16-Nov-2001 |
augustss | Recognize port status changes. Hand over low and full speed devices to companion controller.
|
1.4 |
| 15-Nov-2001 |
augustss | Add root hub emulation.
|
1.3 |
| 10-Nov-2001 |
augustss | Add some register defines. Print companion controllers.
|
1.2 |
| 06-Nov-2001 |
augustss | Add some useful macros.
|
1.1 |
| 24-Dec-2000 |
augustss | branches: 1.1.2; 1.1.4; 1.1.6; 1.1.10; Add some placeholders for the EHCI (USB 2) driver.
Don't get your hopes up. I've not even finished reading the (100+) page spec, and I have no hardware.
|
1.1.10.1 |
| 12-Nov-2001 |
thorpej | Sync the thorpej-mips-cache branch with -current.
|
1.1.6.1 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.1.4.2 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.1.4.1 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.1.2.2 |
| 05-Jan-2001 |
bouyer | Sync with HEAD
|
1.1.2.1 |
| 24-Dec-2000 |
bouyer | file ehcivar.h was added on branch thorpej_scsipi on 2001-01-05 17:36:29 +0000
|
1.12.20.1 |
| 13-May-2005 |
riz | Pull up revision 1.16 (requested by bad in ticket #1479): Implement an USB memory reserve. Allocate some memory per host controller in the wanted bus_dma space. If an allocation fails during operation (i.e. when hotplugging an umass device), fall back to using the reserve. The amount can be configured as USB_MEM_RESERVE. The default value is 256k. Ideally, there would be a way to steal pages in the desired area from UVM, but that's far more complicated, and this is not intrusive, plus it works.
|
1.12.16.4 |
| 11-Dec-2005 |
christos | Sync with head.
|
1.12.16.3 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.12.16.2 |
| 17-Jan-2005 |
skrll | Sync with HEAD.
|
1.12.16.1 |
| 02-Nov-2004 |
skrll | Sync with HEAD.
|
1.17.8.3 |
| 28-Sep-2008 |
jdc | Pull up revisions: sys/dev/usb/ehci.c 1.138 via patch sys/dev/usb/ehcivar.h 1.31 via patch sys/dev/usb/ohci.c 1.195 via patch sys/dev/usb/ohcivar.h 1.45 via patch sys/dev/usb/uhci.c 1.223 via patch sys/dev/usb/uhcivar.h 1.45 via patch sys/dev/usb/usb_mem.c 1.37 via patch sys/dev/usb/usb_mem.h 1.27 via patch requested by bouyer in ticket 1946.
Add appropriate bus_dmamap_sync() calls to uhci(4), ohci(4) and ehci(4), as proposed on tech-kern@. While all DMA memory used in the USB framework is mapped BUS_DMAMAP_COHERENT (including data memory, which is memcpy'd from/to USB-private buffers), the CPU can reorder loads or stores from/to main memory, causing the controller to have an incoherent view of the DMA descriptors lists for a short time. bus_dmamap_sync() should contain memory barriers that prevents the CPU from reordering load/store. Note that BUS_DMAMAP_COHERENT is still required for the DMA descriptor lists - these can't work properly with software cache coherency. This fixes "host controller process error/host controller halted" errors I'm occasionally seeing with a umodem device on uhci on x86. Thanks to Michael Lorenz for testing it on his O2, and Izumi Tsutsui on his Cobalt Qube 2700.
|
1.17.8.2 |
| 22-Jan-2006 |
tron | Pull up following revision(s) (requested by xtraeme in ticket #1123): sys/dev/usb/ehcivar.h: revision 1.23 sys/dev/pci/ehci_pci.c: revision 1.22 sys/dev/usb/ehci.c: revision 1.108 From OpenBSD:
-- Add a workaround for VIA EHCI controllers which, under load, signal qTD completion before they have performed writeback from the overlay qTD. This condition would exhibit itself as a umass stall that never recovers. --
This fixes the problem reported by Thomas Klausner on current-users@: http://mail-index.netbsd.org/current-users/2006/01/17/0000.html
|
1.17.8.1 |
| 01-May-2005 |
tron | Pull up revision 1.18 (requested by augustss in ticket #217): Add define for EHCI_MAX_POLLRATE.
|
1.17.2.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.19.2.6 |
| 17-Mar-2008 |
yamt | sync with head.
|
1.19.2.5 |
| 27-Feb-2008 |
yamt | sync with head.
|
1.19.2.4 |
| 21-Jan-2008 |
yamt | sync with head
|
1.19.2.3 |
| 07-Dec-2007 |
yamt | sync with head
|
1.19.2.2 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.19.2.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.20.6.1 |
| 22-Nov-2005 |
yamt | sync with head.
|
1.22.2.1 |
| 01-Feb-2006 |
yamt | sync with head.
|
1.23.24.1 |
| 04-Sep-2008 |
skrll | Sync with netbsd-4.
|
1.23.22.1 |
| 31-Aug-2008 |
jdc | Pull up revisions: src/sys/dev/usb/ehci.c:1.138 src/sys/dev/usb/ehcivar.h:1.31 src/sys/dev/usb/ohci.c:1.195 src/sys/dev/usb/ohcivar.h:1.45 src/sys/dev/usb/uhcivar.h:1.45 src/sys/dev/usb/uhci.c:1.223 src/sys/dev/usb/usb_mem.c:1.37 src/sys/dev/usb/usb_mem.h:1.27 via patch (requested by bouyer in ticket #1166).
|
1.23.18.1 |
| 12-Jan-2007 |
ad | Sync with head.
|
1.24.30.2 |
| 26-Dec-2007 |
ad | Sync with head.
|
1.24.30.1 |
| 08-Dec-2007 |
ad | Sync with head.
|
1.24.28.2 |
| 27-Dec-2007 |
mjf | Sync with HEAD.
|
1.24.28.1 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
1.24.22.2 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.24.22.1 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.24.20.4 |
| 09-Dec-2007 |
jmcneill | Sync with HEAD.
|
1.24.20.3 |
| 06-Nov-2007 |
joerg | Refactor PNP API: - Make suspend/resume directly a device functionality. It consists of three layers (class logic, device logic, bus logic), all of them being optional. This replaces D0/D3 transitions. - device_is_active returns true if the device was not disabled and was not suspended (even partially), device_is_enabled returns true if the device was enabled. - Change pnp_global_transition into pnp_system_suspend and pnp_system_resume. Before running any suspend/resume handlers, check that all currently attached devices support power management and bail out otherwise. The latter is not done for the shutdown/panic case. - Make the former bus-specific generic network handlers a class handler. - Make PNP message like volume up/down/toogle PNP events. Each device can register what events they are interested in and whether the handler should be global or not. - Introduce device_active API for devices to mark themselve in use from either the system or the device. Use this to implement the idle handling for audio and input devices. This is intended to replace most ad-hoc watchdogs as well. - Fix somes situations in which audio resume would lose mixer settings. - Make USB host controllers better deal with suspend in the light of shared interrupts. - Flush filesystem cache on suspend. - Flush disk caches on suspend. Put ATA disks into standby on suspend as well. - Adopt drivers to use the new PNP API. - Fix a critical bug in the generic cardbus layer that made D0->D3 break. - Fix ral(4) to set if_stop. - Convert cbb(4) to the new PNP API. - Apply the PCI Express SCI fix on resume again.
|
1.24.20.2 |
| 01-Oct-2007 |
joerg | Extend device API by device_power_private and device_power_set_private. The latter is a temporary mean until the pnp_register API itself is overhault. This functions allow a generic power handler to store its state independent of the driver.
Use this and revamp the PCI power handling. Pretty much all PCI devices had power handlers that did the same thing, generalize this in pci_generic_power_register/deregister and the handler. This interface offers callbacks for the drivers to save and restore state on transistions. After a long discussion with jmcneill@ it was considered to be powerful enough until evidence is shown that devices can handle D1/D2 with less code and higher speed than without the full save/restore. The generic code is carefully written to handle device without PCI-PM support and ensure that the correct registers are written to when D3 loses all state.
Reimplement the generic PCI network device handling on top of PCI generic power handling.
Introduce pci_disable_retry as used and implemented locally at least by ath(4) and iwi(4). Use it in this drivers to restore behaviour from before the introduction of generic PCI network handling.
Convert all PCI drivers that were using pnp_register to the new framework. The only exception is vga(4) as it is commonly used as console device. Add a note therein that this should be fixed later.
|
1.24.20.1 |
| 03-Aug-2007 |
jmcneill | Pull in power management changes from private branch.
|
1.24.14.2 |
| 21-May-2008 |
itohy | Use aux memory.
|
1.24.14.1 |
| 22-May-2007 |
itohy | Overhaul of USB stack, mostly DMA related
This applies to NetBSD 4.99.13 (March 1, 2007)
usbdi(9) interface is based on FreeBSD version, excluding - removal of portability code
Patch most NetBSD changes, excluding - DMA memory "reserve", since we don't need contiguous buffers any longer - volatiles in DMA structure, since it should not be needed with proper bus_dmamap_sync(9)s
DMA/non-DMA memory management overhaul - Move all DMA related code to usb_mem.[ch] (add usb_alloc_buffer_dma(), usb_free_buffer_dma(), etc.). XXX Should usb_mem.[ch] be renamed as usb_mem_dma.[ch] ? - Add corresponding non-DMA code to usb_mem_nodma.[ch] . Currently just use malloc(9). - Above files are conditionally used by config framework (added attributes to conf/files and dev/usb/files.usb). - Add diagnostic panics when resource allocation is requested on interrupt context. - Change memory allocations (that require context) from NOWAIT to WAITOK.
Allocate DMA/non-DMA buffer per host interface, not globally. advantage: Buffers can be freed on detaching host interface. Activity of a host interface does not affect others. disadvantages: It possibly consumes more memory.
API changes - usbd_alloc_xfer() is changed: old: usbd_xfer_handle usbd_alloc_xfer(usbd_device_handle dev); new: usbd_xfer_handle usbd_alloc_xfer(usbd_device_handle dev, usbd_pipe_handle pipe); - pipe argument of usbd_setup_*xfer() are now unused XXX the pipe argument should be removed? - add mapping APIs - async request will be processed as a task (kernel thread context), and delayed to some extent - usbdivar.h: struct usbd_xfer: renamed a member "allocbuf" to "hcbuffer" (mapped/allocated/refered buffer for HCI driver) - usb_port.h: change usb_proc_ptr from struct ptoc * to struct lwp * - usb_port.h: add usb_sigproc_ptr for psignal(9) (struct proc *) - usb.h: add UE_MAXPKTSZ(ep) and UE_MAXPKTSZ_MASK macros for USB 2.0
changes to USB device drivers - atu, aue, axe, cdce, cue, kue, rum, udav, upl, ural, url, uaudio, ubt, ucom, ugen, uhidev, uirda, ulpt, umidi, urio, uscanner, ustir, utoppy: * catch up API change of usbd_alloc_xfer() - umass, usscanner: * catch up API change of usbd_alloc_xfer() * eliminate memory copy for large transfer
ohci - free resources on detach - add lots of bus_dmamap_sync() operations - simplify the code of loading std chain - rewrite code of looking up TD/ITD from DMA addr by using allocation chunk - add workaround for CMD Tech 670 and 673 chipsets - make sure resources are not allocated in interrupt context - add support for mapping buffer and mbuf
slhci - allocate xfer and slhci_xfer at once, and simplify relevant code - add slhci_detach() - remove second arg of slhci_attach() since it is the same as the first arg. - add support for "mapping" (no, it doesn't map since it doesn't do DMA) buffer and mbuf - add pcmcia frontend - NOT TESTED, missing hardware
ehci - add lots of bus_dmamap_sync() operations, possibly too many - make sure resources are not allocated in interrupt context - add support for mapping buffer and mbuf - done only simple test
uhci - add lots of bus_dmamap_sync() operations, possibly too many - make sure resources are not allocated in interrupt context - add support for mapping buffer and mbuf
To do - review, test, debug - rewrite network drivers to utilize usbd_map_buffer_mbuf() - rewrite uaudio(4) to eliminate memcpy - "pipe" argument of usbd_setup_*xfer() should eventually be removed
|
1.25.2.1 |
| 11-Dec-2007 |
yamt | sync with head.
|
1.26.10.5 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.26.10.4 |
| 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.26.10.3 |
| 29-Jun-2008 |
mjf | Sync with HEAD.
|
1.26.10.2 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.26.10.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.26.6.1 |
| 24-Mar-2008 |
keiichi | sync with head.
|
1.29.4.4 |
| 11-Mar-2010 |
yamt | sync with head
|
1.29.4.3 |
| 16-Sep-2009 |
yamt | sync with head
|
1.29.4.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.29.4.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.29.2.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.30.4.1 |
| 03-Jul-2008 |
simonb | Sync with head.
|
1.30.2.1 |
| 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.31.2.1 |
| 19-Oct-2008 |
haad | Sync with HEAD.
|
1.33.16.1 |
| 07-Jan-2011 |
matt | Add Embedded Transaction Translator Function support. No proof it works yet.
|
1.35.2.2 |
| 22-Oct-2010 |
uebayasi | Sync with HEAD (-D20101022).
|
1.35.2.1 |
| 30-Apr-2010 |
uebayasi | Sync with HEAD.
|
1.36.2.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.37.2.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.38.10.1 |
| 04-Dec-2011 |
jmcneill | Make ehci mpsafe.
|
1.38.6.3 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.38.6.2 |
| 30-Oct-2012 |
yamt | sync with head
|
1.38.6.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.40.2.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.40.2.1 |
| 25-Feb-2013 |
tls | resync with head
|
1.42.18.1 |
| 06-Sep-2016 |
skrll | First pass at netbsd-7 updated with USB code from HEAD
|
1.42.14.27 |
| 27-Dec-2016 |
skrll | Missed commit in the ehci abort improvement
|
1.42.14.26 |
| 30-Apr-2016 |
skrll | Move the struct usb_task to struct usbd_xfer for everyone to use.
|
1.42.14.25 |
| 04-Apr-2016 |
skrll | Rework {alloc,reset}_*_chain functions to perform all of TD setup in reset chain. The initial motivation for this was to fix ZLP.
|
1.42.14.24 |
| 26-Mar-2016 |
skrll | Grab sc_istthreshhold (not used as yet)
|
1.42.14.23 |
| 17-Mar-2016 |
skrll | All HCDs were fighting the seriaisation of transfers in usbdi.c for isoc transfers. Instead allow the HCDs to specify which pipes can handle removing this serialisation and apply it appropriately.
dwctwo(4) can handle this for all transfer types, but only enable bulk/isoc for now.
|
1.42.14.22 |
| 10-Jan-2016 |
skrll | Whitespace
|
1.42.14.21 |
| 25-Oct-2015 |
skrll | Restructure the xfer methods so that (close to) minimal work in done in softint context. Now all memory allocation is done in thread context.
Addresses kern/48308 for ehci(4), fixes a bunch of locking bugs around the *TD free lists, and plugs some memory leaks on error conditions.
XXX revisit for isoc caching models (4.7.2.1)
|
1.42.14.20 |
| 24-Oct-2015 |
skrll | Small update to a comment
|
1.42.14.19 |
| 22-Oct-2015 |
skrll | Simplify *_XFER2SC using ux_bus
|
1.42.14.18 |
| 20-Oct-2015 |
skrll | s/EHCI_DPIPE2SC/EHCI_EPIPE2SC/
|
1.42.14.17 |
| 10-Oct-2015 |
skrll | Provide and use some macros to access ehci_{xfer,pipe} from usbd_{xfer,pipe}
No functional change
|
1.42.14.16 |
| 08-Oct-2015 |
skrll | Remove unused struct member
|
1.42.14.15 |
| 08-Oct-2015 |
skrll | Comments
|
1.42.14.14 |
| 10-Apr-2015 |
skrll | Whitespace.
|
1.42.14.13 |
| 06-Apr-2015 |
skrll | Use anonymous unions in various structs and rename the ctl/iso members of the pipe structs to ctrl/isoc.
No functional change intended.
|
1.42.14.12 |
| 19-Mar-2015 |
skrll | Do the same as OpenBSD and get rid of the *_handle typedefs and use plain structures insteads
|
1.42.14.11 |
| 18-Mar-2015 |
skrll | KNF
|
1.42.14.10 |
| 02-Mar-2015 |
skrll | ex_isdone / ux_state tidyup
|
1.42.14.9 |
| 01-Feb-2015 |
skrll | KNF
|
1.42.14.8 |
| 01-Feb-2015 |
skrll | KNF
|
1.42.14.7 |
| 24-Dec-2014 |
skrll | Prefix ehci_xfer members with 'ex_'. No functional change.
|
1.42.14.6 |
| 23-Dec-2014 |
skrll | Remove an item and use a union to reduce the size of ehci_xfer
|
1.42.14.5 |
| 05-Dec-2014 |
skrll | Use int for return type for [eou]chi_init and motg_init.
|
1.42.14.4 |
| 04-Dec-2014 |
skrll | Rework roothub control transfers so that much of the code is shared across HCDs.
I have retained the vendor/product reporting for each HCD for now, but it maybe get removed later.
ahci(4) now reports a language table and uses the usb_makestrdesc function instead of rolling its own version.
|
1.42.14.3 |
| 02-Dec-2014 |
skrll | Step #1 of memory allocation re-organisation.
Centralised the buffer allocation routine which now supports DMA and non-DMA capable host controllers. Remove the ubm_{alloc,free}m methods from usbd_bus_methods.
The buffer allocation is only allowed in thread context and, therefore, negates the usefulness of the reserve dma code which is removed in this change.
USBD_NO_COPY is also no longer required as usbd_transfer and usbd_transfer_complete now track buffer usage and handle any copying.
|
1.42.14.2 |
| 30-Nov-2014 |
skrll | Add full speed isoc support to ehci(4). Based on the patch posted in
https://mail-index.netbsd.org/port-arm/2013/04/14/msg001842.html
From Masao Uebayashi via Sebastien Bocahu
|
1.42.14.1 |
| 30-Nov-2014 |
skrll | Use C99 types. u_int{8,16,32,64}_t to uint{8,16,32,64}_t.
No functional change.
|
1.42.12.2 |
| 25-Aug-2018 |
martin | Pull up following revision(s) (requested by mrg in ticket #1632):
sys/dev/usb/usbdivar.h: revision 1.117 sys/external/bsd/dwc2/dwc2.c: revision 1.52 sys/dev/usb/xhcivar.h: revision 1.10 sys/dev/usb/motg.c: revision 1.22 sys/dev/usb/ehci.c: revision 1.260 sys/dev/usb/ehci.c: revision 1.261 sys/dev/usb/xhci.c: revision 1.96 sys/dev/usb/ohci.c: revision 1.282 sys/dev/usb/ohci.c: revision 1.283 sys/dev/usb/ehcivar.h: revision 1.45 sys/dev/usb/uhci.c: revision 1.281 sys/dev/usb/uhci.c: revision 1.282 sys/dev/usb/usbdi.c: revision 1.177 sys/dev/usb/ohcivar.h: revision 1.60 sys/dev/usb/uhcivar.h: revision 1.55 (all via patch)
pull across abort fixes from nick-nhusb. add more abort fixes, using ideas from Taylor and Nick, and myself. special thanks to both who inspired much of the code here, if not wrote it directly.
among other problems, this assert should no longer trigger:
panic: kernel diagnostic assertion "xfer->ux_state == XFER_ONQU" failed: file "/current/src/sys/dev/usb/usbdi.c", line 914
using usbhist i was able to track down my instance of it being related to userland close() beginning, dropping the sc_lock, and then the usb softintr completes the transfer normally, and when it is done, the abort path attempts to re-complete the transfer, and the above assert is tripped.
changes from nhusb were commited with these logs: -- Move the struct usb_task to struct usbd_xfer for everyone to use. -- Set device transfer status to USBD_IN_PROGRESS if start methods succeeds -- Actually set the transfer status on transfers in ohci_abort_xfer and the controller is dying -- Don't supply the lock to callout_halt when polling as it won't be held -- Improve transfer abort -- Mark device transfers as USBD_IN_PROGRESS appropriately and improve abort handling -- -- Mark device transfers as USBD_IN_PROGRESS appropriately and improve abort handling --
additional changes include: - initialise the usb abort task in the HCI allocx routine, so that it can be safely usb_rem_task()'d. - rework the handling of softintr vs cancellation vs timeout abort based upon a scheme from Taylor: when completing a transfer normally: - if the status is not in progress, it must be cancelled or timed out, and we should not process this xfer. - set the status as normal. - unconditionallly callout_stop() and usb_rem_task(). they're safe and either aren't running, or will run and do nothing. - finally call usb_transfer_complete(). when aborting a transfer: - status should be cancelled or timed out. - if cancelling, callout_halt and usb_rem_task_wait() to make sure the timer is either done or cancelled. - at this point, the ux_status must not be cancelled or timed out, and if it is not in progress we're done. - set the status. - if the controller is dying, just return. - perform HCI-specific tasks to abort this xfer. - finally call usb_transfer_complete(). for the timeout and timeout task: - if the HCI is not dying, and the ux_status is in progress, then trigger the usb abort task. - remove UXFER_ABORTWAIT and UXFER_ABORTING.
tested on: - multiple PC systems with several types of devices: ugen/UPS, ucom, umass with disk, ssd and cdrom backends, kbd, ms, using uhci, ehci and xhci. - erlite3: sd@umass on dwc2. - sunblade2000: kbd/ms and umass disk on ohci.
untested: - motg, slhci and ahci. motg has some portion of the new scheme applied, but slhci and ahci require more study.
future work includes pushing a lot of the common abort handling into usbdi.c and leaving upm_abort() for HC specific tasks, but this change is pullup-able to netbsd-7 and netbsd-8 as it does not change any external API, as well as removing over 100 lines of code while adding over 30 new asserts.
XXX: pullup-7, pullup-8.
fix DIAGNOSTIC build by not copying ub_usepolling to stack before use
Sprinkle __diagused
|
1.42.12.1 |
| 05-Apr-2017 |
snj | Pull up following revision(s) (requested by skrll in ticket #1395): share/man/man4/axe.4: netbsd-7-nhusb share/man/man4/axen.4: netbsd-7-nhusb share/man/man4/cdce.4: netbsd-7-nhusb share/man/man4/uaudio.4: netbsd-7-nhusb share/man/man4/ucom.4: netbsd-7-nhusb share/man/man4/uep.4: netbsd-7-nhusb share/man/man4/urtw.4: netbsd-7-nhusb share/man/man4/usb.4: netbsd-7-nhusb share/man/man4/uyap.4: netbsd-7-nhusb share/man/man4/xhci.4: netbsd-7-nhusb share/man/man9/usbdi.9: netbsd-7-nhusb sys/arch/amd64/conf/ALL: netbsd-7-nhusb sys/arch/amd64/conf/GENERIC: netbsd-7-nhusb sys/arch/amiga/dev/slhci_zbus.c: netbsd-7-nhusb sys/arch/arm/allwinner/awin_otg.c: netbsd-7-nhusb sys/arch/arm/allwinner/awin_usb.c: netbsd-7-nhusb sys/arch/arm/amlogic/amlogic_dwctwo.c: netbsd-7-nhusb sys/arch/arm/at91/at91ohci.c: netbsd-7-nhusb sys/arch/arm/broadcom/bcm2835_dwctwo.c: netbsd-7-nhusb sys/arch/arm/broadcom/bcm53xx_usb.c: netbsd-7-nhusb sys/arch/arm/ep93xx/epohci.c: netbsd-7-nhusb sys/arch/arm/gemini/obio_ehci.c: netbsd-7-nhusb sys/arch/arm/imx/files.imx23: netbsd-7-nhusb sys/arch/arm/imx/imxusb.c: netbsd-7-nhusb sys/arch/arm/imx/imxusbreg.h: netbsd-7-nhusb sys/arch/arm/omap/obio_ohci.c: netbsd-7-nhusb sys/arch/arm/omap/omap3_ehci.c: netbsd-7-nhusb sys/arch/arm/omap/omapl1x_ohci.c: netbsd-7-nhusb sys/arch/arm/omap/tiotg.c: netbsd-7-nhusb sys/arch/arm/s3c2xx0/ohci_s3c24x0.c: netbsd-7-nhusb sys/arch/arm/samsung/exynos_usb.c: netbsd-7-nhusb sys/arch/arm/xscale/pxa2x0_ohci.c: netbsd-7-nhusb sys/arch/arm/zynq/zynq_usb.c: netbsd-7-nhusb sys/arch/hpcarm/dev/nbp_slhci.c: netbsd-7-nhusb sys/arch/hpcmips/dev/plumohci.c: netbsd-7-nhusb sys/arch/i386/conf/ALL: netbsd-7-nhusb sys/arch/i386/conf/GENERIC: netbsd-7-nhusb sys/arch/i386/pci/gcscehci.c: netbsd-7-nhusb sys/arch/luna68k/conf/GENERIC: netbsd-7-nhusb sys/arch/mips/adm5120/dev/ahci.c: netbsd-7-nhusb sys/arch/mips/adm5120/dev/ahcivar.h: netbsd-7-nhusb sys/arch/mips/alchemy/dev/ohci_aubus.c: netbsd-7-nhusb sys/arch/mips/atheros/dev/ehci_arbus.c: netbsd-7-nhusb sys/arch/mips/atheros/dev/ohci_arbus.c: netbsd-7-nhusb sys/arch/mips/conf/files.adm5120: netbsd-7-nhusb sys/arch/mips/ralink/ralink_ehci.c: netbsd-7-nhusb sys/arch/mips/ralink/ralink_ohci.c: netbsd-7-nhusb sys/arch/mips/rmi/rmixl_ehci.c: netbsd-7-nhusb sys/arch/mips/rmi/rmixl_ohci.c: netbsd-7-nhusb sys/arch/playstation2/dev/ohci_sbus.c: netbsd-7-nhusb sys/arch/powerpc/booke/dev/pq3ehci.c: netbsd-7-nhusb sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.c: netbsd-7-nhusb sys/arch/x68k/dev/slhci_intio.c: netbsd-7-nhusb sys/conf/files: netbsd-7-nhusb sys/dev/cardbus/ehci_cardbus.c: netbsd-7-nhusb sys/dev/cardbus/ohci_cardbus.c: netbsd-7-nhusb sys/dev/cardbus/uhci_cardbus.c: netbsd-7-nhusb sys/dev/ic/sl811hs.c: netbsd-7-nhusb sys/dev/ic/sl811hsvar.h: netbsd-7-nhusb sys/dev/isa/slhci_isa.c: netbsd-7-nhusb sys/dev/marvell/ehci_mv.c: netbsd-7-nhusb sys/dev/pci/ehci_pci.c: netbsd-7-nhusb sys/dev/pci/ohci_pci.c: netbsd-7-nhusb sys/dev/pci/uhci_pci.c: netbsd-7-nhusb sys/dev/pci/xhci_pci.c: netbsd-7-nhusb sys/dev/pcmcia/slhci_pcmcia.c: netbsd-7-nhusb sys/dev/usb/Makefile.usbdevs: netbsd-7-nhusb sys/dev/usb/TODO: netbsd-7-nhusb sys/dev/usb/TODO.usbmp: netbsd-7-nhusb sys/dev/usb/aubtfwl.c: netbsd-7-nhusb sys/dev/usb/auvitek.c: netbsd-7-nhusb sys/dev/usb/auvitek_audio.c: netbsd-7-nhusb sys/dev/usb/auvitek_dtv.c: netbsd-7-nhusb sys/dev/usb/auvitek_i2c.c: netbsd-7-nhusb sys/dev/usb/auvitek_video.c: netbsd-7-nhusb sys/dev/usb/auvitekvar.h: netbsd-7-nhusb sys/dev/usb/ehci.c: netbsd-7-nhusb sys/dev/usb/ehcireg.h: netbsd-7-nhusb sys/dev/usb/ehcivar.h: netbsd-7-nhusb sys/dev/usb/emdtv.c: netbsd-7-nhusb sys/dev/usb/emdtv_dtv.c: netbsd-7-nhusb sys/dev/usb/emdtv_ir.c: netbsd-7-nhusb sys/dev/usb/emdtvvar.h: netbsd-7-nhusb sys/dev/usb/ezload.c: netbsd-7-nhusb sys/dev/usb/ezload.h: netbsd-7-nhusb sys/dev/usb/files.usb: netbsd-7-nhusb sys/dev/usb/hid.c: netbsd-7-nhusb sys/dev/usb/hid.h: netbsd-7-nhusb sys/dev/usb/if_athn_usb.c: netbsd-7-nhusb sys/dev/usb/if_athn_usb.h: netbsd-7-nhusb sys/dev/usb/if_atu.c: netbsd-7-nhusb sys/dev/usb/if_atureg.h: netbsd-7-nhusb sys/dev/usb/if_aue.c: netbsd-7-nhusb sys/dev/usb/if_auereg.h: netbsd-7-nhusb sys/dev/usb/if_axe.c: netbsd-7-nhusb sys/dev/usb/if_axen.c: netbsd-7-nhusb sys/dev/usb/if_axenreg.h: netbsd-7-nhusb sys/dev/usb/if_axereg.h: netbsd-7-nhusb sys/dev/usb/if_cdce.c: netbsd-7-nhusb sys/dev/usb/if_cdcereg.h: netbsd-7-nhusb sys/dev/usb/if_cue.c: netbsd-7-nhusb sys/dev/usb/if_cuereg.h: netbsd-7-nhusb sys/dev/usb/if_kue.c: netbsd-7-nhusb sys/dev/usb/if_kuereg.h: netbsd-7-nhusb sys/dev/usb/if_otus.c: netbsd-7-nhusb sys/dev/usb/if_otusvar.h: netbsd-7-nhusb sys/dev/usb/if_rum.c: netbsd-7-nhusb sys/dev/usb/if_rumreg.h: netbsd-7-nhusb sys/dev/usb/if_rumvar.h: netbsd-7-nhusb sys/dev/usb/if_run.c: netbsd-7-nhusb sys/dev/usb/if_runvar.h: netbsd-7-nhusb sys/dev/usb/if_smsc.c: netbsd-7-nhusb sys/dev/usb/if_smscreg.h: netbsd-7-nhusb sys/dev/usb/if_smscvar.h: netbsd-7-nhusb sys/dev/usb/if_udav.c: netbsd-7-nhusb sys/dev/usb/if_udavreg.h: netbsd-7-nhusb sys/dev/usb/if_upgt.c: netbsd-7-nhusb sys/dev/usb/if_upgtvar.h: netbsd-7-nhusb sys/dev/usb/if_upl.c: netbsd-7-nhusb sys/dev/usb/if_ural.c: netbsd-7-nhusb sys/dev/usb/if_uralreg.h: netbsd-7-nhusb sys/dev/usb/if_uralvar.h: netbsd-7-nhusb sys/dev/usb/if_url.c: netbsd-7-nhusb sys/dev/usb/if_urlreg.h: netbsd-7-nhusb sys/dev/usb/if_urndis.c: netbsd-7-nhusb sys/dev/usb/if_urndisreg.h: netbsd-7-nhusb sys/dev/usb/if_urtw.c: netbsd-7-nhusb sys/dev/usb/if_urtwn.c: netbsd-7-nhusb sys/dev/usb/if_urtwn_data.h: netbsd-7-nhusb sys/dev/usb/if_urtwnreg.h: netbsd-7-nhusb sys/dev/usb/if_urtwnvar.h: netbsd-7-nhusb sys/dev/usb/if_urtwreg.h: netbsd-7-nhusb sys/dev/usb/if_zyd.c: netbsd-7-nhusb sys/dev/usb/if_zydreg.h: netbsd-7-nhusb sys/dev/usb/irmce.c: netbsd-7-nhusb sys/dev/usb/moscom.c: netbsd-7-nhusb sys/dev/usb/motg.c: netbsd-7-nhusb sys/dev/usb/motgvar.h: netbsd-7-nhusb sys/dev/usb/ohci.c: netbsd-7-nhusb sys/dev/usb/ohcireg.h: netbsd-7-nhusb sys/dev/usb/ohcivar.h: netbsd-7-nhusb sys/dev/usb/pseye.c: netbsd-7-nhusb sys/dev/usb/slurm.c: netbsd-7-nhusb sys/dev/usb/stuirda.c: netbsd-7-nhusb sys/dev/usb/u3g.c: netbsd-7-nhusb sys/dev/usb/uark.c: netbsd-7-nhusb sys/dev/usb/uatp.c: netbsd-7-nhusb sys/dev/usb/uaudio.c: netbsd-7-nhusb sys/dev/usb/uberry.c: netbsd-7-nhusb sys/dev/usb/ubsa.c: netbsd-7-nhusb sys/dev/usb/ubsa_common.c: netbsd-7-nhusb sys/dev/usb/ubsavar.h: netbsd-7-nhusb sys/dev/usb/ubt.c: netbsd-7-nhusb sys/dev/usb/uchcom.c: netbsd-7-nhusb sys/dev/usb/ucom.c: netbsd-7-nhusb sys/dev/usb/ucomvar.h: netbsd-7-nhusb sys/dev/usb/ucycom.c: netbsd-7-nhusb sys/dev/usb/udl.c: netbsd-7-nhusb sys/dev/usb/udl.h: netbsd-7-nhusb sys/dev/usb/udsbr.c: netbsd-7-nhusb sys/dev/usb/udsir.c: netbsd-7-nhusb sys/dev/usb/uep.c: netbsd-7-nhusb sys/dev/usb/uftdi.c: netbsd-7-nhusb sys/dev/usb/uftdireg.h: netbsd-7-nhusb sys/dev/usb/ugen.c: netbsd-7-nhusb sys/dev/usb/ugensa.c: netbsd-7-nhusb sys/dev/usb/uhci.c: netbsd-7-nhusb sys/dev/usb/uhcireg.h: netbsd-7-nhusb sys/dev/usb/uhcivar.h: netbsd-7-nhusb sys/dev/usb/uhid.c: netbsd-7-nhusb sys/dev/usb/uhidev.c: netbsd-7-nhusb sys/dev/usb/uhidev.h: netbsd-7-nhusb sys/dev/usb/uhmodem.c: netbsd-7-nhusb sys/dev/usb/uhso.c: netbsd-7-nhusb sys/dev/usb/uhub.c: netbsd-7-nhusb sys/dev/usb/uipad.c: netbsd-7-nhusb sys/dev/usb/uipaq.c: netbsd-7-nhusb sys/dev/usb/uirda.c: netbsd-7-nhusb sys/dev/usb/uirdavar.h: netbsd-7-nhusb sys/dev/usb/ukbd.c: netbsd-7-nhusb sys/dev/usb/ukbdmap.c: netbsd-7-nhusb sys/dev/usb/ukyopon.c: netbsd-7-nhusb sys/dev/usb/ukyopon.h: netbsd-7-nhusb sys/dev/usb/ulpt.c: netbsd-7-nhusb sys/dev/usb/umass.c: netbsd-7-nhusb sys/dev/usb/umass_isdata.c: netbsd-7-nhusb sys/dev/usb/umass_isdata.h: netbsd-7-nhusb sys/dev/usb/umass_quirks.c: netbsd-7-nhusb sys/dev/usb/umass_quirks.h: netbsd-7-nhusb sys/dev/usb/umass_scsipi.c: netbsd-7-nhusb sys/dev/usb/umass_scsipi.h: netbsd-7-nhusb sys/dev/usb/umassvar.h: netbsd-7-nhusb sys/dev/usb/umcs.c: netbsd-7-nhusb sys/dev/usb/umct.c: netbsd-7-nhusb sys/dev/usb/umidi.c: netbsd-7-nhusb sys/dev/usb/umidi_quirks.c: netbsd-7-nhusb sys/dev/usb/umidi_quirks.h: netbsd-7-nhusb sys/dev/usb/umodem.c: netbsd-7-nhusb sys/dev/usb/umodem_common.c: netbsd-7-nhusb sys/dev/usb/umodemvar.h: netbsd-7-nhusb sys/dev/usb/ums.c: netbsd-7-nhusb sys/dev/usb/uplcom.c: netbsd-7-nhusb sys/dev/usb/urio.c: netbsd-7-nhusb sys/dev/usb/urio.h: netbsd-7-nhusb sys/dev/usb/usb.c: netbsd-7-nhusb sys/dev/usb/usb.h: netbsd-7-nhusb sys/dev/usb/usb_mem.c: netbsd-7-nhusb sys/dev/usb/usb_mem.h: netbsd-7-nhusb sys/dev/usb/usb_quirks.c: netbsd-7-nhusb sys/dev/usb/usb_quirks.h: netbsd-7-nhusb sys/dev/usb/usb_subr.c: netbsd-7-nhusb sys/dev/usb/usbdevices.config: netbsd-7-nhusb sys/dev/usb/usbdevs: netbsd-7-nhusb sys/dev/usb/usbdevs.h: netbsd-7-nhusb sys/dev/usb/usbdevs_data.h: netbsd-7-nhusb sys/dev/usb/usbdi.c: netbsd-7-nhusb sys/dev/usb/usbdi.h: netbsd-7-nhusb sys/dev/usb/usbdi_util.c: netbsd-7-nhusb sys/dev/usb/usbdi_util.h: netbsd-7-nhusb sys/dev/usb/usbdivar.h: netbsd-7-nhusb sys/dev/usb/usbhid.h: netbsd-7-nhusb sys/dev/usb/usbhist.h: netbsd-7-nhusb sys/dev/usb/usbroothub.c: netbsd-7-nhusb sys/dev/usb/usbroothub.h: netbsd-7-nhusb sys/dev/usb/usbroothub_subr.c: delete sys/dev/usb/usbroothub_subr.h: delete sys/dev/usb/uscanner.c: netbsd-7-nhusb sys/dev/usb/uslsa.c: netbsd-7-nhusb sys/dev/usb/usscanner.c: netbsd-7-nhusb sys/dev/usb/ustir.c: netbsd-7-nhusb sys/dev/usb/uthum.c: netbsd-7-nhusb sys/dev/usb/utoppy.c: netbsd-7-nhusb sys/dev/usb/uts.c: netbsd-7-nhusb sys/dev/usb/uvideo.c: netbsd-7-nhusb sys/dev/usb/uvisor.c: netbsd-7-nhusb sys/dev/usb/uvscom.c: netbsd-7-nhusb sys/dev/usb/uyap.c: netbsd-7-nhusb sys/dev/usb/uyap_firmware.h: netbsd-7-nhusb sys/dev/usb/uyurex.c: netbsd-7-nhusb sys/dev/usb/x1input_rdesc.h: netbsd-7-nhusb sys/dev/usb/xhci.c: netbsd-7-nhusb sys/dev/usb/xhcireg.h: netbsd-7-nhusb sys/dev/usb/xhcivar.h: netbsd-7-nhusb sys/dev/usb/xinput_rdesc.h: netbsd-7-nhusb sys/external/bsd/common/conf/files.linux: netbsd-7-nhusb sys/external/bsd/common/include/linux/err.h: netbsd-7-nhusb sys/external/bsd/common/include/linux/kernel.h: netbsd-7-nhusb sys/external/bsd/common/include/linux/workqueue.h: netbsd-7-nhusb sys/external/bsd/common/linux/linux_work.c: netbsd-7-nhusb sys/external/bsd/drm2/dist/drm/radeon/atombios_encoders.c: netbsd-7-nhusb sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_encoders.c: netbsd-7-nhusb sys/external/bsd/drm2/drm/files.drmkms: netbsd-7-nhusb sys/external/bsd/drm2/i915drm/files.i915drmkms: netbsd-7-nhusb sys/external/bsd/drm2/include/linux/err.h: delete sys/external/bsd/drm2/include/linux/workqueue.h: delete sys/external/bsd/drm2/linux/files.drmkms_linux: netbsd-7-nhusb sys/external/bsd/drm2/linux/linux_work.c: delete sys/external/bsd/dwc2/dwc2.c: netbsd-7-nhusb sys/external/bsd/dwc2/dwc2.h: netbsd-7-nhusb sys/external/bsd/dwc2/dwc2var.h: netbsd-7-nhusb sys/external/bsd/dwc2/dwctwo2netbsd: netbsd-7-nhusb sys/external/bsd/dwc2/conf/files.dwc2: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_core.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_core.h: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_coreintr.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcd.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcd.h: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcdddma.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcdintr.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hw.h: netbsd-7-nhusb sys/modules/drmkms_linux/Makefile: netbsd-7-nhusb sys/modules/i915drmkms/Makefile: netbsd-7-nhusb sys/rump/dev/lib/libugenhc/ugenhc.c: netbsd-7-nhusb sys/rump/dev/lib/libusb/Makefile: netbsd-7-nhusb sys/rump/dev/lib/libusb/USB.ioconf: netbsd-7-nhusb sys/rump/dev/lib/libusb/usb_at_ugenhc.c: delete sys/rump/dev/lib/libusb/opt/opt_usb.h: delete sys/rump/dev/lib/libusb/opt/opt_usbverbose.h: delete sys/sys/mbuf.h: netbsd-7-nhusb usr.sbin/usbdevs/usbdevs.8: netbsd-7-nhusb usr.sbin/usbdevs/usbdevs.c: netbsd-7-nhusb Merge netbsd-7-nhusb: - API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix - Change the SOFTINT level from NET to SERIAL for the USB softint handler. This gives the callback a chance of running when another softint handler at SOFTINT_NET has blocked holding a lock, e.g. softnet_lock and most of the network stack. - kern/49065 - ifconfig tun0 ... sequence locks up system / lockup: softnet_lock held across usb xfr - kern/50491 - unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2 - kern/51395 - USB Ethernet makes xhci hang - Various improvements to slhci(4) - Various improvements to dwc2(4)
|
1.43.16.3 |
| 30-Sep-2018 |
pgoyette | Ssync with HEAD
|
1.43.16.2 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.43.16.1 |
| 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.43.10.2 |
| 28-Sep-2018 |
martin | Fixup for ticket #1037 - parts of the patch were accidently missing.
|
1.43.10.1 |
| 25-Aug-2018 |
martin | Pull up following revision(s) (requested by mrg in ticket #980):
sys/dev/usb/usbdivar.h: revision 1.117 sys/external/bsd/dwc2/dwc2.c: revision 1.52 sys/dev/usb/xhcivar.h: revision 1.10 sys/dev/usb/motg.c: revision 1.22 sys/dev/usb/ehci.c: revision 1.260 sys/dev/usb/ehci.c: revision 1.261 sys/dev/usb/xhci.c: revision 1.96 sys/dev/usb/ohci.c: revision 1.282 sys/dev/usb/ohci.c: revision 1.283 sys/dev/usb/ehcivar.h: revision 1.45 sys/dev/usb/uhci.c: revision 1.281 sys/dev/usb/uhci.c: revision 1.282 sys/dev/usb/usbdi.c: revision 1.177 sys/dev/usb/ohcivar.h: revision 1.60 sys/dev/usb/uhcivar.h: revision 1.55 (all via patch)
pull across abort fixes from nick-nhusb. add more abort fixes, using ideas from Taylor and Nick, and myself. special thanks to both who inspired much of the code here, if not wrote it directly. among other problems, this assert should no longer trigger:
panic: kernel diagnostic assertion "xfer->ux_state == XFER_ONQU" failed: file "/current/src/sys/dev/usb/usbdi.c", line 914
using usbhist i was able to track down my instance of it being related to userland close() beginning, dropping the sc_lock, and then the usb softintr completes the transfer normally, and when it is done, the abort path attempts to re-complete the transfer, and the above assert is tripped.
changes from nhusb were commited with these logs: -- Move the struct usb_task to struct usbd_xfer for everyone to use. -- Set device transfer status to USBD_IN_PROGRESS if start methods succeeds -- Actually set the transfer status on transfers in ohci_abort_xfer and the controller is dying -- Don't supply the lock to callout_halt when polling as it won't be held -- Improve transfer abort -- Mark device transfers as USBD_IN_PROGRESS appropriately and improve abort handling -- -- Mark device transfers as USBD_IN_PROGRESS appropriately and improve abort handling --
additional changes include: - initialise the usb abort task in the HCI allocx routine, so that it can be safely usb_rem_task()'d. - rework the handling of softintr vs cancellation vs timeout abort based upon a scheme from Taylor: when completing a transfer normally: - if the status is not in progress, it must be cancelled or timed out, and we should not process this xfer. - set the status as normal. - unconditionallly callout_stop() and usb_rem_task(). they're safe and either aren't running, or will run and do nothing. - finally call usb_transfer_complete(). when aborting a transfer: - status should be cancelled or timed out. - if cancelling, callout_halt and usb_rem_task_wait() to make sure the timer is either done or cancelled. - at this point, the ux_status must not be cancelled or timed out, and if it is not in progress we're done. - set the status. - if the controller is dying, just return. - perform HCI-specific tasks to abort this xfer. - finally call usb_transfer_complete(). for the timeout and timeout task: - if the HCI is not dying, and the ux_status is in progress, then trigger the usb abort task. - remove UXFER_ABORTWAIT and UXFER_ABORTING.
tested on: - multiple PC systems with several types of devices: ugen/UPS, ucom, umass with disk, ssd and cdrom backends, kbd, ms, using uhci, ehci and xhci. - erlite3: sd@umass on dwc2. - sunblade2000: kbd/ms and umass disk on ohci.
untested: - motg, slhci and ahci. motg has some portion of the new scheme applied, but slhci and ahci require more study.
future work includes pushing a lot of the common abort handling into usbdi.c and leaving upm_abort() for HC specific tasks, but this change is pullup-able to netbsd-7 and netbsd-8 as it does not change any external API, as well as removing over 100 lines of code while adding over 30 new asserts.
XXX: pullup-7, pullup-8.
fix DIAGNOSTIC build by not copying ub_usepolling to stack before use
Sprinkle __diagused
|
1.44.2.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.44.2.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.51.4.1 |
| 03-Feb-2024 |
martin | Pull up following revision(s) (requested by jmcneill in ticket #561):
etc/etc.evbppc/Makefile.inc: revision 1.15 sys/arch/evbppc/wii/dev/wiifb.c: revision 1.1 sys/arch/evbppc/wii/dev/wiifb.c: revision 1.2 sys/arch/evbppc/wii/dev/bwdsp.c: revision 1.1 sys/arch/evbppc/wii/dev/wiifb.c: revision 1.3 sys/arch/evbppc/wii/dev/bwdsp.c: revision 1.2 distrib/utils/embedded/files/evbppc_wii_icon.png: revision 1.1 usr.sbin/sysinst/arch/evbppc/md.h: revision 1.4 sys/arch/evbppc/wii/dev/wiifb.c: revision 1.4 sys/arch/evbppc/wii/dev/viio.h: revision 1.1 sys/arch/evbppc/wii/dev/wiifb.c: revision 1.5 sys/arch/evbppc/wii/dev/mainbus.h: revision 1.1 distrib/utils/embedded/conf/wii.conf: revision 1.1 distrib/utils/embedded/conf/wii.conf: revision 1.2 distrib/utils/embedded/conf/wii.conf: revision 1.3 sys/dev/sdmmc/sdhcvar.h: revision 1.34 sys/dev/sdmmc/sdhc.c: revision 1.118 sys/arch/evbppc/wii/dev/resetbtn.c: revision 1.1 distrib/utils/embedded/conf/evbppc.conf: revision 1.1 sys/dev/wsfb/genfb.c: revision 1.91 sys/arch/evbppc/wii/dev/resetbtn.c: revision 1.2 sys/dev/wscons/wsconsio.h: revision 1.127 sys/arch/powerpc/oea/oea_machdep.c: revision 1.85 sys/arch/evbppc/wii/dev/hollywood.h: revision 1.1 sys/arch/evbppc/conf/std.wii: revision 1.1 sys/arch/evbppc/wii/dev/hollywood.h: revision 1.2 sys/arch/evbppc/wii/dev/hollywood.c: revision 1.1 sys/arch/evbppc/conf/std.wii: revision 1.2 sys/arch/evbppc/wii/dev/hollywood.c: revision 1.2 sys/arch/evbppc/conf/std.wii: revision 1.3 sys/arch/powerpc/oea/cpu_subr.c: revision 1.109 sys/arch/evbppc/wii/wii_mmuinit.S: revision 1.1 sys/dev/usb/usb.h: revision 1.124 sys/arch/evbppc/wii/machdep.c: revision 1.1 sys/arch/evbppc/wii/dev/rtcsram.c: revision 1.1 sys/arch/powerpc/include/oea/hid.h: revision 1.14 sys/arch/evbppc/wii/mainbus.c: revision 1.1 sys/arch/evbppc/wii/machdep.c: revision 1.2 sys/arch/evbppc/wii/dev/ehci_hollywood.c: revision 1.1 sys/arch/evbppc/wii/mainbus.c: revision 1.2 sys/arch/evbppc/wii/machdep.c: revision 1.3 sys/arch/evbppc/wii/dev/ehci_hollywood.c: revision 1.2 sys/arch/evbppc/wii/mainbus.c: revision 1.3 sys/arch/evbppc/wii/machdep.c: revision 1.4 sys/arch/evbppc/wii/dev/hwgpio.c: revision 1.1 sys/arch/evbppc/wii/dev/sdhc_hollywood.c: revision 1.1 sys/arch/evbppc/wii/dev/sdhc_hollywood.c: revision 1.2 sys/arch/evbppc/wii/wii_locore.S: revision 1.1 sys/arch/evbppc/conf/files.wii: revision 1.1 sys/arch/evbppc/wii/wii_locore.S: revision 1.2 sys/arch/evbppc/include/wii.h: revision 1.1 sys/arch/evbppc/conf/files.wii: revision 1.2 sys/arch/evbppc/wii/dev/exi.c: revision 1.1 sys/arch/evbppc/include/wii.h: revision 1.2 sys/arch/evbppc/conf/files.wii: revision 1.3 sys/arch/powerpc/powerpc/clock.c: revision 1.18 sys/arch/evbppc/include/wii.h: revision 1.3 sys/arch/evbppc/conf/files.wii: revision 1.4 sys/arch/evbppc/include/wii.h: revision 1.4 sys/arch/evbppc/wii/dev/exi.h: revision 1.1 sys/arch/evbppc/wii/dev/avenc.c: revision 1.1 sys/arch/evbppc/include/wii.h: revision 1.5 sys/arch/evbppc/include/wii.h: revision 1.6 sys/arch/evbppc/include/wii.h: revision 1.7 sys/arch/evbppc/wii/dev/avenc.h: revision 1.1 distrib/utils/embedded/mkimage: revision 1.79 sys/arch/evbppc/conf/WII: revision 1.1 sys/arch/evbppc/conf/INSTALL_WII: revision 1.1 distrib/utils/embedded/files/evbppc_wii_meta.xml: revision 1.1 sys/arch/evbppc/wii/dev/vireg.h: revision 1.1 sys/arch/evbppc/conf/WII: revision 1.2 distrib/utils/embedded/files/evbppc_wii_meta.xml: revision 1.2 sys/arch/evbppc/wii/dev/vireg.h: revision 1.2 sys/arch/evbppc/conf/WII: revision 1.3 sys/arch/evbppc/conf/WII: revision 1.4 usr.sbin/sysinst/arch/evbppc/md.c: revision 1.11 sys/arch/evbppc/wii/dev/ohci_hollywood.c: revision 1.1 sys/dev/usb/ehcivar.h: revision 1.52 sys/arch/evbppc/wii/pic_pi.c: revision 1.1 sys/arch/evbppc/wii/dev/ohci_hollywood.c: revision 1.2 etc/etc.evbppc/ttys: revision 1.8 sys/arch/evbppc/wii/dev/bwai.c: revision 1.1 sys/arch/evbppc/wii/dev/bwai.c: revision 1.2 sys/arch/evbppc/wii/dev/bwai.c: revision 1.3 sys/arch/evbppc/wii/autoconf.c: revision 1.1 sys/arch/evbppc/conf/Makefile.wii.inc: revision 1.1 sys/arch/evbppc/wii/dev/bwai.h: revision 1.1 sys/arch/evbppc/wii/autoconf.c: revision 1.2 sys/arch/evbppc/conf/Makefile.wii.inc: revision 1.2
powerpc: oea: Fix prefetchable mappings Prefetchable mappings need PMAP_NOCACHE to get write-combine semantics. powerpc: oea: Decode IBM750CL L2 cache information. sdmmc: add support for optional delay after register write wscons: Add HOLLYWOOD display and YUY2 pixel format types wsfb: add support for optional "devcmap" property A hardware driver can supply a pointer to a 16x 32-bit array to override the default rasops device colour map in the "devcmap" property. ehci: add EHCIF_32BIT_ACCESS flag to force 32-bit MMIO fix comments: HID0 ICFI/DCFI are "flash invalidate", not "flush invalidate" powerpc: fix delay for large (> ~5sec) values When calculating the target timebase, promote '1000' on the RHS to ULL to force 64-bit calculation, otherwise 'n * 1000' will overflow. usb: increase USB_PORT_RESET_RECOVERY from 10ms to 20ms I changed this from 250ms to 10ms back in 2021 based on a similar FreeBSD change, but it seems to be a bit too aggressive for some platforms. evbppc: Add initial support for the Nintendo Wii wii: support RB_POWERDOWN build fix: use dd with count=1 for compat with NetBSD dd(1) wii: Add NTSC 480p support. In addition to this, add VIIO_{GET,SET}REGS ioctl support to allow for poking at video interface registers from userland. This is helpful for debugging display issues. wii: Add 128x48 icon to SD card image wii: Fix a comment wii: Add drivers for Broadway DSP and Audio interface. 0: [*] audio0 @ bwdsp0: Broadway DSP playback: 16, 2ch, 48000Hz record: unavailable (P-) slinear_be 16/16, 2ch, { 48000 } wii: Add screenblank support. wii: Use screen dimming register for screen blanking. wii: Add GPIO, I2C, and basic A/V encoder driver. wii: Use A/V encoder volume controls instead of using a software filter. wii: Simply DSP driver - no interrupt handler required. wii: provide device names to intr_establish wii$ intrctl list interrupt id CPU0 device name(s) pi irq 14 64769* hollywood0 hollywood irq 36 5872* ehci0 hollywood irq 39 58907* sdhc0 hollywood irq 40 4* sdhc1 hollywood irq 49 0* resetbtn0 pi irq 5 0* bwai0 wii: Add support for passing boot options to the kernel. wii: Add External interface bus and RTC support wii: Remove objcopy after kernel build. HBC will do the right thing. Add wsvt25 entries (off by default) for ttyE0-ttyE3. Add support for "PAL" (576i) mode on Wii.
|