1. 02 2月, 2012 1 次提交
  2. 08 1月, 2012 1 次提交
  3. 05 1月, 2012 1 次提交
  4. 15 12月, 2011 2 次提交
  5. 06 12月, 2011 1 次提交
  6. 30 11月, 2011 1 次提交
  7. 23 11月, 2011 4 次提交
  8. 20 11月, 2011 1 次提交
  9. 16 11月, 2011 1 次提交
  10. 14 11月, 2011 1 次提交
  11. 29 10月, 2011 1 次提交
  12. 28 10月, 2011 1 次提交
  13. 21 10月, 2011 1 次提交
  14. 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
  15. 04 10月, 2011 1 次提交
  16. 03 10月, 2011 1 次提交
  17. 26 9月, 2011 1 次提交
  18. 22 9月, 2011 1 次提交
  19. 20 9月, 2011 1 次提交
  20. 15 9月, 2011 1 次提交
    • N
      HID: Add full support for Logitech Unifying receivers · 534a7b8e
      Nestor Lopez Casado 提交于
      With this driver, all the devices paired to a single Unifying
      receiver are exposed to user processes in separated /input/dev
      nodes.
      
      Keyboards with different layouts can be treated differently,
      Multiplayer games on single PC (like home theater PC) can
      differentiate input coming from different kbds paired to the
      same receiver.
      
      Up to now, when Logitech Unifying receivers are connected to a
      Linux based system, a single keyboard and a single mouse are
      presented to the HID Layer, even if the Unifying receiver can
      pair up to six compatible devices. The Unifying receiver by default
      multiplexes all incoming events (from multiple keyboards/mice)
      into these two.
      Signed-off-by: NNestor Lopez Casado <nlopezcasad@logitech.com>
      Signed-off-by: NBenjamin Tissoires <benjamin.tissoires@gmail.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      534a7b8e
  21. 24 8月, 2011 1 次提交
  22. 16 8月, 2011 2 次提交
  23. 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
  24. 02 8月, 2011 1 次提交
  25. 22 7月, 2011 1 次提交
  26. 21 7月, 2011 1 次提交
  27. 11 7月, 2011 2 次提交
  28. 27 6月, 2011 1 次提交
  29. 24 6月, 2011 1 次提交
  30. 14 6月, 2011 1 次提交
  31. 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
  32. 07 6月, 2011 1 次提交