lkml.org 
[lkml]   [2018]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 092/108] HID: quirks: Fix keyboard + touchpad on Toshiba Click Mini not working
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Hans de Goede <hdegoede@redhat.com>

    commit edfc3722cfef4217c7fe92b272cbe0288ba1ff57 upstream.

    The Toshiba Click Mini uses an i2c attached keyboard/touchpad combo
    (single i2c_hid device for both) which has a vid:pid of 04F3:0401,
    which is also used by a bunch of Elan touchpads which are handled by the
    drivers/input/mouse/elan_i2c driver, but that driver deals with pure
    touchpads and does not work for a combo device such as the one on the
    Toshiba Click Mini.

    The combo on the Mini has an ACPI id of ELAN0800, which is not claimed
    by the elan_i2c driver, so check for that and if it is found do not ignore
    the device. This fixes the keyboard/touchpad combo on the Mini not working
    (although with the touchpad in mouse emulation mode).

    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/hid/hid-core.c | 12 +++++++++++-
    1 file changed, 11 insertions(+), 1 deletion(-)

    --- a/drivers/hid/hid-core.c
    +++ b/drivers/hid/hid-core.c
    @@ -2308,7 +2308,6 @@ static const struct hid_device_id hid_ig
    { HID_USB_DEVICE(USB_VENDOR_ID_DREAM_CHEEKY, 0x0004) },
    { HID_USB_DEVICE(USB_VENDOR_ID_DREAM_CHEEKY, 0x000a) },
    { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, 0x0400) },
    - { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, 0x0401) },
    { HID_USB_DEVICE(USB_VENDOR_ID_ESSENTIAL_REALITY, USB_DEVICE_ID_ESSENTIAL_REALITY_P5) },
    { HID_USB_DEVICE(USB_VENDOR_ID_ETT, USB_DEVICE_ID_TC5UH) },
    { HID_USB_DEVICE(USB_VENDOR_ID_ETT, USB_DEVICE_ID_TC4UM) },
    @@ -2578,6 +2577,17 @@ bool hid_ignore(struct hid_device *hdev)
    strncmp(hdev->name, "www.masterkit.ru MA901", 22) == 0)
    return true;
    break;
    + case USB_VENDOR_ID_ELAN:
    + /*
    + * Many Elan devices have a product id of 0x0401 and are handled
    + * by the elan_i2c input driver. But the ACPI HID ELAN0800 dev
    + * is not (and cannot be) handled by that driver ->
    + * Ignore all 0x0401 devs except for the ELAN0800 dev.
    + */
    + if (hdev->product == 0x0401 &&
    + strncmp(hdev->name, "ELAN0800", 8) != 0)
    + return true;
    + break;
    }

    if (hdev->type == HID_TYPE_USBMOUSE &&

    \
     
     \ /
      Last update: 2018-02-15 16:26    [W:5.074 / U:0.348 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site