1. 30 Mar, 2004 4 commits
  2. 26 Mar, 2004 20 commits
  3. 25 Mar, 2004 16 commits
    • Arjan van de Ven's avatar
      [PATCH] USB: usb hiddev stack usage patch · 0e80d432
      Arjan van de Ven authored
      Patch below fixes some obscenely high stack uage;
      struct hiddev_usage_ref_multi is well over 4Kb in size so really doesn't
      belong on the stack.
      0e80d432
    • Oliver Neukum's avatar
      [PATCH] USB: fix error paths in kobil_sct · 6f4388bc
      Oliver Neukum authored
      some error codes are incorrect and there's an URB leak in an error path.
      6f4388bc
    • Alan Stern's avatar
      [PATCH] USB: UHCI: Get rid of excessive spinlocks · 33d61f24
      Alan Stern authored
      This patch introduces a major simplification into the UHCI driver by
      replacing its multiple spinlocks with a single one.  The protected area of
      code is slightly larger and there's more possibilities for contention on
      an SMP system, but I think that shouldn't be a problem.  Stephen Hemminger
      has been kind enough to test this on his SMP computer and he hasn't
      encountered any difficulties.
      33d61f24
    • Alan Stern's avatar
      [PATCH] USB: UHCI: Improved handling of short control transfers · 2212df84
      Alan Stern authored
      This patch simplies the way the UHCI driver handles short control
      transfers.  When a transfer is short the HC will stop handling that
      endpoint, and it's necessary to get it going again so that the status
      stage of the control transfer can take place.  Currently the driver does
      this by allocating a new QH for the transfer and setting its element
      pointer to point at the final status TD.  The old QH is recycled.  But
      it's not necessary to go to all that trouble; the element pointer in the
      original QH can be updated directly.
      
      Normally the element pointer is supposed to be owned by the HC, and it's
      not safe to just change its value since the HC may overwrite it at any
      time.  But when a transfer is stopped because of a short packet, the
      current TD is marked inactive and the HC will not update the element
      pointer.  To write an unchanged pointer value back to memory would be a
      waste of PCI bus cycles.  Now the UHCI spec doesn't say explicitly that an
      HC _can't_ do this, but I've tested both Intel and VIA hardware and
      neither of them does.
      
      As a side effect of this change, some of the code for removing QHs can be
      eliminated.
      2212df84
    • Alan Stern's avatar
      [PATCH] USB: UHCI: Do short packet detection correctly · 6bfb2519
      Alan Stern authored
      This patch makes some simple changes to the way the UHCI driver does short
      packet detection.  The current implementation is incorrect in several
      ways:
      
      	The Short-Packet-Detect flag is set for OUT transfers, which
      	yields undefined behavior according to the UHCI spec.
      
      	It's not set for URBs with URB_SHORT_NOT_OK, which is just the
      	opposite of what we want!  Those are the ones where short packets
      	do matter.
      
      	It is set for the last packet in a transfer, which causes an
      	unnecessary pause in the data flow (except of course that the
      	pause _is_ necessary when URB_SHORT_NOT_OK is set).
      
      The patch also implements the URB_NO_INTERRUPT flag for bulk transfers,
      which can help improve system performance by reducing interrupt overhead.
      6bfb2519
    • Alan Stern's avatar
      [PATCH] USB: Don't trust raw descriptor length in devioc. · 59941877
      Alan Stern authored
      This is a very minor point, unlikely ever to come up.  But just in case...
      
      It's conceivable that a device might transmit different values for a
      configuration descriptor's wTotalLength the first time we ask for it (in
      order to get the length) and the second time (to get the entire
      descriptor).  Should that improbable event occur, the rawdescriptor buffer
      could be allocated using a size that's smaller than the length recorded in
      the rawdescriptor itself.  This patch protects devio.c against such a
      problem.
      
      If you feel this sequence of events is too unlikely to worry about, then
      don't bother to apply the patch.
      59941877
    • Oliver Neukum's avatar
      [PATCH] USB: race condition in open of w9968cf · af6f5064
      Oliver Neukum authored
      there's a race in how open handles multiple openers.
      You implement exclusive opening and wait for close
      in case of further openers. However if there are more than one
      waiter, only one of them must be allowed to proceed.
      af6f5064
    • Alan Stern's avatar
      [PATCH] USB: Unusual_devs.h update · c107b960
      Alan Stern authored
      On Thu, 18 Mar 2004, Urban Borstnik wrote:
      
      > The 2.6.4 and 2.6.3 (and possibly some earlier) kernels log the
      > following message when I plug in a Lexar CompactFlash Reader:
      >
      > usb-storage: This device (05dc,b002,0113 S 06 P 50) has unneeded
      > SubClass and Protocol entries in unusual_devs.h
      >    Please send a copy of this message to <linux-usb-devel@lists.sourceforge.net>
      >
      > Otherwise it has been working very well with the devepment kernels on at
      > least 4 machines ever since a trivial fix was introduced for this device
      > to unusual_devs.c over a year ago.
      >
      > Best regards,
      > Urban.
      
      Thank you for sending this in.  An update will appear soon.
      c107b960
    • Torrey Hoffman's avatar
      [PATCH] USB: fix race in ati_remote and small cleanup · befe2d08
      Torrey Hoffman authored
      On Thu, 2004-03-18 at 07:44, Oliver Neukum wrote:
      > Hi,
      >
      > you must use set_current_state() only after usb_submit_urb() with GFP_KERNEL
      > as second argument, because it may sleep to allocate memory and is woken up
      > resetting the state to TASK_RUNNING. In that case you had a busy polling loop.
      > Furthermore, always use wake_up unconditionally. It checkes anyway.
      
      Thanks for reviewing this code, I'm new to Linux driver development and
      more eyes on my work is a good thing.   I've actually been working on
      some more cleanups to the driver to fix the race between open and
      disconnect, and was just about to send it in...
      
      So, the attached patch against 2.6.5-rc1-mm1 includes a mutex to lock
      the open/disconnect paths, modelled after the usb-skeleton driver. It
      includes Oliver Neukum's fixes and other cleanups as well.
      befe2d08
    • Michael Still's avatar
      [PATCH] USB: kernel-doc comment tweak in vicam.c · df73571e
      Michael Still authored
      Correct kernel-doc comment with incorrect parameters documented
      df73571e
    • Alan Stern's avatar
      [PATCH] USB: Regularize unusual_devs entries for Genesys Logic · 3bad5571
      Alan Stern authored
      I saw that you just added another unusual_devs.h entry submitted by
      Henning Schild, for vendor ID 0x05e3.  It turns out this is our old friend
      Genesys Logic.
      
      A recent message from Brad Campbell included a Windows driver file by
      Genesys, and it included these lines:
      
      USB\VID_05E3&PID_0700.DeviceDesc="USB Card Reader"
      USB\VID_05E3&PID_0701.DeviceDesc="USB Optical Device"
      USB\VID_05E3&PID_0702.DeviceDesc="USB Mass Storage Device"
      
      Based on this information, we can clean up the 0x05e3 entries in
      unusual_devs.h.  This patch puts all three entries into a regularized
      form.
      3bad5571
    • Alan Stern's avatar
      [PATCH] USB: Unusual_devs update · 892a303c
      Alan Stern authored
      On Tue, 16 Mar 2004, John Katzmaier wrote:
      
      > Hi,
      >
      > Just wanted to let you know that when using my Panasonic PV-SD4090 digital
      > camera with kernel 2.6.3, I found this entry in my logs:
      >
      > Mar 16 21:43:27 rocket kernel: usb-storage: Vendor: Panasonic
      > Mar 16 21:43:27 rocket kernel: usb-storage: Product: LS-120 Camera
      > Mar 16 21:43:27 rocket kernel: usb-storage: This device (04da,0901,0109 S 00 P
      > 00) has an unneeded Protocol entry in unusual_devs.h
      > Mar 16 21:43:27 rocket kernel:    Please send a copy of this message to
      > <linux-usb-devel@lists.sourceforge.net>
      >
      > I thought it might be best to follow its instructions and so I did.
      >
      > Thanks.
      >
      > -John Katzmaier
      
      Thank you for sending this in.  An update will appear in a forthcoming
      kernel.
      
      Greg, here's the patch.
      892a303c
    • David Brownell's avatar
      [PATCH] USB: fix osdl bugid 2006 (timer init and fault paths) · 9b9f631e
      David Brownell authored
      Need to initialize timers a bit earlier to handle
      certain initialization faults.
      
      
      OSDL bug 2006
      
      Need to initialize some timers a bit earlier to clean up safely
      after very early init HCD failures.
      
      Those early init faults were needlessly mysterious since they
      didn't emit diagnostics except at HCD discretion.
      9b9f631e
    • David Brownell's avatar
      [PATCH] USB: fix osdl bugid 481 (USB boot messages) · ff256570
      David Brownell authored
      Some boot-time messages were obnoxiously long because
      they used "old-style" diagnostics.
      
      
      OSDL bugid 481
      
      Get rid of most remaining "old style" diagnostics from usbcore.
      Most messages use driver model style diagnostics.  Messages that
      don't have an associated device use the standard kernel printk
      wrappers and label themselves as from "usbcore".  (Except that
      there's no such wrapper for KERN_ERR.)
      
      This doesn't touch usbfs, "config.c" (Alan's patches do this), or
      usb_reset_device() (needs a more substantial overhaul).  Or any
      other USB drivers (notably HID).
      ff256570
    • Alan Stern's avatar
      [PATCH] USB: Code improvements for core/config.c · c3d3c472
      Alan Stern authored
      This patch makes some improvements to the code in config.c.
      
      	Create a subroutine to handle the repeated task of skipping
      	forward to the next descriptor of a certain type.
      
      	Remove some fairly useless debugging messages (they could
      	never even have been enabled in the pre-as221 code).
      
      	Verify that endpoint descriptors don't have an address
      	equal to 0 (as well as not being above 15).
      
      	Rename some local variables so they are a little more
      	consistent and meaningful.
      
      Despite all the changes, the functionality should remain the same.
      Please apply.
      c3d3c472
    • Alan Stern's avatar
      [PATCH] USB: Improve core/config.c error messages · e51bf644
      Alan Stern authored
      This patch improves error reporting in the configuration parsing routines.
      It also adds a few extra minor tweaks.
      
      	#include linux/config.h and make the usual DEBUG settings
      	available.
      
      	Use the driver-model dev_xxx() macros for log output.
      
      	Be much more explicit about the nature of errors, including
      	configuration, interface, and altsetting numbers where
      	appropriate.
      
      	Log fatal problems as errors, non-fatal ones as warnings.
      
      	Remove a #define'd constant that is already set in linux/usb.h.
      
      	Fix some variables declared as pointer to char that really
      	should be pointers to unsigned char.
      
      	Replace a whole bunch of "out-of-memory" error messages with
      	a single message.
      
      	Wrap source lines that are longer than 80 columns (but not
      	log output lines!).
      
      	Clean up the logic for detecting errors when retrieving a
      	configuration descriptor.
      
      Apart from the log messages themselves, this introduces no functional
      changes.
      e51bf644