An error occurred fetching the project authors.
  1. 17 Feb, 2004 1 commit
  2. 16 Jan, 2004 1 commit
    • David Brownell's avatar
      [PATCH] USB: ehci update: 1/3, misc · cf270dfe
      David Brownell authored
      This is minor "obvious" fixes plus two tweaks to help later
      patches:
      
          - Interrupt QH has a link to the device, needed to implement
            schedule trees (like OHCI does today) that are TT-aware
            (essential for most keyboards and mice).
      
          - Export the macros that do high bandwidth packetsize stuff.
            They're also needed for high bandwidth ISO transfers.
      
      It also morphs some existing "too much debug info" urb tracing
      so it's kicked in by a manual #define EHCI_URB_TRACE.  If some
      generic version of that gets added to usbcore, this sort
      of debug code can vanish (from all hcds).
      cf270dfe
  3. 06 Aug, 2003 1 commit
  4. 28 Mar, 2003 1 commit
    • David Brownell's avatar
      [PATCH] USB: ehci-hcd, minor hardware tweaks · af697798
      David Brownell authored
      This tweaks the hardware in two minor ways, being more forgiving
      of what are either hardware bugs or hard-to-see driver bugs.
      
        - Some silicon seems to mis-handle dummy qtds on occasion,
          writing them into the qh and thus stopping progress unless
          something times it out and cancels it (scsi-eh etc).
      
          This initializes such qtds slightly differently, so some
          such cases will make the driver automatically recover, and
          so all such errors will fail in the same way.
      
        - In case of dodgy behavior with respect to unlinking, don't
          modify a field.  Silicon that's (wrongly) reading this will
          have a chance to read the old value while it's still valid.
      
      Also minor diagnostic tweaks for better uniformity/usability.
      af697798
  5. 01 Feb, 2003 1 commit
    • David Brownell's avatar
      [PATCH] USB: ehci-hcd updates · fc42fcf3
      David Brownell authored
      This should apply to 2.5.59 too.  It seems to get rid of some pesky
      hangs, on at least some hardware, but I won't have time to test it
      on either VIA version ... maybe someone else will make the time?  :)
      
            New QH state prevents a re-activation race
      	- nobody can un-halt a qh before its cleanup is done
      	- resubmit-from-completion had this race (some usbtest cases)
      	  as could some normal submit paths on busy endpoints (storage)
      	- faster controllers would trip on this more consistently
      
            Queues of qtds
      	- work harder to avoid ever modifing any qh in software
      	- short reads block queue advance much less often
      	- be more cautious with large (>~19KB) unaligned buffers
      
            Unlinking urbs
      	- if qtd unlinked is at queue head, use its latest status
      	  (main effect is reporting bytes from partial transfers)
      	- another new qh state:  defer qh unlink if IAA is busy
      	  (eliminates a busy-wait loop in a rare scenario)
      
            Enable features to improve bus utilization
      	- PCI MWI ... can produce better write throughput; and by
      	  using right cacheline size, sometimes read throughput too
      	- USB NAK throttle ... sometimes reduces PCI access rates
      
            Other
      	- async dump shows more funky qh+qtd states, and NAK count
      	- cope with with some of the sprintf wierdness
      	- periodic dump is usually smaller (so is that schedule)
            	- minor cleanups
      fc42fcf3
  6. 19 Dec, 2002 1 commit
    • David Brownell's avatar
      [PATCH] ehci, qtd submit and completions · 30a03849
      David Brownell authored
      This ought to address a number of the problems with the
      recent "dummy td" update as well as some older ones:
      
          - Slims down the qh_append_tds() to remove two pairs
            of "should be duplicate" logic so that
              * qh_make() only creates and initializes;
              * qh_append_tds() calls it earlier;
              * always appends with dummy, no routine qh updates.
      
          - Reworked qh_completions() ... simpler, better.
             * two notable FIXMEs gone, and a bug related to
               how they interacted with scatterlist i/o
             * fixed bugs (including one oops) exposed by
               using dummies more.
      
      Passes basic testing:  most 'usbtest' cases, usb2 hub
      with keyboard and CF adapter, storage enumeration.
      So it seems less troublesome, though it's still not
      as happy as I've seen it.
      
      However, "testusb -at12" (running 'write unlink' tests)
      still fails for me, and usb-storage gets unhappy when
      it decides (why?  and unsuccessfully) to reset high speed
      devices.  I'm still chasing those problems, which seem
      to come from higher up in the stack.
      30a03849
  7. 16 Dec, 2002 1 commit
    • David Brownell's avatar
      [PATCH] ehci-hcd (1/2): portability (2.4), tasklet, · 97c17beb
      David Brownell authored
      This should be innocuous; I expect most folk won't notice anything
      better (or worse) from this patch unless they're using Intel EHCI.
      
      removing tasklet
           - parts of davem's patch (passing pt_regs down)
           - remove 'max_completions'
           - update cleanup after hc died
           - fix an urb unlink oops (null ptr) that happens more often this way
      
      talking to hardware
           - fixes for some short read issues (may still be others)
      	* use qtd->hw_alt_next to stop qh processing after short reads
      	* detect/report short reads differently
           - longer reset timeout (it was excessively short, broke Intel)
      
      other
           - simpler diagnostics portability to 2.4:  wrap dev_err() etc
           - urb unlink wait and non-wait unlink codepaths share most code
           - don't try ehci_stop() in interrupt context (bug from hcd layer)
           - minor stuff, including
      	* some "after hc died" paths were wrong
      	* verbose debug messages compile again
      	* don't break error irq count
      97c17beb
  8. 29 Nov, 2002 2 commits
    • David Brownell's avatar
      [PATCH] ehci, more diagnostics use dev_*() macros · 412c9e6a
      David Brownell authored
      This reduces the quantity of messages, by using the
      newer dev_*() macros, and by deleting some messages.
      412c9e6a
    • David Brownell's avatar
      [PATCH] ehci-hcd, handle async_next register correctly · d8808735
      David Brownell authored
      This patch should improve behavior of the EHCI driver,
      particularly on VIA hardware.
      
        - A more careful reading of the EHCI spec turns up
          requirements not to change this register's value
          while the async schedule is enabled.  That means
          in effect that it must never point to a QH that'd
          get unlinked ... driver now uses a dedicated QH.
      
        - Disables async schedule a bit faster:  after 50msec
          idle, not 330msec idle.
      
        - Streamline the "can't init memory" failure path.
      
        - Start to use the dev_dbg()/dev_info()/... macros
          in more places.
      
      This version acts a bunch happier than the previous
      version, removing some failure modes I could never
      quite convince myself were hardware (they weren't!)
      I suspect it'll remove a lot of the "it hangs" failures
      that some folk have reported (mostly on 2.4 though).
      d8808735
  9. 11 Nov, 2002 1 commit
    • David Brownell's avatar
      [PATCH] ehci-hcd, use dummy td when queueing · 2905be5d
      David Brownell authored
      What it does is give up on catching all the "race with HC" cases
      when appending to a live QH, by switching to using a disabled
      "dummy" TD at the end of all hardware queues.  The HC won't cache
      disabled TDs, so it just sees "always good" pointers: no races.
      
      As a side benefit this also makes it safe to not irq on completion
      of most TDs that are queued using the scatterlist calls, so it'll
      be typical for one 64 KByte usb-storage request to mean just one
      irq (or less!) even without tuning ehci irq latency (for the DATA
      stage, that is).
      2905be5d
  10. 07 Oct, 2002 1 commit
    • David Brownell's avatar
      [PATCH] pci/pool.c less spinlock abuse · 6ebb1e2d
      David Brownell authored
      That previous patch got rid of a boot time might_sleep() warning,
      but I noticed two later on:
      
        - kmalloc() needed SLAB_ATOMIC
      
        - destroying the 'pools' driverfs attribute could sleep too
      
      The clean/simple patch for the second one tweaked an API:
      
        - pci_pool_create() can't be called in_interrupt() any more.
          nobody used it there, and such support isn't needed; plus
          that rule matches its sibling call, pci_pool_destroy().
      
        - that made its SLAB_* flags parameter more useless, so it's
          removed and the DMA-mapping.txt is updated.  (this param
          was more trouble than it was worth -- good that it's gone.)
      
      Nobody (even DaveM) objected to those API changes, so I think
      this should be merged.
      6ebb1e2d
  11. 12 Apr, 2002 1 commit
    • David Brownell's avatar
      [PATCH] USB minor ehci cleanup · 17f98d55
      David Brownell authored
      USB minor ehci cleanup
      
      This patch just does minor internal cleanup, renaming to
      match the put/get convention used elsewhere in Linux.
      (Get ref, put it back ... not "putting a new ref here".)
      17f98d55
  12. 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
  13. 18 Mar, 2002 1 commit
    • David Brownell's avatar
      USB mem flags nonpoisonous · d00cdf62
      David Brownell authored
      This patch completely punts on passing SLAB_POISON, I've
      gotten burnt by it once too many.  Seems like the slab code
      changed somewhere.  I've got a separate patch to make the
      pci_pool code use CONFIG_DEBUG_SLAB, which I'll send
      around.
          
      Meanwhile, I needed this to get at least EHCI to intialize on
      a 2.5.7-pre1 system.  Please merge.
      d00cdf62
  14. 27 Feb, 2002 1 commit
    • David Brownell's avatar
      misc hcd cleanup · d4f03d86
      David Brownell authored
        
      This is minor cleanup; pulls #includes out of files
      that aren't intended to compile by themselves.
      
      ehci bandwidth recording
        
      Here's a minor update to the EHCI interrupt scheduler,
      recording the bandwidth used by an URB for usbfs.
      d4f03d86
  15. 09 Feb, 2002 1 commit
  16. 05 Feb, 2002 1 commit
    • Linus Torvalds's avatar
      v2.5.1.5 -> v2.5.1.6 · a914dd8b
      Linus Torvalds authored
      - Davide Libenzi: nicer timeslices for scheduler
      - Arnaldo: wd7000 scsi driver cleanups and bio update
      - Greg KH: USB update (including initial 2.0 support)
      - me: strict typechecking on "kdev_t"
      a914dd8b