Skip to content

Commit 3876ed8

Browse files
Naoki Uekigregkh
authored andcommitted
HID: elecom: Add support for ELECOM M-XT3URBK (018F)
[ Upstream commit cdcbb8e ] The ELECOM M-XT3URBK trackball has an additional device ID (0x018F), which shares the same report descriptor as the existing device (0x00FB). However, the driver does not currently recognize this new ID, resulting in only five buttons being functional. This patch adds the new device ID so that all six buttons work properly. Signed-off-by: Naoki Ueki <naoki25519@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 284f284 commit 3876ed8

3 files changed

Lines changed: 8 additions & 4 deletions

File tree

drivers/hid/hid-elecom.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ static const __u8 *elecom_report_fixup(struct hid_device *hdev, __u8 *rdesc,
7575
*/
7676
mouse_button_fixup(hdev, rdesc, *rsize, 20, 28, 22, 14, 8);
7777
break;
78-
case USB_DEVICE_ID_ELECOM_M_XT3URBK:
78+
case USB_DEVICE_ID_ELECOM_M_XT3URBK_00FB:
79+
case USB_DEVICE_ID_ELECOM_M_XT3URBK_018F:
7980
case USB_DEVICE_ID_ELECOM_M_XT3DRBK:
8081
case USB_DEVICE_ID_ELECOM_M_XT4DRBK:
8182
/*
@@ -119,7 +120,8 @@ static const __u8 *elecom_report_fixup(struct hid_device *hdev, __u8 *rdesc,
119120
static const struct hid_device_id elecom_devices[] = {
120121
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_BM084) },
121122
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XGL20DLBK) },
122-
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT3URBK) },
123+
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT3URBK_00FB) },
124+
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT3URBK_018F) },
123125
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT3DRBK) },
124126
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT4DRBK) },
125127
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_DT1URBK) },

drivers/hid/hid-ids.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,8 @@
449449
#define USB_VENDOR_ID_ELECOM 0x056e
450450
#define USB_DEVICE_ID_ELECOM_BM084 0x0061
451451
#define USB_DEVICE_ID_ELECOM_M_XGL20DLBK 0x00e6
452-
#define USB_DEVICE_ID_ELECOM_M_XT3URBK 0x00fb
452+
#define USB_DEVICE_ID_ELECOM_M_XT3URBK_00FB 0x00fb
453+
#define USB_DEVICE_ID_ELECOM_M_XT3URBK_018F 0x018f
453454
#define USB_DEVICE_ID_ELECOM_M_XT3DRBK 0x00fc
454455
#define USB_DEVICE_ID_ELECOM_M_XT4DRBK 0x00fd
455456
#define USB_DEVICE_ID_ELECOM_M_DT1URBK 0x00fe

drivers/hid/hid-quirks.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,8 @@ static const struct hid_device_id hid_have_special_driver[] = {
410410
#if IS_ENABLED(CONFIG_HID_ELECOM)
411411
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_BM084) },
412412
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XGL20DLBK) },
413-
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT3URBK) },
413+
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT3URBK_00FB) },
414+
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT3URBK_018F) },
414415
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT3DRBK) },
415416
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_XT4DRBK) },
416417
{ HID_USB_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_M_DT1URBK) },

0 commit comments

Comments
 (0)