Re: [PATCH] Added support for a some new buttons in ideapad-laptop driver Added entries to unsuported wmi codes in ideapad_keymap[] and one check in wmi_nofify in order to get wmi code 0x13d to trigger platform_profile_cycle

From: Gašper Nemgar
Date: Mon Mar 24 2025 - 09:48:20 EST


Hi,
noted. About the performance button, under windows id does toggle the
performance mode, I would much rather have a assignable key, but will
bind it to platform_profile_cycle().
Thanks,
Gašper

On Mon, 24 Mar 2025 at 13:23, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
>
> Hi,
>
> On 21-Mar-25 15:47, Gašper Nemgar wrote:
> > Hello, yes I have noticed it messed up the title and will change it,
>
>
> > I just have a question about the performance button aka WMI code 0x13d, is it smart to hardwire it into platorm_profile_cycle() or is it better to leave it as KEY_PROG4 keycode. Thanks
>
> That depends on what the key does under Windows, if it cycles through performance
> settings under Windows then calling platorm_profile_cycle() is the right thing to do.
>
> If it opens some sort of performance settings dialog / Windows then a free KEY_PROG#
> would be better.
>
> Regards,
>
> Hans
>
>
>
> >
> >
> > On Fri, 21 Mar 2025 at 15:17, Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx <mailto:ilpo.jarvinen@xxxxxxxxxxxxxxx>> wrote:
> >
> > On Fri, 21 Mar 2025, Gašper Nemgar wrote:
> >
> > Hi Gasper,
> >
> > Thanks for the patch. I think the changelog text got messed up during send
> > as it should here, not in the subject.
> >
> > Also please change "Added support" to "Add support", add the correct
> > prefix into the shortlog (the line in Subject), and add parenthesis after
> > functions in the description.
> >
> > --
> > i.
> >
> > > Signed-off-by: Gašper Nemgar <gasper.nemgar@xxxxxxxxx <mailto:gasper.nemgar@xxxxxxxxx>>"
> > > ---
> > > drivers/platform/x86/ideapad-laptop.c | 16 ++++++++++++++++
> > > 1 file changed, 16 insertions(+)
> > >
> > > diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> > > index 30bd366d7..a03377d87 100644
> > > --- a/drivers/platform/x86/ideapad-laptop.c
> > > +++ b/drivers/platform/x86/ideapad-laptop.c
> > > @@ -1308,6 +1308,16 @@ static const struct key_entry ideapad_keymap[] = {
> > > /* Specific to some newer models */
> > > { KE_KEY, 0x3e | IDEAPAD_WMI_KEY, { KEY_MICMUTE } },
> > > { KE_KEY, 0x3f | IDEAPAD_WMI_KEY, { KEY_RFKILL } },
> > > + /* Star- (User Asignable Key) */
> > > + { KE_KEY, 0x44 | IDEAPAD_WMI_KEY, { KEY_PROG1 } },
> > > + /* Eye */
> > > + { KE_KEY, 0x45 | IDEAPAD_WMI_KEY, { KEY_BRIGHTNESS_CYCLE } },
> > > + /* Performance toggle also Fn+Q */
> > > + { KE_KEY, 0x3d | IDEAPAD_WMI_KEY, { KEY_PROG4 } },
> > > + /* shift + prtsc */
> > > + { KE_KEY, 0x2d | IDEAPAD_WMI_KEY, { KEY_CUT } },
> > > + { KE_KEY, 0x29 | IDEAPAD_WMI_KEY, { KEY_TOUCHPAD_TOGGLE } },
> > > + { KE_KEY, 0x2a | IDEAPAD_WMI_KEY, { KEY_ROOT_MENU } },
> > >
> > > { KE_END },
> > > };
> > > @@ -2093,6 +2103,12 @@ static void ideapad_wmi_notify(struct wmi_device *wdev, union acpi_object *data)
> > >
> > > dev_dbg(&wdev->dev, "WMI fn-key event: 0x%llx\n",
> > > data->integer.value);
> > > +
> > > + /* performance button triggered by ... */
> > > + if ((data->integer.value | IDEAPAD_WMI_KEY) == 0x13d ) {
> > > + platform_profile_cycle();
> > > + break;
> > > + }
> > >
> > > /* 0x02 FnLock, 0x03 Esc */
> > > if (data->integer.value == 0x02 || data->integer.value == 0x03)
> > >
> >
>