1. 21 Jun, 2006 6 commits
  2. 12 May, 2006 1 commit
  3. 14 Apr, 2006 3 commits
  4. 24 Mar, 2006 1 commit
  5. 20 Mar, 2006 3 commits
  6. 28 Feb, 2006 1 commit
  7. 13 Feb, 2006 1 commit
  8. 31 Jan, 2006 2 commits
  9. 14 Jan, 2006 1 commit
  10. 13 Jan, 2006 1 commit
  11. 04 Jan, 2006 2 commits
  12. 13 Dec, 2005 1 commit
  13. 17 Nov, 2005 1 commit
  14. 28 Oct, 2005 3 commits
    • Alan Stern's avatar
      [PATCH] hid-core: Add Clear-Halt on the Interrupt-in endpoint · 423e489d
      Alan Stern authored
      
      
      This patch (as577) adds a Clear-Halt call on the Interrupt-in endpoint
      during input device configuration.  Without it my HP USB keyboard doesn't
      work.
      
      Vojtech says it's worth trying, since it might help with some recalcitrant
      devices.  On the other hand, it might interfere with others.  I'm
      submitting it so that it can get tested by a range of users.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      423e489d
    • David Brownell's avatar
      [PATCH] usb_interface power state · db690874
      David Brownell authored
      
      
      This updates the handling of power state for USB interfaces.
      
        - Formalizes an existing invariant:  interface "power state" is a boolean:
          ON when I/O is allowed, and FREEZE otherwise.  It does so by defining
          some inlined helpers, then using them.
      
        - Adds a useful invariant:  the only interfaces marked active are those
          bound to non-suspended drivers.  Later patches build on this invariant.
      
        - Simplifies the interface driver API (and removes some error paths) by
          removing the requirement that they record power state changes during
          suspend and resume callbacks.  Now usbcore does that.
      
      A few drivers were simplified to address that last change.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
       drivers/usb/core/hub.c       |   33 +++++++++------------
       drivers/usb/core/message.c   |    1
       drivers/usb/core/usb.c       |   65 +++++++++++++++++++++++++++++++++----------
       drivers/usb/core/usb.h       |   18 +++++++++++
       drivers/usb/input/hid-core.c |    2 -
       drivers/usb/misc/usbtest.c   |   10 ------
       drivers/usb/net/pegasus.c    |    2 -
       drivers/usb/net/usbnet.c     |    2 -
       8 files changed, 85 insertions(+), 48 deletions(-)
      db690874
    • Dmitry Torokhov's avatar
      [PATCH] drivers/usb/input: convert to dynamic input_dev allocation · c5b7c7c3
      Dmitry Torokhov authored
      
      
      Input: convert drivers/iusb/input to dynamic input_dev allocation
      
      This is required for input_dev sysfs integration
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      c5b7c7c3
  15. 17 Oct, 2005 1 commit
    • Christian Krause's avatar
      [PATCH] USB: fix bug in handling of highspeed usb HID devices · 13b58ee5
      Christian Krause authored
      
      
      During the development of an USB device I found a bug in the handling of
      Highspeed HID devices in the kernel.
      
      What happened?
      
      Highspeed HID devices are correctly recognized and enumerated by the
      kernel. But even if usbhid kernel module is loaded, no HID reports are
      received by the kernel.
      
      The output of the hardware USB analyzer told me that the host doesn't
      even poll for interrupt IN transfers (even the "interrupt in" USB
      transfer are polled by the host).
      
      After some debugging in hid-core.c I've found the reason.
      
      In case of a highspeed device, the endpoint interval is re-calculated in
      driver/usb/input/hid-core.c:
      
      line 1669:
                   /* handle potential highspeed HID correctly */
                   interval = endpoint->bInterval;
                   if (dev->speed == USB_SPEED_HIGH)
                         interval = 1 << (interval - 1);
      
      Basically this calculation is correct (refer to USB 2.0 spec, 9.6.6).
      This new calculated value of "interval" is used as input for
      usb_fill_int_urb:
      
      line 1685:
      
                  usb_fill_int_urb(hid->urbin, dev, pipe, hid->inbuf, 0,
                         hid_irq_in, hid, interval);
      
      Unfortunately the same calculation as above is done a second time in
      usb_fill_int_urb in the file include/linux/usb.h:
      
      line 933:
              if (dev->speed == USB_SPEED_HIGH)
                      urb->interval = 1 << (interval - 1);
              else
                      urb->interval = interval;
      
      This means, that if the endpoint descriptor (of a high speed device)
      specifies e.g. bInterval = 7, the urb->interval gets the value:
      
      hid-core.c: interval = 1 << (7-1) = 0x40 = 64
      urb->interval = 1 << (interval -1) = 1 << (63) = integer overflow
      
      Because of this the value of urb->interval is sometimes negative and is
      rejected in core/urb.c:
      line 353:
                      /* too small? */
                      if (urb->interval <= 0)
                              return -EINVAL;
      
      The conclusion is, that the recalculaton of the interval (which is
      necessary for highspeed) should not be made twice, because this is
      simply wrong. ;-)
      
      Re-calculation in usb_fill_int_urb makes more sense, because it is the
      most general approach. So it would make sense to remove it from
      hid-core.c.
      
      Because in hid-core.c the interval variable is only used for calling
      usb_fill_int_urb, it is no problem to remove the highspeed
      re-calculation in this file.
      Signed-off-by: default avatarChristian Krause <chkr@plauener.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      13b58ee5
  16. 12 Sep, 2005 1 commit
  17. 08 Sep, 2005 2 commits
    • Alan Stern's avatar
      [PATCH] USB: URB_ASYNC_UNLINK flag removed from the kernel · b375a049
      Alan Stern authored
      
      
      29 July 2005, Cambridge, MA:
      
      This afternoon Alan Stern submitted a patch to remove the URB_ASYNC_UNLINK
      flag from the Linux kernel.  Mr. Stern explained, "This flag is a relic
      from an earlier, less-well-designed system.  For over a year it hasn't
      been used for anything other than printing warning messages."
      
      An anonymous spokesman for the Linux kernel development community
      commented, "This is exactly the sort of thing we see happening all the
      time.  As the kernel evolves, support for old techniques and old code can
      be jettisoned and replaced by newer, better approaches.  Proprietary
      operating systems do not have the freedom or flexibility to change so
      quickly."
      
      Mr. Stern, a staff member at Harvard University's Rowland Institute who
      works on Linux only as a hobby, noted that the patch (labelled as548) did
      not update two files, keyspan.c and option.c, in the USB drivers' "serial"
      subdirectory.  "Those files need more extensive changes," he remarked.
      "They examine the status field of several URBs at times when they're not
      supposed to.  That will need to be fixed before the URB_ASYNC_UNLINK flag
      is removed."
      
      Greg Kroah-Hartman, the kernel maintainer responsible for overseeing all
      of Linux's USB drivers, did not respond to our inquiries or return our
      calls.  His only comment was "Applied, thanks."
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b375a049
    • Andrew de Quincey's avatar
      [PATCH] USB: Prevent hid-core claiming Apple Bluetooth device on new G4 powerbooks · 22af8878
      Andrew de Quincey authored
      To recap: My new G4 powerbook has a bluetooth device that boots up in
      what apppears to be a compatability mode - it looks exactly like an HID
      keyboard/mouse device.
      
      A special command sequence is sent to switch it into full bluetooth
      mode. When this occurs the original HID device vanishes, and a new
      (bluetooth HID) USB device appears on the bus with a different product
      ID.
      
      The original thread is here:
      http://sourceforge.net/mailarchive/message.php?msg_id=12532263
      
      
      
      The attached patch adds the device to the hid-core quirks so that
      hid-core ignores it.
      Signed-off-by: default avatarAndrew de Quincey <adq_dvb@lidskialf.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      22af8878
  18. 05 Sep, 2005 1 commit
  19. 04 Sep, 2005 4 commits
  20. 12 Jul, 2005 1 commit
  21. 11 Jul, 2005 2 commits
  22. 23 Jun, 2005 1 commit