]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
HID: i2c-hid: add reset quirk for BLTP7853 touchpad
authorXu Rao <raoxu@uniontech.com>
Sat, 9 May 2026 08:21:32 +0000 (16:21 +0800)
committerJiri Kosina <jkosina@suse.com>
Tue, 12 May 2026 16:11:43 +0000 (18:11 +0200)
The BLTP7853 I2C HID touchpad may fail to probe after reboot or
reprobe because reset completion is not signalled to the host. The
driver then waits for the reset-complete interrupt until it times out
and the device probe fails:

  i2c_hid i2c-BLTP7853:00: failed to reset device.
  i2c_hid i2c-BLTP7853:00: can't add hid device: -61
  i2c_hid: probe of i2c-BLTP7853:00 failed with error -61

Add I2C_HID_QUIRK_NO_IRQ_AFTER_RESET for the device so i2c-hid does
not wait for a reset interrupt that may never arrive.

Signed-off-by: Xu Rao <raoxu@uniontech.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
drivers/hid/hid-ids.h
drivers/hid/i2c-hid/i2c-hid-core.c

index 8cfec7dced6645e2e7b94d5637cca03c3bee718c..4657d96fb0836f10cca60ca22767874516f41533 100644 (file)
 #define USB_VENDOR_ID_BIGBEN   0x146b
 #define USB_DEVICE_ID_BIGBEN_PS3OFMINIPAD      0x0902
 
+#define I2C_VENDOR_ID_BLTP             0x36b6
+#define I2C_PRODUCT_ID_BLTP7853                0xc001
+
 #define USB_VENDOR_ID_BTC              0x046e
 #define USB_DEVICE_ID_BTC_EMPREX_REMOTE        0x5578
 #define USB_DEVICE_ID_BTC_EMPREX_REMOTE_2      0x5577
index e0a302544cef4b032ee8251257fc49ee5b5abf77..3adb16366e93941118bf83d0fed3a98b75ed2524 100644 (file)
@@ -149,6 +149,8 @@ static const struct i2c_hid_quirks {
                 I2C_HID_QUIRK_BOGUS_IRQ },
        { I2C_VENDOR_ID_GOODIX, I2C_DEVICE_ID_GOODIX_0D42,
                 I2C_HID_QUIRK_DELAY_WAKEUP_AFTER_RESUME },
+       { I2C_VENDOR_ID_BLTP, I2C_PRODUCT_ID_BLTP7853,
+               I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
        { 0, 0 }
 };