[PATCH] HID: i2c-hid: add reset quirk for BLTP7853 touchpad

Xu Rao posted 1 patch 1 month ago
There is a newer version of this series
drivers/hid/hid-ids.h              | 3 +++
drivers/hid/i2c-hid/i2c-hid-core.c | 2 ++
2 files changed, 5 insertions(+)
[PATCH] HID: i2c-hid: add reset quirk for BLTP7853 touchpad
Posted by Xu Rao 1 month ago
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>
---
 drivers/hid/hid-ids.h              | 3 +++
 drivers/hid/i2c-hid/i2c-hid-core.c | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 0cf63742315b..dcb0b34cd069 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -277,6 +277,9 @@
 #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
diff --git a/drivers/hid/i2c-hid/i2c-hid-core.c b/drivers/hid/i2c-hid/i2c-hid-core.c
index 5a183af3d5c6..baff2728603e 100644
--- a/drivers/hid/i2c-hid/i2c-hid-core.c
+++ b/drivers/hid/i2c-hid/i2c-hid-core.c
@@ -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 }
 };

--
2.50.1
Re: [PATCH] HID: i2c-hid: add reset quirk for BLTP7853 touchpad
Posted by Jiri Kosina 1 month ago
On Sat, 9 May 2026, Xu Rao wrote:

> 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>

Applied, thank you.

-- 
Jiri Kosina
SUSE Labs