1. 13 May, 2002 3 commits
    • Johannes Erdfelt's avatar
      [PATCH] USB device reference counting fix for uhci.c and usb core · 25f04c13
      Johannes Erdfelt authored
      Earlier in the 2.5 development cycle a patch was applied that changed
      the reference counting behaviour for USB devices.
      
      There are a couple of problems with the change:
      - It made the USB code more complicated as a whole with the introduction
        of an additional cleanup path for devices. Using the traditional method
        of reference counting, cleanup is handled implictly
      - It reduces functionality by requiring a callback for all references to
        the device, but doesn't provide a method of providing callbacks for
        references. It relies on the hardcoded device driver ->disconnect and
        HCD ->deallocate method for callbacks
      
      The traditional method of using reference counting supports as many
      reference users as needed, without complicating it with mandatory
      callbacks to cleanup references.
      
      The change in 2.5 also only helps catch one subset of programming
      problem in device drivers, the case where it decrements too many times.
      That is of dubious debugging value.
      
      So, this patch reverts the change and makes the reference counting
      behave like it does in the rest of the kernel as well as how the USB
      code does in 2.4.
      
      This patch doesn't remove all of the superfluous code. Some drivers,
      like usb-ohci, ohci-hcd and ehci-hcd have some code that is no longer
      needed. I wanted to spend some more time with those drivers since the
      changes weren't as trivial as uhci.c and usb-uhci.c.
      
      I've tested with uhci and usb-ohci with no adverse effects.
      25f04c13
    • Greg Kroah-Hartman's avatar
      [PATCH] usb_submit_urb fix for broken usb devices · 88bcb34e
      Greg Kroah-Hartman authored
      added check for wMaxPacketSize of 0, which is a messed up device, but
      seems to be legal according to the USB spec.
      
      Thanks to Johannes for figuring out the problem, and providing an
      original version of this patch.
      88bcb34e
    • Manfred Spraul's avatar
      [PATCH] usb-storage locking fixes · d8a71dcf
      Manfred Spraul authored
      I found several SMP and UP locking errors in usb-storage, attached is a
      patch:
      
      Changes:
      * srb->result is a bitfield, several << 1 were missing.
      * add scsi_lock calls around midlayer calls, release the lock before
        calling usb functions that might sleep.
      * replace the queue semaphore with a queue spinlocks, queuecommand is
        called from bh context.
      d8a71dcf
  2. 11 May, 2002 7 commits
    • Greg Kroah-Hartman's avatar
      USB storage · ee73eb81
      Greg Kroah-Hartman authored
      added Sandisk SDDR-55 driver from Simon Munton
      ee73eb81
    • Greg Kroah-Hartman's avatar
      USB storage drivers · 0ac21092
      Greg Kroah-Hartman authored
      fix for scsi memory address changes.  Now the datafab and jumpshot drivers build properly.
      0ac21092
    • Greg Kroah-Hartman's avatar
      USB storage · 0d4a3ac6
      Greg Kroah-Hartman authored
      fixed typo in variable name.
      0d4a3ac6
    • Greg Kroah-Hartman's avatar
      USB storage · 58a5ae6a
      Greg Kroah-Hartman authored
      sync up with both the -dj and cvs version of the usb-storage code.
      58a5ae6a
    • Johannes Erdfelt's avatar
      [PATCH] uhci.c FSBR timeout · ea3aba35
      Johannes Erdfelt authored
      There was a discussion a long time ago about how safe the bit operations
      were as well as recently.
      
      set_bit/clear_bit are not safe on x86 UP, nor are they safe on other
      architectures. It's also unclear from the UHCI spec if the HC's are safe
      with respect to atomic updates to the status field.
      
      This patch ditches all of the uses of set_bit and clear_bit and changes
      the algorithm that depended on it.
      
      The FSBR timeout algorithm would reenable FSBR for transfers when they
      started making progress again. So instead of trying for this best case,
      we convert the transfer over to depth first from the standard breadth
      first. To make sure the transfer doesn't hog all of the bandwidth, every
      5th TD is left in breadth first mode. This will ensure other transfers
      get some bandwidth.
      
      It's not perfect, but I think it's a good compromise.
      
      Note: td->info is read only by the HC, so we can touch it whenever we
      want.
      ea3aba35
    • David Brownell's avatar
      [PATCH] -- hub/tt error recovery · c37126dd
      David Brownell authored
      This patch adds missing functionality to the transaction translator
      support for USB 2.0 hubs:
      
          - moves the 'struct usb_tt' definition to "hub.h" from <linux/usb.h>
          - adds state to it as neeed for some control/bulk error recovery
          - teaches the hub driver how to use that state (via keventd)
          - adds a call letting HCDs trigger that recovery
      c37126dd
    • David Brownell's avatar
      [PATCH] -- ehci misc FIXMEs · 76ecfb4c
      David Brownell authored
      This addresses FIXME comments in the EHCI code, notably:
      
          - telling the hub driver to clear up TT error state
            (relies on the hub error recovery patch I just sent)
          - using 64bit PCI DMA where appropriate
          - handling BIOS handoff as neeed
      76ecfb4c
  3. 10 May, 2002 11 commits
  4. 09 May, 2002 9 commits
  5. 10 May, 2002 9 commits
  6. 09 May, 2002 1 commit