An error occurred fetching the project authors.
- 05 Nov, 2004 1 commit
-
-
Linus Torvalds authored
The __iomem attribute was correctly set, and trying to remove it just causes more problems.
-
- 03 Nov, 2004 3 commits
-
-
David Brownell authored
This is the second of the patches from Dale Farnsworth to support OHCI implementations that use big-endian byte sex for registers ... all register accesses changed, that's why it's so large. (It also includes part of an update from his third patch, so that it compiles/runs by itself.) This patch adds support to the OHCI code for big-endian controllers, maintaining the existing little-endian support. This is done using the following transforms: ohci_readl(p) --> ohci_readl(ohci, p) writel(v, p) --> ohci_writel(ohci, v, p) cpu_to_le16(v) --> cpu_to_hc16(ohci, v) cpu_to_le16p(v) --> cpu_to_hc16p(ohci, v) cpu_to_le32(v) --> cpu_to_hc32(ohci, v) cpu_to_le32p(v) --> cpu_to_hc32p(ohci, v) le16_to_cpu(v) --> hc16_to_cpu(ohci, v) le16_to_cpup(v) --> hc16_to_cpup(ohci, v) le32_to_cpu(v) --> hc32_to_cpu(ohci, v) le32_to_cpup(v) --> hc32_to_cpup(ohci, v) OHCI_FRAME_NO(ohci->hcca) --> ohci_frame_no(ohci) There's no runtime penalty except for systems configured to handle both byteorders at the same time. Signed-off-by:
Dale Farnsworth <dale@farnsworth.org> Signed-off-by:
David Brownell <dbrownell@users.sourceforge.net> Signed-off-by:
Greg Kroah-Hartman <greg@kroah.com>
-
David Brownell authored
This is the first of several patches from Dale Farnsworth, laying groundwork for a patch that supports OHCI on more chips (IBM STB04xxx and FreeScale MPC52xx). Replace pre-byteswapped constants for in-memory data structures in ohci.h with cpu-native constants, to help support "big-endian OHCI" hardware. Signed-off-by:
Dale Farnsworth <dale@farnsworth.org> Signed-off-by:
David Brownell <dbrownell@users.sourceforge.net> Signed-off-by:
Greg Kroah-Hartman <greg@kroah.com>
-
Alan Stern authored
This patch removes the code for deallocating the usb_hcd structure from the three PCI-based host controller drivers. It also moves the embedded struct usb_hcd member to the front of the larger driver-specific structures, as required for the core to do its work. Please apply. Signed-off-by:
Alan Stern <stern@rowland.harvard.edu> Signed-off-by:
Greg Kroah-Hartman <greg@kroah.com>
-
- 06 Oct, 2004 1 commit
-
-
Alexander Viro authored
trivial endianness annotations in drivers/usb (apply after ohci and isd200 fixes). Note: drivers/usb is nearly endian-clean at that point; there are several very dubious places in there (in particular, rtl8150, pegasus and usbnet are almost certainly broken in mii-related code on big-endian hosts); I'm leaving them alone for now. Signed-off-by:
Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 18 Sep, 2004 1 commit
-
-
Linus Torvalds authored
-
- 15 Sep, 2004 1 commit
-
-
Greg Kroah-Hartman authored
Signed-off-by:
Greg Kroah-Hartman <greg@kroah.com>
-
- 13 Sep, 2004 1 commit
-
-
David Brownell authored
Please merge, some recent changes made problems by making init take too long. This also adds a bit of support for detecting the funky resume states that happen with suspend-to-disk (like swsusp, pmdisk). Refactor controller initialization ... this is most of the patch by volume. - A time-critical section now runs with IRQs blocked, rather than being split over two separate routines. (I've recently seen init failures because of preemption in the middle of that 2msec timeout, presumably by khubd.) - Bus glue for PCI, LH7A404, OMAP, and SA-1100 now shares more init logic; that'll help shrink support for upcoming non-PCI patches too. - Move the root hub register macros to the header (for debug build issue) - More tweaks to the frame clock initialization, including slightly more helpful diagnostics on "init err". Better SWSUSP support. - Detects and handles some funky "resume after suspend-to-disk" cases. These need to go through full driver re-init. - Restore root hub to CONFIGURED state on resume. Signed-off-by:
David Brownell <dbrownell@users.sourceforge.net> Signed-off-by:
Greg Kroah-Hartman <greg@kroah.com>
-
- 09 Sep, 2004 1 commit
-
-
David Brownell authored
Small bugfixes, at least one of which gets rid of some rather random behavior from certain board init behaviors. OHCI updates: - Bugfix the code taking frame clock adjustments from the boot loader. A recent change had a bug which caused inconsistent failures on some OHCI configs, including amd756. Thanks to <pacman@manson.clss.net> for tracking down the specifics. - From Lothar Wassmann <lk@karo-electronics.de> two fixes: (a) don't let tick clock sign-extend, that can make unlinks take excessively long (could happen easily enough); (b) when re-activating schedules after suspend, use the right bitmask (rare/exotic) - When suspending the root hub, mark it as USB_STATE_SUSPENDED Signed-off-by:
David Brownell <dbrownell@users.sourceforge.net> Signed-off-by:
Greg Kroah-Hartman <greg@kroah.com>
-
- 03 Sep, 2004 1 commit
-
-
David Brownell authored
This ought to fix the NS9750 init issue, and make the AMD756 case at least somewhat better. It makes the init go "by the book" in more ways, and formalizes one quirk. Various OHCI init/reset cleanups for different silicion environments: - Reset a bit more "by the book". * Define a new quirk flag for the SiS and OPTi problem seen earlier. Since 2.4 we've always worked around that quirk, even though we've not seen that on other chips; but it's "wrong" and doesn't work on some chips (notably NetSilicon NS9750). The quirk still seems to be needed for SiS, but either this test machine is too fast for the OPTi problem to show up, or the frame timing setup problem there came from a now-fixed bug. * Look at the HC state before resetting it; depending on whether it was previously owned by BIOS, SMM, an OS, or nobody, different USB signaling (and timings) might be needed. * Re-init the frame timings right after soft reset, rather than later (potentially too much later). * Restore a reset in the PCI startup code, so this logic more closely resembles the non-PCI paths (future code sharing). It also makes it easier to guarantee a 1-millisecond ceiling between reset and "go". An earlier reset is being done to help workaround BIOS-related problems on some boards, but we may need an even earlier one (as a PCI quirk, before IRQs get reconfigured). - Add an explicit #define to disable the BIOS/SMM handoff; it's not just HPPA, many embedded chips don't expect BIOS either. - There are reports of AMD 756 machines disliking the OHCI suspend patch of a few months back. Erratum #10 partly explains that, so now root hubs won't autosuspend on those Slot-A era chips. - Other minor fixes * We've got lots of non-PCI OHCI now too, so comments shouldn't be assuming all-is-pci! * Hey, it's unsafe to call hc_reset() in IRQ (after unrecoverable error); so just force a soft reset, don't do the whole thing. Tested on half a dozen different OHCI versions, but maybe some other versions of OHCI will be sensitive to one of these changes. Signed-off-by:
David Brownell <dbrownell@users.sourceforge.net> Signed-off-by:
Greg Kroah-Hartman <greg@kroah.com>
-
- 24 Aug, 2004 1 commit
-
-
David Brownell authored
This updates the OMAP OHCI support to match the latest from the Linux-OMAP tree. Notable changes from the preceding version: - Use the new USB init model (arch/arm/mach-omap/usb.c). - The OMAP-specific bus is gone; it now uses platform_device. (Update from Tony Lindgren.) - Works on the H2 board, which requires the external isp1301 transceiver even in non-OTG configurations. - Adds OTG support. - Adds basic power management calls. The mach-omap/Kconfig file in the main Linux tree is a bit out of date, it doesn't know about CONFIG_ARCH_OMAP_OTG (for the OMAPs that have OTG silicon). Signed-off-by:
David Brownell <dbrownell@users.sourceforge.net> Signed-off-by:
Greg Kroah-Hartman <greg@kroah.com>
-
- 08 Jun, 2004 1 commit
-
-
David Brownell authored
Support for the Sharp LH7A404 OHCI, another non-PCI implementation. This uses a platform_device and a workaround for a register read problem. Signed-off-by:
Marc Singer <elf@buici.com> Signed-off-by:
David Brownell <dbrownell@users.sourceforge.net> Signed-off-by:
Greg Kroah-Hartman <greg@kroah.com>
-
- 18 May, 2004 1 commit
-
-
Greg Kroah-Hartman authored
-
- 17 May, 2004 1 commit
-
-
David Brownell authored
Here are some MSEC_TO_JIFFIES() fixes missed by whoever did it, plus a minor fix to grab root_hub->serialize() during OHCI suspend. (I forgot to cut/paste those lines from resume.)
-
- 11 May, 2004 2 commits
-
-
David Brownell authored
This patch goes on top of the previous two, and the hcd-0506 patch: - Moves root hub suspend/resume code out of PCI-specific bus glue into generic hub code. That way it's easy to re-use it even for non-PCI implementations like SA1111, OMAP, and LH7A404. (Plus, given CONFIG_USB_SUSPEND, it can be invoked with sysfs.) - Root hub suspend is a lot more careful, as is root hub resume. Pending transactions are now shut down more consistently; and more registers are re-initialized on resume. - The PCI bus glue is now left with truly generic PCI stuff, plus some PMAC-specific stuff (which doesn't include irq disabling any more, hcd-0506 moves that up a level in the stack). - Remote wakeup support is basically working for the root hub. (given CONFIG_USB_SUSPEND to suspend devices and enable it). - Idle HCs will now automatically suspend themselves, and resume as necessary. This saves a certain amount of power on most systems, and matches what UHCI has been doing for a while. The large size of this patch is mostly because of moving that root hub suspend/resume code out of the PCI-specific glue.
-
David Brownell authored
System-wide PM resume now happily deadlocks if one of the resuming devices tries to remove devices which vanished during the suspend(*). IMO that's unreasonable both because devices can/do vanish, and because 2.4 didn't deadlock in those cases; but no patch to fix that has been merged. The result is that ever since merging the "new" PM code, some OHCI-based systems deadlock on resume. So this patch handles the "lost power during resume" case differently: it doesn't disconnect the root hub (or its children) directly. Instead, it does part of that work immediately, and defers the rest to khubd: - add a "pending" list for live urbs, and use it after reset to abort pending URBs (and reclaim "live" EDs/TDs) - immediately mark all devices NOTATTACHED, so any operations on the devices before khubd handles the disconnects, including resume() callbacks, will fail - kick root hub so it can do the cleanup It also handles "fminterval" init/reinit a bit better, mostly to work better in some remote wakeup scenarios addressed in later patches: - save any initial value the boot firmware provided - use it during initialization (and eventually, remote wakeup) Other changes: - use better jiffies calculation for scheduled delays - the allocator does more of the one-time initialization - initialize hcd.can_wakeup according to boot firmware - move some inlines to the header - minor cleanups (*) http://marc.theaimsgroup.com/?l=linux-kernel&m=106606272103414&w=2 reported against 2.6.0-test7.
-
- 17 Feb, 2004 1 commit
-
-
Deepak Saxena authored
-
- 05 Dec, 2003 1 commit
-
-
David Brownell authored
A while back there were some reports of ohci reporting a "bad entry" diagnostic, mostly with ISO transfers, which were mysterious until I recently found an easy way to reproduce it. This patch: - Fixes at least one cause of that "bad entry" diagnostic by waiting for INTR_WDH before completing ED unlink processing. (Else URB unlinking could free TDs on the donelist, so the WDH processing would see those entries as "bad".) - Merges the patch from Darwin Rambo <drambo@broadcom.com>, coping with CPUs that can't do 16 bit accesses (MIPS). - Renames a function as start_ed_unlink(), matching its role. - Fixes minor debug output issues, including a FIXME to tell more info about TDs on the periodic schedule. And adding some missing newlines (makes this patch seem big). Nobody's complained much about that "bad entry" issue lately, but if necessary that part would be particularly easy to split out. Please merge to the next kernel that gets USB patches.
-
- 13 Oct, 2003 1 commit
-
-
David Brownell authored
This patch primarily fixes PM-related bugs in the OHCI driver. It gets rid of some flags that duplicated state between usbcore and the HCD. The duplication wasn't correct, and wasn't tested correctly ... this fixes both issues. So now the driver avoids writing to hardware when it's suspended (as required by older PowerBook hardware) or halted, and treats all non-running states the same (as required by all hardware). This includes the last generic parts of a patch sent a while back by Benjamin Herrenschmidt, which weren't at that time testable on a x86 kernel because the generic PM code was in flux (and broken). There may still be some PMAC-specific issues to resolve. With this patch, and a device_resume() deadlock fix, I've seen OHCI suspend/resume work on hardware it's not worked on since the PM changes started to merge into the 2.6.0-test kernels.
-
- 20 Feb, 2003 1 commit
-
-
David Brownell authored
The 2.5 version branched from 2.4.5 or so, and since then a couple hardware-specific tweaks were merged to 2.4; this teaches 2.5 about NatSemi SUPERIO and PA-RISC quirks. This also uses os/version neutral HCD calls to register the root hub and find the HCD's bus. It also adds os/version neutral macros for its diagnostic macros. Most of those changes have been split out separately, but the macros and a few uses of them weren't naturally splittable. Also a couple minor cleanups, like removing CVS ids, having only one copy of a routine used with the debug files, and getting rid of some inline #ifdefs.
-
- 23 Nov, 2002 1 commit
-
-
David Brownell authored
When chasing down some of those 'bad entry' diagnostics, I once got suspicious that the problem was slab corruption coming from the way the td hashtable code worked. So I put together this patch, eliminating some kmallocation, and the next times I ran that test, the oops went away and it worked like a charm. Hmm. This patch is good because it shrinks memory and code, and gets rid of some could-fail allocations, so I figured I'd send it on (low priority) even if I don't think it fixes the root problem.
-
- 14 Nov, 2002 1 commit
-
-
David Brownell authored
This fixes a problem from Chris' patch, letting the driverfs files work again. The root cause was a duplicate "parent_dev" field, now gone. This also adds minor cleanup in the hcd glue, renaming the value being duplicated as the "controller" that the HCD is driving. (A "parent" should rarely be used, but the "controller" has reasonable uses all over the place ... like in dev_dbg calls!) It's initted by the PCI bus glue, or by the SA-1111 bus glue. Also makes some OHCI debug messages appear only when VERBOSE debug is (manually) enabled. This was self-defense, otherwise running the link/unlink "usbtest" cases could fill up the log filesystem (with debug enabled).
-
- 05 Nov, 2002 1 commit
-
-
Christopher Hoover authored
Dereferencing hcd.pdev will always oops with SA-1111. It has to be treated as a cookie, not a pointer in any common OHCI HCD code. Apparently we need a clean way to go from struct device * to struct ohci_hcd *. I added dev_to_ohci that does the obvious thing and added separate implementations for PCI and SA-1111. Two implementations is ugly but I didn't think it wise (for me) to hack on the PCI/driverfs interface, so I just cut & paste the old code. Two patches. The first is a diff from linux-2.5.44 and linux-2.5.44-rmk1. It is from rmk and adds a struct device pointer to ohci_hcd. The second depends on the first and contains my changes to clean up to the pdev oops problems. (Some fuzz may occur as I have ohci-1024 applied.) With these changes, SA111 OHCI-HC/HCD is showing some signs of life on linux-2.5.44-rmk1. usb-storage is currentl blowing chunks, but I think I saw some patches go by against 2.5.44 that I haven't yet tried.
-
- 04 Sep, 2002 1 commit
-
-
David Brownell authored
This patch cleans up some messy parts of this driver, and was pleasantly painless. - gets rid of ED dma hashtables * less memory needed * also less (+faster) code * ... rewrites all ED scheduling ops, they now use cpu addresses, like EHCI and UHCI do already - simplifies ED scheduling (no dma hashtables) * control and bulk lists are now doubly linked * periodic tree still singly linked; driver uses a new CPU view "shadow" of the hardware framelist * previous periodic code was cryptic, almost read-only * simpler tree code for EDs with {branch,period} - bugfixes periodic scheduling * when CONFIG_USB_BANDWIDTH, checks per-frame load against the limit; no more dodgey accounting * handles iso period != 1; interrupt and iso schedule EDs with the same routine (HW sees special TDs) * credit usbfs with bandwidth for endpoints, not URBs - adds driverfs output (when CONFIG_USB_DEBUG) * resembles EHCI: 'async' (control+bulk) and 'periodic' (interrupt+iso) files show schedules * shows only queue heads (EDs) just now (*) - has minor text and code cleanups, etc Now that this logic has morphed into more comprehensible form, I know what to borrow into the EHCI code! (*) It shows TDs on the td_list, but this patch won't put them there. A queue fault handling update will.
-
- 26 Jul, 2002 1 commit
-
-
David Brownell authored
* handle another cardbus unplug misbehavior - root hub kept polling, never stopped - starts to update hcd->state to match internal state * code to count/queue TDs for interrupt/bulk is now shared - removes (low level) interrupt transfer size limitation - both types already handled urb queueing - re-indents some TD queuing code (most of patch, by volume) * cleanup - use new container_of() macro, not list_entry() - report a previously unreported error (control data >4K) - simplify intr/bulk toggle reset - tweak TD debug dump - more object code shrinkage (often fits in 3 pages) Note that the control data size error is just a long-standing limitation of this driver, not a USB limitation! It could be fixed, if anyone starts to run into it.
-
- 25 Jul, 2002 1 commit
-
-
David Brownell authored
Attached is a patch that cleans up a few more issues in the OHCI unlink code. There may still be an ISO-IN data problem, I'll look at that separately since it seems unrelated to unlink issues. - Simplify/correct ED lifecycle * UNLINK is now for real: descheduled and waiting for SOF * finish_unlinks() expects descheduled EDs (may reschedule) * only ed_deschedule() turns off hardware schedule processing * no more NEW state * no more ED_URB_DEL flag (it added extra states) * new IDLE state, "not scheduled" (replaces previous UNLINKing) - Bugfixes * ed_get(), potential memleak is now gone * urb_enqueue(), won't submit to dead/sleeping hc * free_config(), rescans after SOF when needed * ed_schedule(), use wmb() * ed_schedule() and finish_unlinks(), more thorough about restarting control or bulk processing * finish_unlinks(), more cautious about reentering - General: * ed->ed_rm_list renamed ed_next; to be used more later * slightly shrink object code * rename some functions This leaves one notable issue in the unlink paths: the driver never waits for SOF after descheduling (empty) EDs. That's racey in most cases, though there are a few light-traffic cases where that's correct (in part because the ED is empty). Easy to fix once the rest of this is known to behave.
-
- 15 Jul, 2002 1 commit
-
-
David Brownell authored
This patch includes the innocuous bits from a larger one that I'm still working on (mostly unlink fixes): - updates comments - flags TDs that were seen in the donelist - removes some bogus whitespace (at EOL etc) and tabs - checks for an enumeration issue that might cause trouble - delays IRQs a bit more aggressively - shortens TD submit paths a smidgeon (smaller ".o") - updates some of the debug output - sanitizes usb_make_path() output on the SA-1111
-
- 18 Jun, 2002 1 commit
-
-
David Brownell authored
This patch applies on top of the other two (for init problems): - Uses time to balance interrupt load, not number of transfers. One 8-byte lowspeed transfer costs as much as ten same-size at full speed ... previous code could overcommit branches. - Shrinks the code a smidgeon, mostly in the submit path. - Updates comments, remove some magic numbers, etc. - Adds some debug dump routines for EDs and TDs, which can be rather helpful when debugging! - Lays ground work for a "shadow" <linux/list.h> TD queue (but doesn't enlarge the TD or ED on 32bit cpus) I'm not sure anyone would have run into that time/balance issue, though some folk have talked about hooking up lots of lowspeed devices and that would have made trouble.
-
- 10 Jun, 2002 1 commit
-
-
David Brownell authored
- Delays or eliminates some IRQs It'll mostly affect control or iso transfers, which typically have multiple TDs per URB, by making only the last TD generate an IRQ. - Shortens some of the submit path that needs to run with IRQs disabled ... no need to use the dma_to_td hashtable. (Of course that path is still pretty long...) - Gets rid of case where the ED state was confused ... now there's only one such state, not two.
-
- 08 Jun, 2002 1 commit
-
-
Christopher Hoover authored
This adds SA-1111 support for ohci-hcd and fixes usb-ohci too.
-
- 05 Jun, 2002 1 commit
-
-
David Brownell authored
This patch: - Fixes a longstanding urb unlink race, by switching to a single queue for EDs being unlinked. The previous two-queue scheme was sensitive to IRQ latencies: one extra millisecond would make it use the wrong queue. This updated scheme should handle latencies of up to 32K microseconds (Cthulu forfend :) and slightly shrinks object code size. - Related (mostly) cleanup. Some functions and one ED field renamed, ED layout is a smidgeon more compact (even given more data), driver version string doesn't reflect CVS, debug message only comes out in verbose mode.
-
- 04 Apr, 2002 1 commit
-
-
Greg Kroah-Hartman authored
moved files to different subdirectories to make try to make sense of the current mess, and to allow usb client drivers to integrate into the tree easier.
-
- 27 Mar, 2002 1 commit
-
-
David Brownell authored
- bugfix: control endpoints can't stall - bugfix: remove bogus intr unlink optimization, by sharing intr/iso code - bugfix: iso submit uses urb->interval - removed iso urb->next ring logic (belongs in hcd layer if anywhere) - simplify/shorten/correct completion handling - in debug, labels setup packets as such - bring CVS ids back up to date
-
- 05 Feb, 2002 2 commits
-
-
Greg Kroah-Hartman authored
Here's a patch against 2.5.3 for the USB ohci-hcd driver that does the following: - doesn't assume CONFIG_DEBUG_SLAB - unlink from interrupt completions now work - doesn't force debugging on - updated copyright / license statements - slightly smaller object size - fewer inlined magic numbers - removes unused fields from data structures - header file reorg, doc fixup This patch was done by David Brownell.
-
Linus Torvalds authored
- Al Viro: VFS inode allocation moved down to filesystem, trim inodes - Greg KH: USB update, hotplug documentation - Kai Germaschewski: ISDN update - Ingo Molnar: scheduler tweaking ("J2") - Arnaldo: emu10k kdev_t updates - Ben Collins: firewire updates - Björn Wesen: cris arch update - Hal Duston: ps2esdi driver bio/kdev_t fixes - Jean Tourrilhes: move wireless drivers into drivers/net/wireless, update wireless API #1 - Richard Gooch: devfs race fix - OGAWA Hirofumi: FATFS update
-