1. 17 10月, 2011 1 次提交
    • T
      HID: support primax keyboards violating USB HID spec · f6a04605
      Terry Lambert 提交于
      Primax keyboards with the issue this driver addresses report modifier
      keys as in band key events instead of as out of band modifier bits,
      resulting in the modifier keys generating key up events immediately
      before the keys they are intended to modify.  This driver rewrites
      the raw report data from such keyboards into USB HID 1.11 compliant
      report data.  It only matches the USB vendor and product IDs for the
      keyboard it has been tested on. Since there are several keyboards,
      notably a number of laptops and folding USB keyboards known to have
      similar unresolved problem reports, the list is expected to grow.
      Signed-off-by: NTerry Lambert <tlambert@chromium.org>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      f6a04605
  2. 04 10月, 2011 1 次提交
  3. 03 10月, 2011 1 次提交
  4. 24 8月, 2011 1 次提交
  5. 16 8月, 2011 1 次提交
  6. 10 8月, 2011 3 次提交
    • J
      HID: add MacBookAir4,2 to hid_have_special_driver[] · f6f554f0
      Jiri Kosina 提交于
      Otherwise the generic driver wouldn't unbind from it and wouldn't
      let hid-apple to automatically take over.
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      f6f554f0
    • J
      HID: propagate return value correctly in hid_input_report() · 45dc1ac7
      Jiri Kosina 提交于
      Fix a return value propagation that was omitted in David Herrmann's
      locking fix around hid_input_report().
      Reported-by: NDavid Herrmann <dh.herrmann@googlemail.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      45dc1ac7
    • D
      HID: Fix race condition between driver core and ll-driver · 4ea54542
      David Herrmann 提交于
      HID low level drivers register new devices with the HID core which then
      adds the devices to the HID bus. The HID bus normally immediately probes
      an appropriate driver which then handles HID input for this device.
      The ll driver now uses the hid_input_report() function to report input
      events for a specific device. However, if the HID bus unloads the driver
      at the same time (for instance via a call to
       /sys/bus/hid/devices/<dev>/unbind) then the hdev->driver pointer may be
      used by hid_input_report() and hid_device_remove() at the same time
      which may cause hdev->driver to point to invalid memory.
      
      This fix adds a semaphore to every hid device which protects
      hdev->driver from asynchronous access. This semaphore is locked during
      driver *_probe and *_remove and also inside hid_input_report(). The
      *_probe and *_remove functions may sleep so the semaphore is good here,
      however, hid_input_report() is in atomic context and hence only uses
      down_trylock(). If it cannot acquire the lock it simply drops the input
      package.
      
      The low-level drivers report input events synchronously so
      hid_input_report() should never be entered twice at the same time on the
      same device. Hence, the lock should always be available. But if the
      driver is currently probed/removed then the lock is not available and
      dropping the package should be safe because this is what would have
      happened if the package arrived some milliseconds earlier/later.
      
      This also fixes another race condition while probing drivers:
      First the *_probe function of the driver is called and only if that
      succeeds, the related input device of hidinput is registered. If the low
      level driver reports input events after the *_probe function returned
      but before the input device is registered, then a NULL pointer
      dereference will occur. (Equivalently on driver remove function).
      This is not possible anymore, since the semaphore lock drops all
      incoming packages until the driver/device is fully initialized.
      Signed-off-by: NDavid Herrmann <dh.herrmann@googlemail.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      4ea54542
  7. 22 7月, 2011 1 次提交
  8. 21 7月, 2011 1 次提交
  9. 11 7月, 2011 2 次提交
  10. 27 6月, 2011 1 次提交
  11. 24 6月, 2011 1 次提交
  12. 14 6月, 2011 1 次提交
  13. 08 6月, 2011 1 次提交
    • S
      HID: Add driver to fix Speedlink VAD Cezanne support · 74bc6953
      Stefan Kriwanek 提交于
      Speedlink VAD Cezanne have a hardware bug that makes the cursor "jump" from one
      place to another every now and then. The issue are relative motion events
      erroneously reported by the device, each having a distance value of +256. This
      256 can in fact never occur due to real motion, therefore those events can
      safely be ignored.  The driver also drops useless EV_REL events with a value of
      0, that the device sends every time it sends an "real" EV_REL or EV_KEY event.
      Signed-off-by: NStefan Kriwanek <mail@stefankriwanek.de>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      74bc6953
  14. 07 6月, 2011 2 次提交
    • A
      HID: hid-multitouch: add support for Chunghwa multi-touch panel · 942fd422
      Austin Zhang 提交于
      Added Chunghwa hid multitouch panel support into hid-multitouch.
      Signed-off-by: NAustin Zhang <zhang.austin@gmail.com>
      Reviewed-by: NBenjamin Tissoires <benjamin.tissoires@enac.fr>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      942fd422
    • T
      HID: yurex: recognize GeneralKeys wireless presenter as generic HID · 6dc1418e
      Tomoki Sekiyama 提交于
      Unfortunately, the device seems to have the same Vendor ID and Product ID
      as YUREX leg-shakes sensors, and the commit 6bc235a2 ("USB: add driver
      for Meywa-Denki & Kayac YUREX") added the ID to hid_ignore_list.
      
      I believe that we can distinguish YUREX and the Wireless Presenter by
      device type.  The patch below makes the driver ignore only YUREX
      (bInterfaceProtocol==0), and recognize Wireless Presenter
      (bInterfaceProtocol is keyboard or mouse) as generic HID.  (I don't have
      the Wireless Presenter, so not yet ested.)
      
      ** YUREX lsusb information:
      Bus 002 Device 007: ID 0c45:1010 Microdia
      Device Descriptor:
         bLength                18
         bDescriptorType         1
         bcdUSB               1.10
         bDeviceClass            0 (Defined at Interface level)
         bDeviceSubClass         0
         bDeviceProtocol         0
         bMaxPacketSize0         8
         idVendor           0x0c45 Microdia
         idProduct          0x1010
         bcdDevice            0.03
         iManufacturer           1 JESS
         iProduct                2 YUREX
         iSerial                 3 10000269
         bNumConfigurations      1
         Configuration Descriptor:
           bLength                 9
           bDescriptorType         2
           wTotalLength           34
           bNumInterfaces          1
           bConfigurationValue     1
           iConfiguration          0
           bmAttributes         0xa0
             (Bus Powered)
             Remote Wakeup
           MaxPower              100mA
           Interface Descriptor:
             bLength                 9
             bDescriptorType         4
             bInterfaceNumber        0
             bAlternateSetting       0
             bNumEndpoints           1
             bInterfaceClass         3 Human Interface Device
             bInterfaceSubClass      1 Boot Interface Subclass
             bInterfaceProtocol      0 None
             iInterface              0
               HID Device Descriptor:
                 bLength                 9
                 bDescriptorType        33
                 bcdHID               1.10
                 bCountryCode            0 Not supported
                 bNumDescriptors         1
                 bDescriptorType        34 Report
                 wDescriptorLength      31
                Report Descriptors:
                  ** UNAVAILABLE **
             Endpoint Descriptor:
               bLength                 7
               bDescriptorType         5
               bEndpointAddress     0x81  EP 1 IN
               bmAttributes            3
                 Transfer Type            Interrupt
                 Synch Type               None
                 Usage Type               Data
               wMaxPacketSize     0x0008  1x 8 bytes
               bInterval              10
      Device Status:     0x0002
         (Bus Powered)
         Remote Wakeup Enabled
      
      Addresses https://bugzilla.kernel.org/show_bug.cgi?id=26922Signed-off-by: NTomoki Sekiyama <tomoki.sekiyama@gmail.com>
      Cc: Greg KH <gregkh@suse.de>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Maciej Rutecki <maciej.rutecki@gmail.com>
      Reported-by: NThomas B?chler <thomas@archlinux.org>
      Tested-by: NThomas B?chler <thomas@archlinux.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      6dc1418e
  15. 20 5月, 2011 6 次提交
  16. 19 5月, 2011 1 次提交
  17. 18 5月, 2011 1 次提交
  18. 09 5月, 2011 1 次提交
  19. 04 5月, 2011 1 次提交
  20. 03 5月, 2011 1 次提交
    • P
      HID: add support for Logitech G27 wheel · fdc6807f
      Peter Gundermann 提交于
      Gere's a small patch to add support for the Logitech G27 wheel, since
      the prior patch only added FF support for the Driving Force Pro and G25.
      The patch contains the changes from the G25 and DFP, too.
      
      I tested the changes with wine/LFS and got full support for all axes and
      buttons.
      
      Signed-off: Peter Gundermann <slim-one@users.sourceforge.net>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      fdc6807f
  21. 28 4月, 2011 1 次提交
  22. 22 4月, 2011 1 次提交
  23. 31 3月, 2011 1 次提交
  24. 24 3月, 2011 1 次提交
  25. 21 3月, 2011 1 次提交
    • J
      HID: add support for Skycable 0x3f07 wireless presenter · d586dca0
      Jiri Kosina 提交于
      This device contains the very same bug in report descriptor as the
      Ortek ones do (i.e. LogicalMinimum == 1, which is wrong for the key
      array).
      
      As we have more reports for the Ortek devices, we are keeping the driver
      name for now. Apparently there is a chip producer which sells chip with
      this buggy descriptor to multiple vendors. Thus if such reports start
      to come at highger frequency, we'll either have to rename the driver
      accordingly, or come up with more generic workaround.
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      d586dca0
  26. 17 3月, 2011 2 次提交
  27. 13 3月, 2011 2 次提交
  28. 17 2月, 2011 2 次提交