summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/ehcivar.h
Commit message (Collapse)AuthorAgeFilesLines
* Move usb to a graveyard location under sys/legacy/dev, it is intended that thethompsa2009-02-231-278/+0
| | | | | | | new USB2 stack will fully replace this for 8.0. Remove kernel modules, a subsequent commit will update conf/files. Unhook usbdevs from the build.
* o add Transaction Translator support (still missing ISOC xfers)sam2008-12-231-0/+3
| | | | | | | o add EHCI_SCFLG_BIGEMMIO flag to force big-endian byte-select to be set in USBMODE o split reset work into new public routine ehci_reset so bus shim drivers can force big-endian byte-select before ehci_init
* Merge usb changes for Gateworks Cambria boards:sam2008-12-201-15/+67
|\ | | | | | | | | | | | | | | | | | | | | | | | | o add support to byte swap EHCI descriptor contents; the IXP435 has dual-EHCI controllers integral but descriptor contents are in big-endian format; this support is configured with the USB_EHCI_BIG_ENDIAN_DESC option and enabled with EHCI_SCFLG_BIGEDESC o clean up EHCI USBMODE register setup during init; add #defines for bit values o split debug support out into a new file and enable use through ddb o while here remove a bunch of lingering netbsd-isms Reviewed by: imp
| * Merge WIP from p4:sam2008-12-131-15/+38
|/ | | | | | | | | | | | | | | | | | o recognize ixp435 cpu o change memory layout for for ixp4xx to not assume memory is aliases to 0x10000000 (Cambria/ixp435 memory starts at zero) o handle 64 irqs for ixp435 o dual EHCI USB 2.0 controller integral to ixp435 o overhaul NPE code for ixp435 and better MAC+MII naming o updated NPE firmware (including NPE-A image for ixp435/ixp465) o Gateworks Cambria board support: - IDE compact flash - MCU - front panel LED on i2c bus - Octal LED latch Sanity-tested with NFS-root on Avila and Cambria boards. Requires pending boot2 mods for CF-boot on Cambria.
* Mbus attachment for USB EHCI integrated controller on Marvell chips.raj2008-10-141-0/+3
| | | | | | | This includes workarounds required for the ehci(4) to handle some non-standard behaviour of these devices. Obtained from: Marvell, Semihalf
* Add isochronous transfer support for USB 2.0kevlo2008-08-181-0/+32
| | | | Obtained from: NetBSD
* >From NetBSD:kevlo2008-06-101-1/+0
| | | | | | | | 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. Obtained from: NetBSD
* Expand callout compatibility macros in the main usb bridges.imp2007-06-141-5/+2
|
* More removing compatibility macros.imp2006-09-071-1/+1
| | | | | | md5 still the same. "Dave, stop. I feel my mind slipping away." -- hal
* s/Static/static/gimp2006-09-061-2/+2
| | | | | | | | | | s/device_ptr_t/device_t/g No md5 changes in the .o's # Note to the md5 tracking club: $FreeBSD$ changes md5 after every commit # so you need to checkout -kk to get $FreeBSD$ instead of the actual value # of the keyword.
* Attempt to follow the procedure described in section 4.10 of theiedowse2006-05-241-0/+1
| | | | | | | | | | | | | | | | | | | | EHCI spec for linking in new qTDs into an asynchronous QH. This requires that there is a qTD marked as not active and not halted at the start of the QH's list, and the hardware will know to re-fetch the qTD on each pass rather than just looking at the overlay qTD: "The host controller must be able to advance the queue from the Fetch QH state in order to avoid all hardware/software race conditions. This simple mechanism allows software to simply link qTDs to the queue head and activate them, then the host controller will always find them if/when they are reachable." This is achieved by keeping an "inactivesqtd" entry on the QH list, and re-using it each time as the start of the next transfer, and allocating a new qTD to become the next inactivesqtd. Then a new transfer can be activated by just setting its "active" flag, which avoids all the previous messing with overlay qTD state in ehci_set_qh_qtd().
* ehci_pci.c:ariff2006-01-161-1/+1
| | | | | | | | | | | ATI EHCI controllers exhibit simmilar stall issues and require this dropped interrupts workaround. Be verbose about it. ehci.c: ehcivar.h: Slight change in comments to note about issues surrounding both VIA and ATI EHCI controllers. Approved by: iedowse
* Work around a problem seen on VIA EHCI controllers where occasionallyiedowse2006-01-151-0/+2
| | | | | | | | | | | | an interrupt appears to occur before the transfer has been marked as completed. This caused umass transfers to get stuck, especially when writing large files. The workaround sets up a timer that rechecks for missed completed transfers if some operations are still pending. Other suggested workarounds, such as performing a PCI read immediately after acknowledging the interrupts, do not appear to help. Obtained from: OpenBSD
* This part of the struct isn't needed on FreeBSD:netchild2005-09-241-0/+2
| | | | | | | | | | ---snip--- FYI this bit isn't needed for FreeBSD - I think it came from either OpenBSD or NetBSD where arc4random() wasn't available during cold boot. ---snip--- Explained by: iedowse
* ehcivar.h:netchild2005-09-181-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Synchronise with NetBSD upto rev 1.19: - Allow 32 chars in the saved vendor string. - Some NetBSD-only changes. - Some missing parts (define, variable). ehci_pci.c: Add vendor ids for ATI and Philips. Add identification strings for the following: o ALi's M5239 o AMD 8111 o ATI SB200, SB400 o Intel 6300ESB, ICH4, ICH5, ICH7 o NVIDIA nForce 2, nForce 3, nForce 4 o Philips ISP156x ehcireg.h: We're at the same level as rev 1.18 from NetBSD. usb_port.h: NetBSD/OpenBSD specific things Obtained from: NetBSD via DragonFly No comment from: usb@
* It was possible to have two threads concurrently aborting the sameiedowse2005-03-191-0/+4
| | | | | | | | | | | | | | | | | | transfer, which lead to panics or page faults. For example if a transfer timed out, another thread could come along and attempt to abort the same transfer while the timeout task was sleeping in the *_abort_xfer() function. Add an "aborting" flag to the private transfer state in each host controller driver and use this to ensure that the abort is only executed once. Also prioritise normal abort requests over timeouts so that the callback is always given a status of USB_CANCELLED even if the timeout-initiated abort began first. The crashes caused by this bug were mainly reported in connection with lpd printing to a USB printer. PR: usb/78208, usb/78986
* MFp4:imp2005-01-111-1/+2
| | | | | sc_child isn't used on FreeBSD, so ifdef it out in a way that is NetBSD mergeable.
* Start each of the license/copyright comments with /*-, minor shuffle of linesimp2005-01-061-1/+1
|
* Rewrite ehci_abort_xfer() to use the method hinted at in the EHCI spec.julian2004-12-291-0/+1
| | | | | | | | | | | | | to remove a transaction from the async schedule. The previous method didn't work well and led to the hardware writing to free'd buffers etc, as it didn't always know that the transaction had been aborted. Written after consultation with David Brownell who wrote the Linux EHCI driver. As part of this give the sqh structure a "previous" pointer. MFC after: 1 week
* Save and restore state across suspend/resume events.iedowse2004-10-301-0/+1
| | | | | Submitted by: David Gwynne <dlg@openbsd.org> Obtained from: OpenBSD (+ extra patches supplied by David)
* Make the USB subsystem unloadable and detachable, though currentlyiedowse2004-08-021-1/+5
| | | | | a significant amount of memory may be leaked each time a host controller is detached.
* Attempt to follow the correct procedure for synchronising with theiedowse2004-08-021-0/+1
| | | | | | | system BIOS to disable legacy device emulation as per the "EHCI Extended Capability: Pre-OS to OS Handoff Synchronisation" section of the EHCI spec. BIOSes that implement legacy emulation using SMIs are supposed to disable the emulation when this procedure is performed.
* Implement basic support for EHCI interrupt pipes. This is unlikelyiedowse2004-08-011-0/+17
| | | | | | | | to be particularly correct or optimal, but it seems to be enough to allow the attachment of USB2 hubs and USB2 devices connected via USB2 hubs. None of the split transaction support is implemented in our USB stack, so USB1 peripherals will definitely not work when connected via USB2 hubs.
* add EHCI (USB 2.0) controller support.ticso2003-04-141-0/+153
Approved by: joe gallatin (mentor) Obtained from: NetBSD
OpenPOWER on IntegriCloud