diff mbox series

[2/2] HID: magicmouse: set Magic Trackpad 2021 name

Message ID 20211212182100.40968-3-jose.exposito89@gmail.com (mailing list archive)
State Mainlined
Commit 5768701edcb7d7ff8abaa085996a5c1cb30d765e
Delegated to: Jiri Kosina
Headers show
Series Add Apple Magic Trackpad 2021 support | expand

Commit Message

José Expósito Dec. 12, 2021, 6:21 p.m. UTC
The Apple Magic Trackpad 2021 (3rd generation) has the same product ID
as the 2nd generation. However, when connected through Bluetooth, the
version has changed from 0x107 to 0x110.

The other meaningful change is that the name has dropped the generation
number and now it is just "Apple Inc. Magic Trackpad", like the first
generation model.

Set the device name correctly to ensure the same driver settings are
loaded, whether connected via Bluetooth or USB.

Signed-off-by: José Expósito <jose.exposito89@gmail.com>
---
 drivers/hid/hid-magicmouse.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index e650ade15a7f..2ccded36dafd 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -51,6 +51,8 @@  static bool report_undeciphered;
 module_param(report_undeciphered, bool, 0644);
 MODULE_PARM_DESC(report_undeciphered, "Report undeciphered multi-touch state field using a MSC_RAW event");
 
+#define TRACKPAD2_2021_BT_VERSION 0x110
+
 #define TRACKPAD_REPORT_ID 0x28
 #define TRACKPAD2_USB_REPORT_ID 0x02
 #define TRACKPAD2_BT_REPORT_ID 0x31
@@ -546,10 +548,14 @@  static int magicmouse_setup_input(struct input_dev *input, struct hid_device *hd
 		 * Set the device name to ensure the same driver settings get
 		 * loaded, whether connected through bluetooth or USB.
 		 */
-		if (hdev->vendor == BT_VENDOR_ID_APPLE)
-			input->name = "Apple Inc. Magic Trackpad 2";
-		else /* USB_VENDOR_ID_APPLE */
+		if (hdev->vendor == BT_VENDOR_ID_APPLE) {
+			if (input->id.version == TRACKPAD2_2021_BT_VERSION)
+				input->name = "Apple Inc. Magic Trackpad";
+			else
+				input->name = "Apple Inc. Magic Trackpad 2";
+		} else { /* USB_VENDOR_ID_APPLE */
 			input->name = hdev->name;
+		}
 
 		__clear_bit(EV_MSC, input->evbit);
 		__clear_bit(BTN_0, input->keybit);