09 Jan, 2012

1 commit


08 Jan, 2012

1 commit


05 Jan, 2012

2 commits


15 Dec, 2011

2 commits

  • This patch modifies hid-multitouch driver for supporting PixArt optical touch
    screen. Because of the device does not have to set initial report, we apply
    "HID_QUIRK_NO_INIT_REPORTS" quirk and add the device into hid_blacklist[]

    Signed-off-by: Aaron Tian
    Signed-off-by: Jiri Kosina

    Aaron Tian
     
  • Most of the parsing errors (typically resulting in device not being claimed
    by HID subsystem at all) are reported only in debugging mode, which makes
    root-causing problems with buggy devices unnecessarily more difficult.

    Convert reporting of important HID report descriptor parsing errors to
    be reported through hid_err() / hid_warn() instead of dbg_hid().

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

06 Dec, 2011

1 commit


30 Nov, 2011

1 commit


23 Nov, 2011

4 commits


20 Nov, 2011

1 commit


16 Nov, 2011

1 commit


14 Nov, 2011

1 commit


29 Oct, 2011

1 commit


28 Oct, 2011

1 commit

  • This patch adds keyboard support for Macbook Pro 8 models which has
    WELLSPRING5A model name and 0x0252, 0x0253 and 0x0254 USB IDs. Trackpad
    support for those models are added to bcm5974 in
    c331eb580a0a7906c0cdb8dbae3cfe99e3c0e555 ("Input: bcm5974 - Add
    support for newer MacBookPro8,2).

    Signed-off-by: Gökçen Eraslan
    Acked-by: Henrik Rydberg
    Signed-off-by: Jiri Kosina

    Gökçen Eraslan
     

25 Oct, 2011

2 commits


21 Oct, 2011

1 commit

  • Support the following models: Super Joy Box 3 Pro, Super Dual Box Pro
    and Super Joy Box 5 Pro. These models have support for pressure
    sensitive buttons and they can force the controller to either digital
    or analog mode, both of which are not supported yet.

    Signed-off-by: Sean Young
    Signed-off-by: Jiri Kosina

    Sean Young
     

17 Oct, 2011

1 commit

  • 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: Terry Lambert
    Signed-off-by: Jiri Kosina

    Terry Lambert
     

04 Oct, 2011

1 commit


03 Oct, 2011

1 commit


26 Sep, 2011

1 commit


22 Sep, 2011

1 commit


20 Sep, 2011

1 commit

  • The IDEACOM 6650 multitouch chip, present in various all-in-one computers,
    uses the serial version of the HID multitouch protocol. No existing class
    supports this.

    In principle, the new MT_CLS_SERIAL should work for other
    serial panels as well, perhaps including some eGalax panels.

    Signed-off-by: Stephane Chatty
    Signed-off-by: Jiri Kosina

    Stephane Chatty
     

15 Sep, 2011

1 commit

  • 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: Nestor Lopez Casado
    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Nestor Lopez Casado
     

24 Aug, 2011

1 commit


16 Aug, 2011

2 commits


10 Aug, 2011

3 commits

  • Otherwise the generic driver wouldn't unbind from it and wouldn't
    let hid-apple to automatically take over.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Fix a return value propagation that was omitted in David Herrmann's
    locking fix around hid_input_report().

    Reported-by: David Herrmann
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • 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//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: David Herrmann
    Signed-off-by: Jiri Kosina

    David Herrmann
     

02 Aug, 2011

1 commit


23 Jul, 2011

1 commit


22 Jul, 2011

1 commit


21 Jul, 2011

1 commit


11 Jul, 2011

2 commits


27 Jun, 2011

1 commit

  • Add force feedback support for Holtek On Line Grip based HID devices.

    The protocol is more complex than that of most other rumblepads, but the
    device still needs to be handled as a memoryless one.

    Tested by Cleber de Mattos Casali with a 1241:5015 "Clone Joypad Super
    Power Fire" gamepad, with help from Hendrik Iben .

    Signed-off-by: Anssi Hannula
    Tested-by: Cleber de Mattos Casali
    Signed-off-by: Jiri Kosina

    Anssi Hannula