From patchwork Fri Mar 7 12:00:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aditya Garg X-Patchwork-Id: 14006372 X-Patchwork-Delegate: jikos@jikos.cz Received: from PNZPR01CU001.outbound.protection.outlook.com (mail-centralindiaazolkn19011038.outbound.protection.outlook.com [52.103.68.38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B23C1218851; Fri, 7 Mar 2025 12:00:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.103.68.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741348813; cv=fail; b=WBcCs0IV28La5xt2ECACpccKRqSKFQavT6JNuF0XRdIgcTz1QJgMX7D8Se4D3Pfdu36pUCaR3v021Hukw1LtYxH3cBu3sB+obx+mkGctvZIg9ZFSsiIyDQ9tHHeWtjYT+j9t44tZBv1FAvjpSsaJSwpPWdEdyIN+/LtGD+9mhpM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741348813; c=relaxed/simple; bh=tLZ0OmJcy24TnMpOgxdiztEkkV/tBe7v131CDHfNEoA=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=sMgzuBe/KQ/MPCfnOH461pDmuA9XKoSlQKmrr81t6CRw4vVxZCc+hPuYZd6TnPKuWXeD+ZnCFHMcGmyi2yoNqc6sPqaFDcJGhGJg36TnGb03qW0dfEq3L2XkaknNNownxAiFu8PGW6zaRAB/cuMFZ/R/fNpzu3SHd/cuZhEiy/U= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=live.com; spf=pass smtp.mailfrom=live.com; dkim=pass (2048-bit key) header.d=live.com header.i=@live.com header.b=ad3khcK7; arc=fail smtp.client-ip=52.103.68.38 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=live.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=live.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=live.com header.i=@live.com header.b="ad3khcK7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=U89NVpoe+e2amahJHjGeOkIg9Jdx6vonQMCq//WP69tXIw5lM/zNEiYxDpj4ky/VKYAuaJwdFW7yDifiwXs3FKOtxbIWx/cRLU3MfwjZUn0BBxPBFK+F5xlxES0vwaCvriFY3Eusrs2GrQA00Op2UfhQJPUD17s6RXbQPrFQIF9bBaRZsUxQjdoEKWabulkIjyEYSZrtsGFfJ8TLYVw0HQXM2QO+EYk1DlDdSkBqM6w+fez2W3JconZP8nnNi9uGA8w5rdZwq7g4Aid9SzrtoKPt0OvepCc1o5Dp9xC2Glxl/431iJsYdJiDOA3KfErcdooQF0c16X8ZaSuOKCzyLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=O6u6sPE2HZSVk9t3KGS3iE9yURMQvASLhwWStL4o8OA=; b=dNqtI5hG9ejFq1lrklz2du2JeTIhF5+hz4imgIzKtEU2cGLXX8uBwc2C1pc37FEfHillkiIoevzOoVlQf96Y33HgtCSIcjgukCM9NYkROU0ikX4icZm9AFC60rz3WvIqFXWCOtfQcvBmXus12E2gl15m0HJbD+TRwQhVgv9iZazjgg6Hzz45RUevX2Frv4Z3nSHOJsB0EmhLGSY2uE1rC5Fgu2FLGMsc52KG0MCTMYtaQ7zdpW0tXgJgJ+WevFMYYFUI/U8YnwpXiheTUX6CIOocGfDUt67UzFcAevgDdTqefDq6YRwg2U0dhZ6KaknD+iexYOah+Y8H31ZPbdbGWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=O6u6sPE2HZSVk9t3KGS3iE9yURMQvASLhwWStL4o8OA=; b=ad3khcK75ILJMtFIJoFJBLwr3+BBms2gNnFMPVy9SnVbzdjSsZYyMMi52gHOCJmw21n0JWq3JrpuKBAN5qNva/Stv865XyvZRLcQbEMYxkABeqPzjg92V+1VJ9N4K4YqdWk8ho1RO+O0u99x6NcmonKTqFMx3HVXe0DQyiajcRSzWV12d/ArW2hUXQjkAAVZ7KROz1je/BPtqImIc95MpM+YHL/Sxt1jC951l0bkiFtVTAVrGVGtLJ9Vutnad9JCE7mVpimZX2sz69aplWioBcU9+4fbJnDCaubzQgTqet1S963PnkuW8w+1HCbJ6B9RPtmtaUU10FPGb2yRXvS6fQ== Received: from PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:f7::14) by MA0PR01MB5697.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:6c::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.22; Fri, 7 Mar 2025 12:00:06 +0000 Received: from PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM ([fe80::324:c085:10c8:4e77]) by PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM ([fe80::324:c085:10c8:4e77%7]) with mapi id 15.20.8511.019; Fri, 7 Mar 2025 12:00:06 +0000 From: Aditya Garg To: Jiri Kosina , Jiri Kosina , "jkosina@suse.cz" , Benjamin Tissoires , "bentiss@kernel.org" CC: Grigorii Sokolik , Linux Kernel Mailing List , "linux-input@vger.kernel.org" Subject: [PATCH v2 4/4] HID: hid-apple: Apple Magic Keyboard a3118 USB-C support Thread-Topic: [PATCH v2 4/4] HID: hid-apple: Apple Magic Keyboard a3118 USB-C support Thread-Index: AQHbj1h3lz5O14VG10G9npfz0dlWVw== Date: Fri, 7 Mar 2025 12:00:06 +0000 Message-ID: <0C3B8412-20CD-4523-A794-AFAB6D6471BA@live.com> References: In-Reply-To: Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PN3PR01MB9597:EE_|MA0PR01MB5697:EE_ x-ms-office365-filtering-correlation-id: 2e1a76ba-147d-4da8-e69a-08dd5d6f9a59 x-microsoft-antispam: BCL:0;ARA:14566002|7092599003|19110799003|8060799006|15080799006|461199028|8062599003|102099032|440099028|3412199025; x-microsoft-antispam-message-info: bzASQcaZvSwrJCHWbPhs68AI+PcXgNvjPfdNapNij6N2JFj2hoLLwaZF1iqGONGYw76S8jql79wHlh4CeMHtrnFcjOV0tNEsfmZmmt8zBi+LnB3p4SuvqADQjqn2YSMCwZVuAZY1yqGD1h49nxgm10WoOd47OKkYG9tkDW10FekzRKuWpJ/XZk4gozodTaCEsuYjiqNLy52n57AVAzLjdkhR1cgV3ig9alT1QnGcOyDktpYLvq58/opI8Pjx7JfW18FJEh7kb9eimDeNp/YLy/6pDH65K5W/KlC9sF9hIxZPZlhqEjUAoK5JPnNWa0PFy0aGgW5cz82b3rsh43WcSROT0q2WNnwYXQiF2qokrr8PninFLe8Z8SvP4zxZeXDy9RhmTjg5j4tumchEi2Ro23EwUF/QOid8Sj+jvoLojBlfEzypGUet2BlFYHcUmj72HGSGkV81Wm/a8LwFMOQxQBKLp+KSarJ/dBu8oyy+OdqChJ6X9u5pocBp8WHi0WfGi7ltaY5zpxtMwDFNj0dXuW3lcMuzuE0vcGSlv9U2Imn1DT9AXYAJ8TNKWuG3RdjiPPQUC4cmQBz9SwEpUNvvSfYL6QaUGuMtvWo2W7tTBXS2Por2oLfvOYHVR6uXotG/w333ECecF9ErfTLsMSwCwxI4PgW/z6tsW5vAvEZUc5VznpSAKksl//ZyXWGuz0DdiTH7jdTaloVoyZo7BpJkHm/PnLTavo9TV0pJ+WmnQuL4kJHfKnF/O9UVyhDGYDa73B3+poag2tt8Dfi41TZ6QB/oa5bQjGuKXIqvo20vsP04bcni6BMjoJR6U9OriIAP6ao32YI5+Tk1aOqG/VjFrwNIc6yBjjZkbDmLAwmzOrkLropvDziOaEtFZ5Y0Ipsk4xpuOElHzcuhtIEjm12ED3TCsOxnZGOvGaSdUC9GaROnh16Nvgs0tIjYzZ0ec2spS57ZWLi5qoeERQDYI1X4naC3jTwcM/7Id9S5JHULGxZiVCjiASy28TvKx92fRbQ5oGSGDGgyG4re/3DU5OnOWLNPrmzhei9x75EglQy/aLwsnS6w54sSqwiXFOFoiVE/K0uVgmnq5X7tmxBP7P9T4g== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: LXDZaXn15/497nNz4UPaemXNFADRIRNPTvsr14miqgigmtxlbCAL1+Xz2wzatd7jmqVQ8th8kMNtSIrp9J4r22a5rq6fdnOrL12JvPj66T96ISgbvSoQn11qubOjxOax5KvcTzKlbYqc1wqrSrHPvjI+tHZxIeWepoj6fnMvhWX3DmU7yJPsgqbOTF5AVNAIm1ZZCkzSFM2xrxQrDQ+wCbLKHfSyN2ITmtMc6bG5GR1sil+BwQrh7p6KtqgHX6UWECOsvNI33Uez2PR72eTgmdFeID0uSt/TcM0r7e+bxGbVbqHrgTeyKIzjGQxjRbB8j3Wa/hIcnXFS1fg/bT3rZfhMnyVpP0A0bbOjWB1osadj7CaLcdPFNrZRI3KhwzVSkPq5tXPWfN4diTom8FCbokCkUZjsPt0xBLLdxkjd7cwxss2Wq0YK01hLnx1RqWTvtKCbVaVvRcdY2toOmJI6UU3viudmCE049N4YSSUJFCAyb2XpJUYXC73eScWWHhOXUXWyEHk2ylvjHf8ldz6ty7LOGVmw+wViq/I/XOJg9mc789n5xeGBNjOarCJwaDf09NXL5fyrSZiTwFWUqGZoaSOdkOdvwtwqBfRNLSxRq3XViAVsED1J8IBmPeB6GR5BOzOk3f7bHop4QSzC0cL1xy54jcXRAR/ZTYMfr0dND8aRAjUpXP41uZPL7bxD2DGN5XzujtVsAedxteBqIdgnJHAoZ00ZrTW74txjMZkYcj970Joe+ma70MM76C01x+fbxgcoXzO31nxIUWPsevYF0A3PnlRAabKyEcXHS5/yaV7FWeWWVR2he+dNBa3+UuwdGKCZmFHyaoN8GjLgXuivTHYCLtHZb3JqEvaofZOcp0lXjff+ktbM72SAFlWLif8XuykRtJ0DvEm0EH91quz9b8Ut0Zg3rpu6uVTxi3oOWQiCo9P6FI2dz8uflKFKv7se/dEzGLbTy3kWFhXwXAWxqd/N0p88u6DXa5eLKxLjET6oLaugMK04z2jGilj7KXIZU+Y/xkp/zhcWyDaLB5SndTArNLNiDvYp4Oc75n2l2rzJ76e72yfsYaXHS9rI+BpqNqouIq1ave4h9siyNoPVhI1Wb6gl/8mm9Wuh2sxdI4Rbxco9eulWI2W21N+5uzEqrNyvTnoQiZcbswonAzHpZRrO7qoJiEfAdFqr6P5xm0Ug0cH/H2IA49RBn7Szm8dEM4cIvm8HWrZMqirMLDkF4Wu/9TWv9hHgFXqXT9IEmu1ZAJ6/0yylIe71FFt3wkHtPxbOnWWhAIt8q5tqkSY65A/NBsy65LfaUcGSPNXxsV9//y+FjGLT8nCggyPYF7i5 Content-ID: <4F83D42887743D4B8E8C36D25CCA1704@INDPRD01.PROD.OUTLOOK.COM> Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-7719-20-msonline-outlook-ae5c4.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 2e1a76ba-147d-4da8-e69a-08dd5d6f9a59 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Mar 2025 12:00:06.8587 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MA0PR01MB5697 From: Grigorii Sokolik Add Apple Magic Keyboard 2024 model (with USB-C port) device ID (0321) to those recognized by the hid-apple driver. Keyboard is otherwise compatible with the existing implementation for its earlier 2021 model. Signed-off-by: Grigorii Sokolik Co-developed-by: Aditya Garg Signed-off-by: Aditya Garg --- drivers/hid/hid-apple.c | 21 +++++++++++++-------- drivers/hid/hid-ids.h | 9 +++++---- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c index fde438bee..e95a54113 100644 --- a/drivers/hid/hid-apple.c +++ b/drivers/hid/hid-apple.c @@ -165,7 +165,7 @@ static const struct apple_key_translation magic_keyboard_2015_fn_keys[] = { { } }; -static const struct apple_key_translation apple2021_fn_keys[] = { +static const struct apple_key_translation magic_keyboard_2021_and_2024_fn_keys[] = { { KEY_BACKSPACE, KEY_DELETE }, { KEY_ENTER, KEY_INSERT }, { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY }, @@ -482,10 +482,11 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input, table = magic_keyboard_2015_fn_keys; break; case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021: - case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024: case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021: case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021: - table = apple2021_fn_keys; + case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024: + case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024: + table = magic_keyboard_2021_and_2024_fn_keys; break; case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J132: case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J213: @@ -690,7 +691,7 @@ static void apple_setup_input(struct input_dev *input) apple_setup_key_translation(input, apple_iso_keyboard); apple_setup_key_translation(input, magic_keyboard_alu_fn_keys); apple_setup_key_translation(input, magic_keyboard_2015_fn_keys); - apple_setup_key_translation(input, apple2021_fn_keys); + apple_setup_key_translation(input, magic_keyboard_2021_and_2024_fn_keys); apple_setup_key_translation(input, macbookpro_no_esc_fn_keys); apple_setup_key_translation(input, macbookpro_dedicated_esc_fn_keys); } @@ -1165,10 +1166,6 @@ static const struct hid_device_id apple_devices[] = { .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY }, { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021), .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK }, - { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024), - .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY }, - { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024), - .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021), .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY }, { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021), @@ -1177,6 +1174,14 @@ static const struct hid_device_id apple_devices[] = { .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY }, { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021), .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024), + .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY }, + { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024), + .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024), + .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY }, + { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024), + .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT), .driver_data = APPLE_MAGIC_BACKLIGHT }, diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 288a2b864..8682e1b11 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -162,6 +162,11 @@ #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_JIS 0x0257 #define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2015 0x0267 #define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2015 0x026c +#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 0x029c +#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021 0x029a +#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021 0x029f +#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024 0x0320 +#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024 0x0321 #define USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI 0x0290 #define USB_DEVICE_ID_APPLE_WELLSPRING8_ISO 0x0291 #define USB_DEVICE_ID_APPLE_WELLSPRING8_JIS 0x0292 @@ -183,10 +188,6 @@ #define USB_DEVICE_ID_APPLE_IRCONTROL3 0x8241 #define USB_DEVICE_ID_APPLE_IRCONTROL4 0x8242 #define USB_DEVICE_ID_APPLE_IRCONTROL5 0x8243 -#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 0x029c -#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024 0x0320 -#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021 0x029a -#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021 0x029f #define USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT 0x8102 #define USB_DEVICE_ID_APPLE_TOUCHBAR_DISPLAY 0x8302