Skip to content

Commit bcc3169

Browse files
jwrdegoedeJiri Kosina
authored andcommitted
HID: Ignore battery for all ELAN I2C-HID devices
Before this change there were 16 vid:pid based quirks to ignore the battery reported by Elan I2C-HID touchscreens on various Asus and HP laptops. And a report has been received that the 04F3:2A00 I2C touchscreen on the HP ProBook x360 11 G5 EE/86CF also reports a non present battery. Since I2C-HID devices are always builtin to laptops they are not battery owered so it should be safe to just ignore the battery on all Elan I2C-HID devices, rather then adding a 17th quirk for the 04F3:2A00 touchscreen. As reported in the changelog of commit a3a5a37 ("HID: Ignore battery for ELAN touchscreens 2F2C and 4116"), which added 2 new Elan touchscreen quirks about a month ago, the HID reported battery seems to be related to a stylus being used. But even when a stylus is in use it does not properly report the charge of the stylus battery, instead the reported battery charge jumps from 0% to 1%. So it is best to just ignore the HID battery. Closes: https://bugzilla.redhat.com/show_bug.cgi?id=2302776 Cc: Louis Dalibard <[email protected]> Signed-off-by: Hans de Goede <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
1 parent 6b5faec commit bcc3169

File tree

2 files changed

+5
-48
lines changed

2 files changed

+5
-48
lines changed

drivers/hid/hid-ids.h

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -416,24 +416,8 @@
416416
#define USB_DEVICE_ID_TOSHIBA_CLICK_L9W 0x0401
417417
#define USB_DEVICE_ID_HP_X2 0x074d
418418
#define USB_DEVICE_ID_HP_X2_10_COVER 0x0755
419-
#define I2C_DEVICE_ID_HP_ENVY_X360_15 0x2d05
420-
#define I2C_DEVICE_ID_HP_ENVY_X360_15T_DR100 0x29CF
421-
#define I2C_DEVICE_ID_HP_ENVY_X360_EU0009NV 0x2CF9
422-
#define I2C_DEVICE_ID_HP_SPECTRE_X360_15 0x2817
423-
#define I2C_DEVICE_ID_HP_SPECTRE_X360_13_AW0020NG 0x29DF
424-
#define I2C_DEVICE_ID_ASUS_TP420IA_TOUCHSCREEN 0x2BC8
425-
#define I2C_DEVICE_ID_ASUS_GV301RA_TOUCHSCREEN 0x2C82
426-
#define I2C_DEVICE_ID_ASUS_UX3402_TOUCHSCREEN 0x2F2C
427-
#define I2C_DEVICE_ID_ASUS_UX6404_TOUCHSCREEN 0x4116
428419
#define USB_DEVICE_ID_ASUS_UX550VE_TOUCHSCREEN 0x2544
429420
#define USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN 0x2706
430-
#define I2C_DEVICE_ID_SURFACE_GO_TOUCHSCREEN 0x261A
431-
#define I2C_DEVICE_ID_SURFACE_GO2_TOUCHSCREEN 0x2A1C
432-
#define I2C_DEVICE_ID_LENOVO_YOGA_C630_TOUCHSCREEN 0x279F
433-
#define I2C_DEVICE_ID_HP_SPECTRE_X360_13T_AW100 0x29F5
434-
#define I2C_DEVICE_ID_HP_SPECTRE_X360_14T_EA100_V1 0x2BED
435-
#define I2C_DEVICE_ID_HP_SPECTRE_X360_14T_EA100_V2 0x2BEE
436-
#define I2C_DEVICE_ID_HP_ENVY_X360_15_EU0556NG 0x2D02
437421
#define I2C_DEVICE_ID_CHROMEBOOK_TROGDOR_POMPOM 0x2F81
438422

439423
#define USB_VENDOR_ID_ELECOM 0x056e

drivers/hid/hid-input.c

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -373,14 +373,6 @@ static const struct hid_device_id hid_battery_quirks[] = {
373373
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH,
374374
USB_DEVICE_ID_LOGITECH_DINOVO_EDGE_KBD),
375375
HID_BATTERY_QUIRK_IGNORE },
376-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_ASUS_TP420IA_TOUCHSCREEN),
377-
HID_BATTERY_QUIRK_IGNORE },
378-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_ASUS_GV301RA_TOUCHSCREEN),
379-
HID_BATTERY_QUIRK_IGNORE },
380-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_ASUS_UX3402_TOUCHSCREEN),
381-
HID_BATTERY_QUIRK_IGNORE },
382-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_ASUS_UX6404_TOUCHSCREEN),
383-
HID_BATTERY_QUIRK_IGNORE },
384376
{ HID_USB_DEVICE(USB_VENDOR_ID_ELAN, USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN),
385377
HID_BATTERY_QUIRK_IGNORE },
386378
{ HID_USB_DEVICE(USB_VENDOR_ID_ELAN, USB_DEVICE_ID_ASUS_UX550VE_TOUCHSCREEN),
@@ -391,32 +383,13 @@ static const struct hid_device_id hid_battery_quirks[] = {
391383
HID_BATTERY_QUIRK_AVOID_QUERY },
392384
{ HID_USB_DEVICE(USB_VENDOR_ID_UGEE, USB_DEVICE_ID_UGEE_XPPEN_TABLET_DECO_PRO_SW),
393385
HID_BATTERY_QUIRK_AVOID_QUERY },
394-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_ENVY_X360_15),
395-
HID_BATTERY_QUIRK_IGNORE },
396-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_ENVY_X360_15T_DR100),
397-
HID_BATTERY_QUIRK_IGNORE },
398-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_ENVY_X360_EU0009NV),
399-
HID_BATTERY_QUIRK_IGNORE },
400-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_SPECTRE_X360_15),
401-
HID_BATTERY_QUIRK_IGNORE },
402-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_SPECTRE_X360_13_AW0020NG),
403-
HID_BATTERY_QUIRK_IGNORE },
404-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_SURFACE_GO_TOUCHSCREEN),
405-
HID_BATTERY_QUIRK_IGNORE },
406-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_SURFACE_GO2_TOUCHSCREEN),
407-
HID_BATTERY_QUIRK_IGNORE },
408-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_LENOVO_YOGA_C630_TOUCHSCREEN),
409-
HID_BATTERY_QUIRK_IGNORE },
410-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_SPECTRE_X360_13T_AW100),
411-
HID_BATTERY_QUIRK_IGNORE },
412-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_SPECTRE_X360_14T_EA100_V1),
413-
HID_BATTERY_QUIRK_IGNORE },
414-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_SPECTRE_X360_14T_EA100_V2),
415-
HID_BATTERY_QUIRK_IGNORE },
416-
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_ENVY_X360_15_EU0556NG),
417-
HID_BATTERY_QUIRK_IGNORE },
418386
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_CHROMEBOOK_TROGDOR_POMPOM),
419387
HID_BATTERY_QUIRK_AVOID_QUERY },
388+
/*
389+
* Elan I2C-HID touchscreens seem to all report a non present battery,
390+
* set HID_BATTERY_QUIRK_IGNORE for all Elan I2C-HID devices.
391+
*/
392+
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, HID_ANY_ID), HID_BATTERY_QUIRK_IGNORE },
420393
{}
421394
};
422395

0 commit comments

Comments
 (0)