1. 04 Feb, 2003 3 commits
    • Matthew Dharm's avatar
      [PATCH] usb-storage: move to SCSI hotplugging · 82469dfd
      Matthew Dharm authored
      The attached patch is my first implementation of SCSI hotplugging.
      
      It's only been tested that it compiles, as I can't get the current
      linux-2.5 tree from linuxusb to boot.  It dies _very_ early.  Greg, I'm not
      sure if you'll want to apply this.  Linus seemed to want this very much,
      and it is 2.5.x... I say go for it, but I can understand if you have
      reservations.
      
      I would definately like to see this tested by anyone who can get a kernel
      to boot.
      
      This patch is quite large.  Lots of things had to be changed.  Among them:
      
      (o) The proc interface now uses the host number to look up the SCSI host
          structure, and then finds the usb-storage structure from that.
      (o) The SCSI interface has been changed.  The code flow is now much
          clearer, as more work is done from the USB probe/detach functions than
          from auxillary functions.
      (o) Names have been changed for newer conventions
      (o) GUIDs have been removed
      (o) The linked-list of devices has been removed, and it's associated
          semaphore
      (o) All code dealing with re-attaching a device to it's old association has
          been removed
      (o) Some spaces changed to tabs
      (o) usb-storage now takes one directory under /proc/scsi instead of
          one per virtual-HBA
      (o) All control threads now have the same name.  This could be changed back
          to the old behavior, if enough people want it.
      
      Known problems:
      (o) Testing, testing, testing
      (o) More dead code needs to be cut
      (o) It's a unclear how a LLD is supposed to cut off the flow of
          commands, so that the unregister() call always succeeds.  SCSI folks
          need to work on this.
      (o) Probing needs to be broken down into smaller functions, probably.
      82469dfd
    • Greg Kroah-Hartman's avatar
      [PATCH] USB: fix to get usb-storage code to work again. · 6a4f58ed
      Greg Kroah-Hartman authored
      Thanks to Matt Dharm and David Brownell for tracking this bug down.
      6a4f58ed
    • Greg Kroah-Hartman's avatar
  2. 01 Feb, 2003 2 commits
    • Duncan Sands's avatar
      [PATCH] USB speedtouch: add a new speedtouch encoding function · 18855eaf
      Duncan Sands authored
        speedtouch: add a new encoding function, atmsar_encode.  Calling it amounts to doing
        atmsar_encode_aal5 followed by atmsar_encode_rawcell in one fell swoop.  It eliminates
        the need for intermediate buffers and reduces memory movement.  The following patches
        use it to simplify the send logic (and get rid of those annoying little oopsen).
      18855eaf
    • 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
  3. 29 Jan, 2003 2 commits
  4. 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
  5. 21 Jan, 2003 8 commits
  6. 17 Jan, 2003 4 commits
  7. 16 Jan, 2003 18 commits