]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
hid: Pen battery quirk for Surface Pro 12in
authorHarrison Vanderbyl <harrison.vanderbyl@gmail.com>
Fri, 29 May 2026 01:16:15 +0000 (11:16 +1000)
committerBenjamin Tissoires <bentiss@kernel.org>
Mon, 1 Jun 2026 16:36:22 +0000 (18:36 +0200)
The pen setup for this device uses bluetooth for
communicating battery levels and status instead of
reporting it over i2c.

Without this quirk, the device either reports an
extra, broken phantom battery, or hangs.

Signed-off-by: Harrison Vanderbyl <harrison.vanderbyl@gmail.com>
Acked-by: Jiri Kosina <jkosina@suse.com>
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
drivers/hid/hid-ids.h
drivers/hid/hid-input.c

index 0cf63742315bf8615eab8e7fc0dca24a75ee846f..d16f55479786ccc7ba4cc5af3409fb9208532989 100644 (file)
 #define USB_DEVICE_ID_HP_X2            0x074d
 #define USB_DEVICE_ID_HP_X2_10_COVER   0x0755
 #define I2C_DEVICE_ID_CHROMEBOOK_TROGDOR_POMPOM        0x2F81
+#define I2C_DEVICE_ID_SURFACE_PRO_12IN  0x4376
 
 #define USB_VENDOR_ID_ELECOM           0x056e
 #define USB_DEVICE_ID_ELECOM_BM084     0x0061
index d73cfa2e73d331a21abe770ec4241c4290ec1c5d..61ecd840d0bd1ea85c8227c1802ffa7fb8c8f56a 100644 (file)
@@ -395,6 +395,8 @@ static const struct hid_device_id hid_battery_quirks[] = {
          HID_BATTERY_QUIRK_AVOID_QUERY },
        { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_CHROMEBOOK_TROGDOR_POMPOM),
          HID_BATTERY_QUIRK_AVOID_QUERY },
+       { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_SURFACE_PRO_12IN),
+         HID_BATTERY_QUIRK_IGNORE },
        /*
         * Elan HID touchscreens seem to all report a non present battery,
         * set HID_BATTERY_QUIRK_IGNORE for all Elan I2C and USB HID devices.