From patchwork Thu Feb 13 16:06:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aditya Garg X-Patchwork-Id: 864945 Received: from PNZPR01CU001.outbound.protection.outlook.com (mail-centralindiaazolkn19011029.outbound.protection.outlook.com [52.103.68.29]) (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 D6D3014037F; Thu, 13 Feb 2025 16:06:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.103.68.29 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739462781; cv=fail; b=N9pk8iMzdr79pRYsQwRy5JmWrvZX1D5yYI608NIU3gSQ7ud4Ga0czp/W1xbQYmQ4tDZFmbtf4HdVhOg86ytX6tj0NfUa/Ux1xqbqmVHkNQDE5ucv/4qs4ehDgWtBYpU1SIisIxqiMDB1UC5kDaAVqsqHo6luh4WZIOStCz1JLUg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739462781; c=relaxed/simple; bh=HUjGOwGORUUdfbMj5Xtobyxi3hxsyKmzoMQ2mXDXuxE=; h=From:To:CC:Subject:Date:Message-ID:Content-Type:MIME-Version; b=WLd7ehDvX9Ez5ONwnyX4dqkXPBSibdmnDmOrl0w8J9wE/xNgcefOnE7JNW5LAIrxrkR6eQeVvwp3so3LWV4wYitoXUOqyb5liGHFcKyBILNslD5eLwE8bD1R+wri9NNyi8c9eO4kTbQxEEo5FGF+fjMDOiAwcPhjTEw2XOfmi1U= 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=E11rlv/p; arc=fail smtp.client-ip=52.103.68.29 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="E11rlv/p" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RqMztOi724b+sTlnuo7UBJGJI+rC1xzVnxAmbTY3Sh+QHR5cMf6JuOU8ExuD7XPg7tmMnPFD/zshrDYxj8K9JLFNLVZzZMaAnc6TwJkmQHC2A3YZz10dZJfmrN/J9nCGvkSaJD7s3QDjkZ2we1yy8666jarLVweKclAX7Xd7CyMb8IveaePtxZhqWwD2S2YMlwXebXwoRoTki7xKirvGFoDF60i3D97DB3d4vFXwPAyhjsr8fN5M5raZ4ycQLRODzwichBFQ8ClPqyl53btUf7G/E6julf3MZBTlUsW9dIULdXf3BT1PRm8x33ITvs6ytUAgeUcCaETdTwY0f6MSww== 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=ln1hnXInMtsRD0oVrDyBi+11wZajyLpmLlIuaL4Oi7w=; b=Lst5J7UYQZGi17U2ce1szy6OHfgQyV1qvbpNut+t3Sng/sTr/P3p4UaM9wk4eAeZ0EfTcB9ZuUdb8EXlXQEbnpko/SrV6p8hKTi+MT68It2SbBmtoRhGQZNBNZfcn1iSHq9pMaRJw2Jledkh9/oHgVvorRMftNa1Mc/p6/lCPLez2XcG9hSv8GkbTszuddlZmd2OHR1t3ZPtLKe6uYESC9VVYn8oVxwukZjpre5G7U6BqB+DKQcJEl590glZ6awdvvh0QlXkXxN4US3riKHEd35wmGPkpkRWXhcGgEKJuS1IGtb4J/9tufyQcfL7Kuyj3LQXOeKyK64sOgoRr1PjNA== 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=ln1hnXInMtsRD0oVrDyBi+11wZajyLpmLlIuaL4Oi7w=; b=E11rlv/pTahIEyhqYFjMBjSPfGsYXyN6312sJ2WEbXPFSNlr5cCBrAICyRl6h3aii6G5QYC2z5YAbMS+d2/pZ9zXAfcEiBIDIk15SVLx0n5wffF53/23sKTJle5Lr4g75S6Nz+GuBVrLJrWtZ/AqOgqtfPqQS2n9sJDT7Ya4YNijedle4dAefW3gluV+ujbD2utdiy9HZ5Id1B3VIRTm4RfT91bdS1IKny5RwZLY528uBLaEfD8XTClVip+Plg7TEdTWD+805Zq91kDbJx7G8OXrCKmOEJ6L5XipdiWAnXC3SYiXOpAx6M0YobxDCnco9s80r/CkaNMHMTiWq6HDMQ== Received: from PN0PR01MB9608.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:110::10) by MAZPR01MB5470.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:69::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8445.13; Thu, 13 Feb 2025 16:06:13 +0000 Received: from PN0PR01MB9608.INDPRD01.PROD.OUTLOOK.COM ([fe80::972:abe8:752:bbde]) by PN0PR01MB9608.INDPRD01.PROD.OUTLOOK.COM ([fe80::972:abe8:752:bbde%6]) with mapi id 15.20.8445.013; Thu, 13 Feb 2025 16:06:13 +0000 From: Aditya Garg To: Jiri Kosina , "jkosina@suse.com" , Benjamin Tissoires , "bentiss@kernel.org" CC: Alex Henrie , "jose.exposito89@gmail.com" , "bruners@gmail.com" , "seobrien@chromium.org" , "linux-input@vger.kernel.org" , Linux Kernel Mailing List Subject: [PATCH RESEND 1/3] HID: apple: Use common table for MacBook Pro fn mapping Thread-Topic: [PATCH RESEND 1/3] HID: apple: Use common table for MacBook Pro fn mapping Thread-Index: AQHbfjE0JC6l/xNtMEOF3BbiHe3B0w== Date: Thu, 13 Feb 2025 16:06:13 +0000 Message-ID: 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: PN0PR01MB9608:EE_|MAZPR01MB5470:EE_ x-ms-office365-filtering-correlation-id: 9aa2d586-d68a-4871-3c9f-08dd4c48569c x-microsoft-antispam: BCL:0; ARA:14566002|19110799003|7092599003|461199028|15080799006|8062599003|8060799006|440099028|3412199025|102099032; x-microsoft-antispam-message-info: QXqYWhHoyZeISGeyZTYlWMz34dJGgSiCfpRH4Vg6prGQxScrC4s8dv9Yu0F7MIjU8rlcu9lH5GsEwfqBcU+mfLWXk24RUYuq2/bZ65E2fQ1pi63sfoansg2V8EWgZzATRioUuAM1oHRwmbMKh5vHmrdPA9DF60awe8IBEfC8bPhOhXbFecn9h5wRLg0yfkw5/zJrCP73GpF8K3CwThBrh5eHcdu+kRJgKNHX4bcCDTPQpFN5eIevQ35mDaxs8n+bDUClyR0itX+j4O89P2YC0FivwXRuhVe/4AK3iYgUDH9MrvfsBuo1kq8IJTF0pQxf8LT5frpcEEKYzs1v0bR597gY20LlcSFYo1+W7VkrImfKQBfzraWyb93iQ0qNB10jk6LUVV1vq6k0i0FxCq2nLXXHAp5zFkbXUvsW4VEGDSdvhT2lbLLkJkTQ8NrMUaZd0GCB2R63NWZelEZ8+dWHBFRY+wl8MlAveekRqKxW3I9F64osWVIwUW3djuV6NDmRSBrwQbIklOLt9C4p1Z8DObMODZyeiB1cb93P+FlKRFO6+SWgQn8CpJavdOdfUKIV4v4HpNx6234P/RgAnt2gk8S1sqPT5dJdsXu3fVX0ucEvKnT6gsdwW/HeofMxtI9iXt7xGt1qhiu0/J0hJxuE7iWa33duELs2pDEpUUWoOjHXJiW4+3XIt4INzYzOZ+q8izjN4XKPUv/tv9dS16ld7+SLyFNvzpe6V4Q3tiB6qsJ05xmgVVa4rKxe404TkpiDhz2DsR+W9evf9mveHNo1B0V8+AEszZTxeiLiaKfYsXIpyE1NgjGVnARsB9MbvAWLBTk7PquLk5ZYS/3Vg00pOW3CQSzpcuT/QZzUD6p7YPxkcgV/tm4AXIOQqKD6WLPsqmmi2WCAZwoBjn1gr7eyRV1wGzXVHbtG+bUQy0ebo0UNRFBM7+uOR1zva7bGBwznSeR1bXyXkzWaGdn8YUG77kBIX3ZlByGEoVM6B0QfBcXAwX4YpSWFyB2O+gZyg8Rg1SePhfV4gHVjBihYIld1eomUaaE4hHzHkqaWLWhlRWir7b6pEg5wFEuM0KWGxQtpqlcLdMxkn5igsRhiREsGvQ== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: GUMEwdYi1gEPWwNjYv+0UNmIxJSSE4/G1aJUsiq9RG5ivt3HXQSW1dOqLyD0UEq0uCYiVu+HT+8vmt3Ye+uELtuc/TQIuYIpzoQZDNbKgHiEIlKPA3tf1V6+Jbnjta1pykXF8phvuPrGyEBv6jAbRnfvplUeumLVFsny0PywXB+6z6rZYvTwuOhOB4jgcNumGiHOrzdu+dgaZaL/deJZbJaeRcbj4XqODC4cLzZpGZ4Z3SekzF/wW7RmlovmKRRcBCg88J9JrHdB5W3adzxdeMm0/iOEJlx6FWwEbdIdTj54ORegQdPyEjzX3nvyVvbCXlh72INISvmMMulOFDKdvl7hGXlCx3fMHQhMBleefwPraEKJNwz/by4+GpY/TuEI7EI7dkfYH2iftxBEoyT396/WIAaYCmY2/q4bMb8BLzHe+QKZ9qnDaGmiyc6LmqNPAfA0sJ8r16ZqDxjOH4ZeRmqDO8xbjNYhzjiTmMtTNjeU/VnbDyagsqqKY7XG8USQtsPw3cdw1dL5RFc2RaozFTg6ZHpLO8nQ0HhpCUCqfRJDYMsr2MHLdkIYwk07ypjDi0J/02JaxIO1BpD+BSVmMeI0o5fDg51JF4XBiKgruGkP77+a6NEmr6F3Y3Kf14WMkwzO8h2k+FjjGmO7aWkcfKS1cDBgs72badxdemElqiateC+uQ8PnoyDNw9E2qhamF/aUKBOzSQOX2V4nGporMYANj1h0NbdJAEluAgAv0LXx114hhEkpSvy+gay4wHIwIw3t+YYVa5kIpYAGnbFwZ8SRTV8EGGKh2JZtDxTbXMojsea6efZ1Dm7E3WdN4sEnbE/ZW6Oobcg3Gh6pcwc+WahN7rhvM+d65qKIhX4rAsfsg5LuGhWWIre1tijVa5equuHMB+ZYp7dFBOmPj8fwEpZQQJB4JviDHHuw338JxIe5WRal55dZIA8rMDj3q0uLgyyDbGY4MeoQWREOxLKFcuxtwp4leNOWyoJlG7SvuGaSKW6ab4buLIkPN5zNuWXdUTPDEll0V5rYojetvUGWuAMA2jdurQqF/L0N7k0V/jHn7blL+NcrEoe4B4LMwgOqRl+xKzmIulQks8CT/4OLr+KSiXN1fj/XUoKU34xqKlA43hdWrDs451AzixDrjUPFmdAhz4oYksyFpaPLEXPNMKhxgi0rvdUdUVfW9PK/vKAXdszDuQmU6Y9/an1T6GjKhCetmZERsV89hRDgKHoiiLIYek1YSFmC6+JFoqCcryfmL1k+5pxgldxqZ/IAlx2oF/mF+FWuwQT7LYB8M7TON/S3Iw0712Jx65mJ95r4ffXarIrmGMQu7YKz5ygrCxQt Content-ID: <24B13D873B767A43891350ECCD6225E0@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: PN0PR01MB9608.INDPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 9aa2d586-d68a-4871-3c9f-08dd4c48569c X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2025 16:06:13.0406 (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: MAZPR01MB5470 From: Aditya Garg The only difference between the fn mapping of the MacBook Pros with esc key and those without is of the presence of KEY_GRAVE in the translation table. We can easily use a flag instead of writing the whole table again to omit it from the models that have an esc key. Additionally, APPLE_IGNORE_MOUSE quirk was unused in this driver, so has been removed in this commit. Signed-off-by: Aditya Garg --- drivers/hid/hid-apple.c | 72 ++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 45 deletions(-) diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c index 49812a76b..e31c9e8e8 100644 --- a/drivers/hid/hid-apple.c +++ b/drivers/hid/hid-apple.c @@ -30,7 +30,7 @@ #include "hid-ids.h" #define APPLE_RDESC_JIS BIT(0) -#define APPLE_IGNORE_MOUSE BIT(1) +/* BIT(1) reserved, was: APPLE_IGNORE_MOUSE */ #define APPLE_HAS_FN BIT(2) /* BIT(3) reserved, was: APPLE_HIDDEV */ #define APPLE_ISO_TILDE_QUIRK BIT(4) @@ -43,7 +43,8 @@ #define APPLE_IS_NON_APPLE BIT(11) #define APPLE_MAGIC_BACKLIGHT BIT(12) -#define APPLE_FLAG_FKEY 0x01 +#define APPLE_FLAG_FKEY 0x01 +#define APPLE_FLAG_DONT_TRANSLATE 0x02 #define HID_COUNTRY_INTERNATIONAL_ISO 13 #define APPLE_BATTERY_TIMEOUT_MS 60000 @@ -89,6 +90,19 @@ struct apple_sc_backlight { struct hid_device *hdev; }; +struct apple_backlight_config_report { + u8 report_id; + u8 version; + u16 backlight_off, backlight_on_min, backlight_on_max; +}; + +struct apple_backlight_set_report { + u8 report_id; + u8 version; + u16 backlight; + u16 rate; +}; + struct apple_magic_backlight { struct led_classdev cdev; struct hid_report *brightness; @@ -152,20 +166,6 @@ static const struct apple_key_translation magic_keyboard_2015_fn_keys[] = { { } }; -struct apple_backlight_config_report { - u8 report_id; - u8 version; - u16 backlight_off, backlight_on_min, backlight_on_max; -}; - -struct apple_backlight_set_report { - u8 report_id; - u8 version; - u16 backlight; - u16 rate; -}; - - static const struct apple_key_translation apple2021_fn_keys[] = { { KEY_BACKSPACE, KEY_DELETE }, { KEY_ENTER, KEY_INSERT }, @@ -209,32 +209,10 @@ static const struct apple_key_translation macbookair_fn_keys[] = { { } }; -static const struct apple_key_translation macbookpro_no_esc_fn_keys[] = { - { KEY_BACKSPACE, KEY_DELETE }, - { KEY_ENTER, KEY_INSERT }, - { KEY_GRAVE, KEY_ESC }, - { KEY_1, KEY_F1 }, - { KEY_2, KEY_F2 }, - { KEY_3, KEY_F3 }, - { KEY_4, KEY_F4 }, - { KEY_5, KEY_F5 }, - { KEY_6, KEY_F6 }, - { KEY_7, KEY_F7 }, - { KEY_8, KEY_F8 }, - { KEY_9, KEY_F9 }, - { KEY_0, KEY_F10 }, - { KEY_MINUS, KEY_F11 }, - { KEY_EQUAL, KEY_F12 }, - { KEY_UP, KEY_PAGEUP }, - { KEY_DOWN, KEY_PAGEDOWN }, - { KEY_LEFT, KEY_HOME }, - { KEY_RIGHT, KEY_END }, - { } -}; - -static const struct apple_key_translation macbookpro_dedicated_esc_fn_keys[] = { +static const struct apple_key_translation macbookpro_fn_keys[] = { { KEY_BACKSPACE, KEY_DELETE }, { KEY_ENTER, KEY_INSERT }, + { KEY_GRAVE, KEY_ESC, APPLE_FLAG_DONT_TRANSLATE }, { KEY_1, KEY_F1 }, { KEY_2, KEY_F2 }, { KEY_3, KEY_F3 }, @@ -415,6 +393,7 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input, struct apple_sc *asc = hid_get_drvdata(hid); const struct apple_key_translation *trans, *table; bool do_translate; + bool dont_translate_flagged_key = false; u16 code = usage->code; unsigned int real_fnmode; @@ -481,14 +460,14 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input, else if (hid->product == USB_DEVICE_ID_APPLE_WELLSPRINGT2_J132 || hid->product == USB_DEVICE_ID_APPLE_WELLSPRINGT2_J680 || hid->product == USB_DEVICE_ID_APPLE_WELLSPRINGT2_J213) - table = macbookpro_no_esc_fn_keys; + table = macbookpro_fn_keys; else if (hid->product == USB_DEVICE_ID_APPLE_WELLSPRINGT2_J214K || hid->product == USB_DEVICE_ID_APPLE_WELLSPRINGT2_J223 || hid->product == USB_DEVICE_ID_APPLE_WELLSPRINGT2_J152F) - table = macbookpro_dedicated_esc_fn_keys; + table = macbookpro_fn_keys, dont_translate_flagged_key = true; else if (hid->product == USB_DEVICE_ID_APPLE_WELLSPRINGT2_J140K || hid->product == USB_DEVICE_ID_APPLE_WELLSPRINGT2_J230K) - table = apple_fn_keys; + table = apple_fn_keys; else if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI && hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) table = macbookair_fn_keys; @@ -525,6 +504,10 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input, do_translate = asc->fn_on; } + if (dont_translate_flagged_key && + trans->flags & APPLE_FLAG_DONT_TRANSLATE) + do_translate = false; + if (do_translate) code = trans->to; } @@ -680,8 +663,7 @@ static void apple_setup_input(struct input_dev *input) 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, macbookpro_no_esc_fn_keys); - apple_setup_key_translation(input, macbookpro_dedicated_esc_fn_keys); + apple_setup_key_translation(input, macbookpro_fn_keys); } static int apple_input_mapping(struct hid_device *hdev, struct hid_input *hi, From patchwork Thu Feb 13 16:07:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aditya Garg X-Patchwork-Id: 864944 Received: from MA0PR01CU012.outbound.protection.outlook.com (mail-southindiaazolkn19011031.outbound.protection.outlook.com [52.103.67.31]) (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 2E880159596; Thu, 13 Feb 2025 16:07:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.103.67.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739462865; cv=fail; b=bC2R9bbr/eQvl6YjrdnhA3tvY2TJHlOdsfIabmQJLMv+wdrwRI6svmz6baJdxt9RD319s6l6L3ynBXB2FvvNcRSsIU61AfnQuEThzqj2KubIsI28qbD9L4uEz/t20E1p/zSWbKKtwiCDcP8u0YHZQJqRMgcs8AxpnVX/UQ6zINc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739462865; c=relaxed/simple; bh=UvQ/yw+f8qekbNOh3nQsZdSRqPXrNxZOPSyJ33/2/0Y=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=dbp3XU1M1wWhv6PaMoLm14VgXBWp1iN6idVSBSbfufMFTOZB0IsIFCpYGRv2HQgM564tPlQtT4S8cL+3gsw0yKKgilyH5zUI9giMPvt2NWd+bqyQPhVWQZToUbTpz7zNecOHlREzvZhv1/rz8oMJoI3xIhkXOPjV6TxV0Xz3ckE= 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=PWxNedJG; arc=fail smtp.client-ip=52.103.67.31 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="PWxNedJG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xnytcGEeN6terfo1IBMNfEBFoz7szRny3vEZ85k2SjlUDfAlOdi635lTJzz1h3PFXScAqs5yKQrmlz3m9TZhV5sY6AEB6sAvCK7rUGUtnW4K7Q5RAV/l56Cw4TUBfhHqDgY3Q/bjxruzu6QbvVBz35PiHTgC4kKhQFXLHZSA4zYp1l1UP7YFFmXn3eezqUqszucY0TFZZYI7cIwaxWGNQ/XRnI4Z+5KSMkxQ0NT6justZjYQFAoZr3ARCbNAfNFqOuu+uJhhjKpt2SkPxAoXTHtWIUL/ZcHbNKCq9exL6LJulnkgn2kD0srbahJh2wgZQSe5gevq8X6Vl+NYPZyocQ== 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=ItwaqomeXXfXTD3OCr4OIQlSxlc2adn+czrpV+564ZE=; b=s80+0/X2Bv/c5qQ03/5xdep7MehM/MrcoK8hEbTNJgvA0wkmxSTBI6y8l/rtUjNJgBd2848xVWCXzFr5eKmL25MzCMNMEqcKtDZ4ADxJfvDSVAJOimOdssMmAlsPPXq7kZnkXpwAhzV29pwSa5Hi0DzoL7hsUym+M8c7UNv3YL/2DEttgEOyvBfLcUQ/Casm4TM6MfCuKurNW3tRu0pkIm67h2RpHmDERRYxYm6ybQlpUFaJ66BfxO80991g0+E5xjZYYAIwVAj10WStYQtRvZdYn2NfYXPm7ZZBLV8Gpp1WadgTX0tL7VGCn8R6aeBsi5i7M6KzqPetPl0Iegqq7w== 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=ItwaqomeXXfXTD3OCr4OIQlSxlc2adn+czrpV+564ZE=; b=PWxNedJGt7SvA3QlxvwDfDPcTdIfK2KO1xOeecvDDgG2hThAX2Q0BJ4IezcKppPD4fMnNZ3SJpgq4H1KJZR3l4O+IsGARJxRx1d2gk2M3M08vO4FoiSuoDNrSY7/DOwHu1MKu+Lm2GN+l/ug3g1EknITY75RAEANVEnJc/uu7N1EdRohCqmkWI0/KoXjlis4Kp1enJYzdGbsNFkL7NqoQe3uAe29GikIUbm5o3orAHSv8dfqbHeS5p6vDFvENdHfYfTlYzAFIsrY1QOmqkyRzk1mvXhTmQIHJrhSK2FHaoaxu/v0LrErjYTPj/gY3Gk/jp2zuGBghfzvok0GJIEuMg== Received: from PN0PR01MB9608.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:110::10) by MAZPR01MB5470.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:69::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8445.13; Thu, 13 Feb 2025 16:07:38 +0000 Received: from PN0PR01MB9608.INDPRD01.PROD.OUTLOOK.COM ([fe80::972:abe8:752:bbde]) by PN0PR01MB9608.INDPRD01.PROD.OUTLOOK.COM ([fe80::972:abe8:752:bbde%6]) with mapi id 15.20.8445.013; Thu, 13 Feb 2025 16:07:38 +0000 From: Aditya Garg To: Jiri Kosina , "jkosina@suse.com" , Benjamin Tissoires , "bentiss@kernel.org" CC: Alex Henrie , "jose.exposito89@gmail.com" , "bruners@gmail.com" , "seobrien@chromium.org" , "linux-input@vger.kernel.org" , Linux Kernel Mailing List Subject: [PATCH RESEND 3/3] HID: apple: simplify logic for swapping only left sided option and command keys Thread-Topic: [PATCH RESEND 3/3] HID: apple: simplify logic for swapping only left sided option and command keys Thread-Index: AQHbfjFnvaVG20Hv+kCuivlHwYgO7w== Date: Thu, 13 Feb 2025 16:07:38 +0000 Message-ID: <1C1C6D41-70E7-431A-850D-A5A1C15F88BE@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: PN0PR01MB9608:EE_|MAZPR01MB5470:EE_ x-ms-office365-filtering-correlation-id: 8e978e69-9c4f-4795-a37d-08dd4c4889bd x-microsoft-antispam: BCL:0; ARA:14566002|19110799003|7092599003|461199028|15080799006|8062599003|8060799006|440099028|3412199025|102099032; x-microsoft-antispam-message-info: zmE0FjsFjD9pglW13wG6c0eDL7TBeZU0MMewDditQ5UrsvDc2+ylhGes5SVGYaGNzPMdyCUryKhmjVMEuZ+uORK60HhBdQEESqsyKInoYbLHBvAZdCA38+eKtJZy+YfsokVm5DcfCuqIV8YKSOKYIQW5hUJKtNbwFWlMHhxnF+bLjv+8WqdCZoGpUl3/fOWIP3k8xqDmIb61cMdJgtw1v55323Fu4PTMuqIFQqj0eoKGzhbJtZ6rScQtgDh1DDt37Wxz3UISIlZmDtU0Zd8wubkMnePZmnjelQnW+NpKxIA+9TY7zvG6EcaYF+AK5RW8Z2haZRIhCkhfZirQNqNW3IAR4Q+wpa72PtyP/R+NNGq5PMS2yMBX/ruDolY1P+PVTV3Ie1rmmmq5gByGXIfZZDhE8MVmKjn6zhClDAEnvfNSkVZAvxrihTuR8LDW3W5NJ25x2QijSlfovCNTl/cjPQ6TRpAQ8zIREPW3qYf8BEE4XVxkQC+uf0xBE9EUzJ5s6VGgZcopmldFQ4zX/MykBJAj54dE6UvimHsv6sl33ujxG7pV8sSX1wLJMgFaHHx1lnB7foRx9rHJJqrOa2Bo73g+Y/WOYjrxS/5JNUVpuCdTRVh1eiNQkY9Kw62F9Lf7XvhsmnFDmJj0ir2tOj0L41+Dk+101NNSfPTJOhS9V7AEoW5YFouAbndOZt4t68+IPSnPIGH8GbejM6vyCHoy6qpO6HfDr2qEFSlvM8Ir2Sf1ieXCKjA2IHuGF6I04/u3Ma+koxp/0yYxZ4Z0jpNJWsMus+OcfMU96xdgjKmXx0DH/XYhkkUXZqXdIYYOVWKtSKvJ3SJQsTVAHOJriLRj1WzOF0fXTRNG1VuDxPP1I1F9SHRbDK4DePpq2TFVqUiPZytyAkS+LgEjSS/eK3WVCBGWQRXdSDB67bWx2O/bAwzuRdaZNp8xBvcKs3vPaCLFRBrXiKrirNOP0dfnQdWVIwLndQbswhl9ldGz2Lshsqizzi9GKvtzV/QohuERtpnn4sf2PUB7BF/nTiaGDwbN/2P594wXdjr2RgKGjBnjguZNZ5yAvB3tX4BFSkOaFbYXVDOTTQUxuOJCqX9lifIrnA== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: rvUN3QvdQ14km9qqeaydY0Sgkq0wx9Kz4tKpEohLsVlZVw0+ghQgjRYY1E0eoULlWUeUpKPrG7tnifuBNkPDiITym+OEfCovMf0vi5B2VmZYucTl23+EK3eedYGU9simVDy5CMYECUeb3niYeyQmuBuOVHOn82X3/U9mKzwCvyiXjnfidVyJ0B8lEA8h3M3slIaL2sPX2XDiRQGBz0j7mSnF0sSgSAvQx106G5Oe8XNdaLBaXz62X9ScbZGg60gFsd5lO4N9PorFcU2WpcWdP3wjtnDugqQ4cwcHAQPzy4oAZ0S65Ev1hlOsLVX7H5mM4EhpcFocNTxAifUl1v4CdIdWEY71uMRDwqWQgqOxPz3BEEbNfGRD+doP1Y9rhCMqNIQR/vcDjI5yqwNJ4gAPexnmI5wZquKeWjDQ0EHCzxLNwCh9Nci4KVtiZFfpkr5bW+7qYcSAAnGT8VqzmK7nP0D26hbRVWZmSM9NIcnswfx1van+oj6VL6KcfPECPhvvjHKdaNVqkbbfc0OeS7aSzOawq3LhB4mI53PPxODaClpglEu5nmnmzRSh+lOB+vffEzW5vKfnKCCrExYQj1ANvJ2aPKVx2mRMWtiuLFc9VoToqDI/rp7qG9idgKXiJTdFEufnPP9D7OWnliimLvq8F4AYr3CY8Rn9aP/gX/56PyppLdunBRY5+HFYpMTudrzIOY3LGVGdeQQTXmCChjJlELr25/6OlYOw+eN8C3zzriEemqpN/3QkX2KlMSAwz7JiJCdjLbUbzyRwX1pxOgRIrKieXXWkgV8UpOG7ffXMzbNRIGrcVOaUfsGaGU9oGJ6yCXwGG+XKORYy4kVpCFONCEFCpPHn8AwaT9pfufcutg79qJOWqeS3DLbf2+F52rCxZ1Wb5cimr4OtHe8QcqTaT+TBvkG2ZyuA2jGXM3/E8Q0IZmyCyF3fhDXvabgZSHqcII+PebahtOizDGSAKBjKENfDV8vyN1MhM50bq7MBQsjbV0zZ5D56032RygxzMsvMLiRxS3I07yDDyID5SmdVYDzphEtr+cBvupbgOpisKJAZ+lpZ5fafNt+XfN7ynMw1XHtfoUN8R0n0j+HcM2T6yupZHdDrhWrLtG5ZiGKTqbAC7pmRga+koD+D7mx1mVsuNG6jweHtI47ao06aL8166EWDiXZ/Zb2MVP5Ck2MHITXoGBrXjDUHVVH3XgdwxhCsUsK9QO++QIwIIDxtOXGQ/Ms7ktTH2p5/dTkcS3Nb/uPw094tF3JVB9q+xlNGbd4tOSO3EH0Sw7qLRtU8jyFKSp4XghjQ5AU3eAgUCBK16y1ufT7JylQQZcquSQfO5CgE Content-ID: <1104EDCC5939AC408786364A22D55170@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: PN0PR01MB9608.INDPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 8e978e69-9c4f-4795-a37d-08dd4c4889bd X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2025 16:07:38.8683 (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: MAZPR01MB5470 From: Aditya Garg In order to swap only left sided option and command keys a separate table was in use. This commit makes use of the APPLE_FLAG_DONT_TRANSLATE flag to remove the need of such separate tables. Signed-off-by: Aditya Garg --- drivers/hid/hid-apple.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c index ca462e483..c672ffc97 100644 --- a/drivers/hid/hid-apple.c +++ b/drivers/hid/hid-apple.c @@ -285,14 +285,8 @@ static const struct apple_key_translation apple_iso_keyboard[] = { static const struct apple_key_translation swapped_option_cmd_keys[] = { { KEY_LEFTALT, KEY_LEFTMETA }, { KEY_LEFTMETA, KEY_LEFTALT }, - { KEY_RIGHTALT, KEY_RIGHTMETA }, - { KEY_RIGHTMETA, KEY_RIGHTALT }, - { } -}; - -static const struct apple_key_translation swapped_option_cmd_left_keys[] = { - { KEY_LEFTALT, KEY_LEFTMETA }, - { KEY_LEFTMETA, KEY_LEFTALT }, + { KEY_RIGHTALT, KEY_RIGHTMETA, APPLE_FLAG_DONT_TRANSLATE }, + { KEY_RIGHTMETA, KEY_RIGHTALT, APPLE_FLAG_DONT_TRANSLATE }, { } }; @@ -399,12 +393,9 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input, } if (swap_opt_cmd) { - if (swap_opt_cmd == 2) - trans = apple_find_translation(swapped_option_cmd_left_keys, code); - else - trans = apple_find_translation(swapped_option_cmd_keys, code); + trans = apple_find_translation(swapped_option_cmd_keys, code); - if (trans) + if (trans && !(swap_opt_cmd == 2 && trans->flags & APPLE_FLAG_DONT_TRANSLATE)) code = trans->to; }