* [PATCH] platform/x86: ideapad-laptop: Add Yoga Pro 7 14IAH10 Mode key
@ 2026-09-13 22:47 Navon John Lukose
2026-09-14 12:40 ` Hans de Goede
0 siblings, 1 reply; 3+ messages in thread
From: Navon John Lukose @ 2026-09-13 22:47 UTC (permalink / raw)
To: ikepanhc, hansg, ilpo.jarvinen
Cc: mpearson-lenovo, derekjohn.clark, platform-driver-x86,
linux-kernel, Navon John Lukose
The F9 "Mode" key emits WMI fn-key event 0x46, which the keymap does not
cover, so it reaches userspace as KEY_UNKNOWN and cannot be remapped from
there. Under Windows it opens a performance profile chooser, so it belongs
in the keymap as a user-assignable key. Map it to KEY_PROG4.
Signed-off-by: Navon John Lukose <navonjohnlukose@gmail.com>
---
Lenovo Yoga Pro 7 14IAH10 (83KF), BIOS QGCN35WW. No other key on this
machine emits 0x46, and pressing the Mode key leaves platform_profile
unchanged.
KEY_PROG4 per Hans's note on the 0x3d key, that a key opening a settings
dialog under Windows should get a free KEY_PROG#:
https://lore.kernel.org/platform-driver-x86/35969669-48b6-469e-9cd2-26929fb33e5f@redhat.com/
drivers/platform/x86/lenovo/ideapad-laptop.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/platform/x86/lenovo/ideapad-laptop.c b/drivers/platform/x86/lenovo/ideapad-laptop.c
index 8213524..6fa72a3 100644
--- a/drivers/platform/x86/lenovo/ideapad-laptop.c
+++ b/drivers/platform/x86/lenovo/ideapad-laptop.c
@@ -1360,6 +1360,8 @@ static const struct key_entry ideapad_keymap[] = {
{ KE_KEY, 0x45 | IDEAPAD_WMI_KEY, { KEY_PROG3 } },
/* Performance toggle also Fn+Q, handled inside ideapad_wmi_notify() */
{ KE_KEY, 0x3d | IDEAPAD_WMI_KEY, { KEY_PROG4 } },
+ /* Mode (performance profile chooser) */
+ { KE_KEY, 0x46 | IDEAPAD_WMI_KEY, { KEY_PROG4 } },
/* shift + prtsc */
{ KE_KEY, 0x2d | IDEAPAD_WMI_KEY, { KEY_SELECTIVE_SCREENSHOT } },
{ KE_KEY, 0x29 | IDEAPAD_WMI_KEY, { KEY_TOUCHPAD_TOGGLE } },
base-commit: 22098763a10d9c13
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] platform/x86: ideapad-laptop: Add Yoga Pro 7 14IAH10 Mode key
2026-09-13 22:47 [PATCH] platform/x86: ideapad-laptop: Add Yoga Pro 7 14IAH10 Mode key Navon John Lukose
@ 2026-09-14 12:40 ` Hans de Goede
2026-09-14 13:42 ` Navon John Lukose
0 siblings, 1 reply; 3+ messages in thread
From: Hans de Goede @ 2026-09-14 12:40 UTC (permalink / raw)
To: Navon John Lukose, ikepanhc, ilpo.jarvinen
Cc: mpearson-lenovo, derekjohn.clark, platform-driver-x86, linux-kernel
Hi Navon,
On 14-Sep-26 12:47 AM, Navon John Lukose wrote:
> The F9 "Mode" key emits WMI fn-key event 0x46, which the keymap does not
> cover, so it reaches userspace as KEY_UNKNOWN and cannot be remapped from
> there. Under Windows it opens a performance profile chooser, so it belongs
> in the keymap as a user-assignable key. Map it to KEY_PROG4.
>
> Signed-off-by: Navon John Lukose <navonjohnlukose@gmail.com>
> ---
> Lenovo Yoga Pro 7 14IAH10 (83KF), BIOS QGCN35WW. No other key on this
> machine emits 0x46, and pressing the Mode key leaves platform_profile
> unchanged.
>
> KEY_PROG4 per Hans's note on the 0x3d key, that a key opening a settings
> dialog under Windows should get a free KEY_PROG#:
> https://lore.kernel.org/platform-driver-x86/35969669-48b6-469e-9cd2-26929fb33e5f@redhat.com/
As the comment on the KE_KEY entry above the one you add says, this should
really be handled specially inside ideapad_wmi_notify(). IIRC we still want
the KE_KEY entry to emit a key-press on laptops without DYTC platform-profile
support.
For laptops with DYTC support you want to modify this bit in ideapad_wmi_notify():
/* performance button triggered by 0x3d */
if (data->integer.value == 0x3d && priv->dytc) {
platform_profile_cycle();
break;
}
to also trigger on the new 0x46 code:
/* performance button triggered by 0x3d or 0x46 */
if ((data->integer.value == 0x3d || data->integer.value == 0x46) && priv->dytc) {
platform_profile_cycle();
break;
}
So that this key actually toggles through the different (power-save/balanced/performanc)
platform profiles the laptop has.
Unless there already is another key to do that ?
And please also add a comment to the new KE_KEY entry that this is handled inside
ideapad_wmi_notify() like the existing KE_KEY entry for 0x3d has.
Hmm, I see you say that under Windows this opens a performance menu rather
then outright toggle the profile. So I guess that you maybe also have Fn + Q or
something which already directly switches profile ? If you do then KEY_PROG4
seems fine. If you do not I think just cycling the profile would be better,
what do you think ?
Regards,
Hans
>
> drivers/platform/x86/lenovo/ideapad-laptop.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/platform/x86/lenovo/ideapad-laptop.c b/drivers/platform/x86/lenovo/ideapad-laptop.c
> index 8213524..6fa72a3 100644
> --- a/drivers/platform/x86/lenovo/ideapad-laptop.c
> +++ b/drivers/platform/x86/lenovo/ideapad-laptop.c
> @@ -1360,6 +1360,8 @@ static const struct key_entry ideapad_keymap[] = {
> { KE_KEY, 0x45 | IDEAPAD_WMI_KEY, { KEY_PROG3 } },
> /* Performance toggle also Fn+Q, handled inside ideapad_wmi_notify() */
> { KE_KEY, 0x3d | IDEAPAD_WMI_KEY, { KEY_PROG4 } },
> + /* Mode (performance profile chooser) */
> + { KE_KEY, 0x46 | IDEAPAD_WMI_KEY, { KEY_PROG4 } },
> /* shift + prtsc */
> { KE_KEY, 0x2d | IDEAPAD_WMI_KEY, { KEY_SELECTIVE_SCREENSHOT } },
> { KE_KEY, 0x29 | IDEAPAD_WMI_KEY, { KEY_TOUCHPAD_TOGGLE } },
>
> base-commit: 22098763a10d9c13
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] platform/x86: ideapad-laptop: Add Yoga Pro 7 14IAH10 Mode key
2026-09-14 12:40 ` Hans de Goede
@ 2026-09-14 13:42 ` Navon John Lukose
0 siblings, 0 replies; 3+ messages in thread
From: Navon John Lukose @ 2026-09-14 13:42 UTC (permalink / raw)
To: hansg, ikepanhc, ilpo.jarvinen
Cc: Navon John Lukose, mpearson-lenovo, derekjohn.clark,
platform-driver-x86, linux-kernel
On 14-Sep-26 2:40 PM, Hans de Goede wrote:
> So I guess that you maybe also have Fn + Q or something which already
> directly switches profile ? If you do then KEY_PROG4 seems fine.
Fn+Q does, by a different path than the Mode key:
Mode key (F9) WMI fn-key 0x46, platform_profile unchanged
Fn+Q VPC special button, platform_profile_cycle() from
ideapad_acpi_notify(), no WMI event
(Used LLMs to hunt the Fn+Q path down.)
So cycling on 0x46 would duplicate Fn+Q. Keeping KEY_PROG4, and added
a comment in v2 saying why.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-14 13:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-13 22:47 [PATCH] platform/x86: ideapad-laptop: Add Yoga Pro 7 14IAH10 Mode key Navon John Lukose
2026-09-14 12:40 ` Hans de Goede
2026-09-14 13:42 ` Navon John Lukose
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®