1. 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
  2. 29 Jan, 2003 2 commits
  3. 28 Jan, 2003 3 commits
    • David Brownell's avatar
      [PATCH] USB: usbcore misc cleanup (notably for non-dma hcds) · 31fd2ea0
      David Brownell authored
      The support for non-dma HCDs is likely the most interesting bit here.
      
          - makes dma calls behave sensibly when used with host controllers
            that don't use dma (including sl811).  usb_buffer_map() is a nop
            while scatterlist dma mappings fail (as they must).
      
          - make usb_sg_init() behave sensibly when used with non-dma hcs.
            the urbs are initted with transfer_buffer, not transfer_dma.
            this is the higher level analogue to usb_buffer_map(), so it
            needs to succeed unless there's a Real Error (tm).
      
          - moves two compatibility inlines from ehci.h into hcd.h so
            it'll be more practical to have the other hcds work in other
            environments (notably lk 2.4) too
      
          - remove URB_TIMEOUT_KILLED flag ... no device driver tests it;
            hcds don't really (uhci sets it, never reads it; sl811 doesn't
            enable the path that might set it), and it's not well defined.
            if any hcd needs such state, keep it in hc-private storage.
      
          - in usb_sg_wait(), use yield() instead of schedule() to let
            other activities free resources needed to continue.  (This
            was noted recently by Oliver.)
      31fd2ea0
    • David Brownell's avatar
      [PATCH] USB ohci-hcd, don't force SLAB_ATOMIC allocations · fb4b62ad
      David Brownell authored
      This is a minor cleanup to let per-request memory allocations block,
      when the caller allows (it provided the bitmask).  The driver used
      to work that way until something like 2.4.3; an update (a few months
      back) to how the "dma_addr_t" hashes to a "struct ohci_td *" lets us
      simplify things again.  Another benfit:  it blocks irqs for less time
      on the submit path.  (The ehci driver already acts this way.)
      fb4b62ad
    • Petko Manolov's avatar
      [PATCH] USB: pegasus & mii cset · 1fda844a
      Petko Manolov authored
        Some ethernet drivers other than those in .../drivers/net need generic
        MII code too and this cset shows how we do it for .../drivers/usb/net;
        For now only pegasus.c is using this feature, but as soon as we find
        more MII compliant controllers we'll put them in Makefile.mii too.
        Note: drivers which use the generic mii routines should bracket the
        code with #ifdef CONFIG_MII #endif since CONFIG_MII may not be present.
        See pegasus.c for more details.
      1fda844a
  4. 21 Jan, 2003 8 commits
  5. 17 Jan, 2003 4 commits
  6. 16 Jan, 2003 22 commits