An error occurred fetching the project authors.
  1. 05 Nov, 2004 1 commit
  2. 03 Nov, 2004 3 commits
  3. 06 Oct, 2004 1 commit
  4. 18 Sep, 2004 1 commit
  5. 15 Sep, 2004 1 commit
  6. 13 Sep, 2004 1 commit
    • David Brownell's avatar
      [PATCH] USB: ohci init refactor · fa4b40f4
      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: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      fa4b40f4
  7. 09 Sep, 2004 1 commit
    • David Brownell's avatar
      [PATCH] USB: ohci updates · 65a7d3e4
      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: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      65a7d3e4
  8. 03 Sep, 2004 1 commit
    • David Brownell's avatar
      [PATCH] USB: OHCI init cleanups · 13319e15
      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: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      13319e15
  9. 24 Aug, 2004 1 commit
    • David Brownell's avatar
      [PATCH] USB: ohci_omap updates · f0a233c0
      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: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      f0a233c0
  10. 08 Jun, 2004 1 commit
  11. 18 May, 2004 1 commit
  12. 17 May, 2004 1 commit
  13. 11 May, 2004 2 commits
    • David Brownell's avatar
      [PATCH] USB: OHCI root hub suspend/resume/wakeup · c8ae88da
      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.
      c8ae88da
    • David Brownell's avatar
      [PATCH] USB: OHCI resume/reset stops deadlocking in PM code · 2a339670
      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.
      2a339670
  14. 17 Feb, 2004 1 commit
  15. 05 Dec, 2003 1 commit
    • David Brownell's avatar
      [PATCH] USB: ohci, fix iso "bad entry" bug + misc · ed63f425
      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.
      ed63f425
  16. 13 Oct, 2003 1 commit
    • David Brownell's avatar
      [PATCH] USB: ohci-hcd PM fixes · 5c549937
      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.
      5c549937
  17. 20 Feb, 2003 1 commit
    • David Brownell's avatar
      [PATCH] USB: sync with some 2.4 ohci fixes, prepare for backport · d3d118a8
      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.
      d3d118a8
  18. 23 Nov, 2002 1 commit
    • David Brownell's avatar
      [PATCH] ohci uses less slab memory · 82bb12f0
      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.
      82bb12f0
  19. 14 Nov, 2002 1 commit
    • David Brownell's avatar
      [PATCH] ohci-hcd, driverfs files work again, less debug output · 43c72bb3
      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).
      43c72bb3
  20. 05 Nov, 2002 1 commit
    • Christopher Hoover's avatar
      [PATCH] [PATCH] 2.5.44 sa-1111 ohci hcd · 2dc4da94
      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.
      2dc4da94
  21. 04 Sep, 2002 1 commit
    • David Brownell's avatar
      [PATCH] ohci-hcd endpoint scheduling, driverfs · b92eb850
      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.
      b92eb850
  22. 26 Jul, 2002 1 commit
    • David Brownell's avatar
      [PATCH] ohci-hcd cardbus unplug, remove interrupt length limit, · 97cf4c34
      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.
      97cf4c34
  23. 25 Jul, 2002 1 commit
    • David Brownell's avatar
      [PATCH] ohci unlink cleanups · 4ff8e934
      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.
      4ff8e934
  24. 15 Jul, 2002 1 commit
    • David Brownell's avatar
      [PATCH] ohci misc · 34271b63
      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
      34271b63
  25. 18 Jun, 2002 1 commit
    • David Brownell's avatar
      [PATCH] ohci misc fixes · 95038732
      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.
      95038732
  26. 10 Jun, 2002 1 commit
    • David Brownell's avatar
      [PATCH] ohci-hcd, speedups+misc · 81d10b10
      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.
      81d10b10
  27. 08 Jun, 2002 1 commit
  28. 05 Jun, 2002 1 commit
    • David Brownell's avatar
      [PATCH] ohci-hcd, fix urb unlink races · 9a53bdfb
      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.
      9a53bdfb
  29. 04 Apr, 2002 1 commit
    • Greg Kroah-Hartman's avatar
      USB · c9894a14
      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.
      c9894a14
  30. 27 Mar, 2002 1 commit
    • David Brownell's avatar
      USB ohci-hcd driver update · be860b8f
      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
      be860b8f
  31. 05 Feb, 2002 2 commits
    • Greg Kroah-Hartman's avatar
      [PATCH] USB ohci-hcd driver update · a5c9b326
      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.
      a5c9b326
    • Linus Torvalds's avatar
      v2.5.2.2 -> v2.5.2.3 · 463727d1
      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
      463727d1