lkml.org 
[lkml]   [2021]   [Mar]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.10 14/47] HID: i2c-hid: Add I2C_HID_QUIRK_NO_IRQ_AFTER_RESET for ITE8568 EC on Voyo Winpad A15
    Date
    From: Hans de Goede <hdegoede@redhat.com>

    [ Upstream commit fc6a31b00739356809dd566e16f2c4325a63285d ]

    The ITE8568 EC on the Voyo Winpad A15 presents itself as an I2C-HID
    attached keyboard and mouse (which seems to never send any events).

    This needs the I2C_HID_QUIRK_NO_IRQ_AFTER_RESET quirk, otherwise we get
    the following errors:

    [ 3688.770850] i2c_hid i2c-ITE8568:00: failed to reset device.
    [ 3694.915865] i2c_hid i2c-ITE8568:00: failed to reset device.
    [ 3701.059717] i2c_hid i2c-ITE8568:00: failed to reset device.
    [ 3707.205944] i2c_hid i2c-ITE8568:00: failed to reset device.
    [ 3708.227940] i2c_hid i2c-ITE8568:00: can't add hid device: -61
    [ 3708.236518] i2c_hid: probe of i2c-ITE8568:00 failed with error -61

    Which leads to a significant boot delay.

    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/hid/hid-ids.h | 2 ++
    drivers/hid/i2c-hid/i2c-hid-core.c | 2 ++
    2 files changed, 4 insertions(+)

    diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
    index 94180c63571e..bfe443ce50a7 100644
    --- a/drivers/hid/hid-ids.h
    +++ b/drivers/hid/hid-ids.h
    @@ -638,6 +638,8 @@
    #define USB_DEVICE_ID_INNEX_GENESIS_ATARI 0x4745

    #define USB_VENDOR_ID_ITE 0x048d
    +#define I2C_VENDOR_ID_ITE 0x103c
    +#define I2C_DEVICE_ID_ITE_VOYO_WINPAD_A15 0x184f
    #define USB_DEVICE_ID_ITE_LENOVO_YOGA 0x8386
    #define USB_DEVICE_ID_ITE_LENOVO_YOGA2 0x8350
    #define I2C_DEVICE_ID_ITE_LENOVO_LEGION_Y720 0x837a
    diff --git a/drivers/hid/i2c-hid/i2c-hid-core.c b/drivers/hid/i2c-hid/i2c-hid-core.c
    index aeff1ffb0c8b..cb7758d59014 100644
    --- a/drivers/hid/i2c-hid/i2c-hid-core.c
    +++ b/drivers/hid/i2c-hid/i2c-hid-core.c
    @@ -171,6 +171,8 @@ static const struct i2c_hid_quirks {
    I2C_HID_QUIRK_SET_PWR_WAKEUP_DEV },
    { I2C_VENDOR_ID_HANTICK, I2C_PRODUCT_ID_HANTICK_5288,
    I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
    + { I2C_VENDOR_ID_ITE, I2C_DEVICE_ID_ITE_VOYO_WINPAD_A15,
    + I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
    { I2C_VENDOR_ID_RAYDIUM, I2C_PRODUCT_ID_RAYDIUM_3118,
    I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
    { USB_VENDOR_ID_ELAN, HID_ANY_ID,
    --
    2.30.1
    \
     
     \ /
      Last update: 2021-03-02 17:10    [W:4.612 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site