platform/x86: ideapad-laptop: switch platform profiles using thermal management key
authorGergo Koteles <soyer@irl.hu>
Mon, 8 Apr 2024 17:35:11 +0000 (19:35 +0200)
committerHans de Goede <hdegoede@redhat.com>
Mon, 15 Apr 2024 13:48:31 +0000 (15:48 +0200)
Ideapad laptops have thermal management or performance mode switch key
(Fn + Q). They report KEY_PROG4.

If supported, cycle between platform profiles instead.

Tested on Yoga7 14ARB7.

Signed-off-by: Gergo Koteles <soyer@irl.hu>
Link: https://lore.kernel.org/r/e5cf301ef731b037e211d468fe1d362fe3ea40ad.1712597199.git.soyer@irl.hu
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/ideapad-laptop.c

index 8a5bef4eedfe6b66973fbd97da8a9850a6a32eee..fcf13d88fd6ed4050016bdf0db7870ac9a5167d9 100644 (file)
@@ -1218,8 +1218,11 @@ static void ideapad_check_special_buttons(struct ideapad_private *priv)
                switch (bit) {
                case 6: /* Z570 */
                case 0: /* Z580 */
-                       /* Thermal Management button */
-                       ideapad_input_report(priv, 65);
+                       /* Thermal Management / Performance Mode button */
+                       if (priv->dytc)
+                               platform_profile_cycle();
+                       else
+                               ideapad_input_report(priv, 65);
                        break;
                case 1:
                        /* OneKey Theater button */