X86 platform drivers
 help / color / mirror / Atom feed
* [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
@ 2025-03-21  8:30 Gašper Nemgar
  2025-03-21 14:17 ` Ilpo Järvinen
  2025-03-24 12:20 ` Hans de Goede
  0 siblings, 2 replies; 5+ messages in thread
From: Gašper Nemgar @ 2025-03-21  8:30 UTC (permalink / raw)
  To: ikepanhc
  Cc: hdegoede, ilpo.jarvinen, linux-kernel, platform-driver-x86,
	Gašper Nemgar

Signed-off-by: Gašper Nemgar <gasper.nemgar@gmail.com>"
---
 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)
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* 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
  2025-03-21  8:30 [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 Gašper Nemgar
@ 2025-03-21 14:17 ` Ilpo Järvinen
       [not found]   ` <CAKi4K-jVGw58nbxdWKizaNJRzPc3izE9ipZUOwUq=v-hAAjd8w@mail.gmail.com>
  2025-03-24 12:20 ` Hans de Goede
  1 sibling, 1 reply; 5+ messages in thread
From: Ilpo Järvinen @ 2025-03-21 14:17 UTC (permalink / raw)
  To: Gašper Nemgar
  Cc: ikepanhc, Hans de Goede, ilpo.jarvinen, LKML, platform-driver-x86

[-- Attachment #1: Type: text/plain, Size: 2000 bytes --]

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@gmail.com>"
> ---
>  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)
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* 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
  2025-03-21  8:30 [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 Gašper Nemgar
  2025-03-21 14:17 ` Ilpo Järvinen
@ 2025-03-24 12:20 ` Hans de Goede
  1 sibling, 0 replies; 5+ messages in thread
From: Hans de Goede @ 2025-03-24 12:20 UTC (permalink / raw)
  To: Gašper Nemgar, ikepanhc, Peter F. Patel-Schneider
  Cc: ilpo.jarvinen, linux-kernel, platform-driver-x86

Hi Gašper,

Than you for the new version.

On 21-Mar-25 09:30, Gašper Nemgar wrote:
> Signed-off-by: Gašper Nemgar <gasper.nemgar@gmail.com>"
> ---
>  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 } },

Still ack,

> +	/* Eye */
> +	{ KE_KEY,	0x45 | 	, { KEY_BRIGHTNESS_CYCLE } },

According to:

https://ardes.bg/uploads/original/lenovo-yoga-9-2-in-1-14-g9-550178.jpg

there already is brightness up/down on Fn + F5 / Fn + F6, so I would just
map this to a free (not used elsewhere on the keyboard) KEY_PROG#.

> +	/* Performance toggle also Fn+Q */
> +	{ KE_KEY,	0x3d | IDEAPAD_WMI_KEY, { KEY_PROG4 } },

I would make this KE_IGNORE with a comment that this is handled
inside the driver, following how this is done for the 0x02 / 0x03 keycodes:

        /* FnLock (handled by the firmware) */
        { KE_IGNORE,    0x02 | IDEAPAD_WMI_KEY },
        /* Esc (handled by the firmware) */
        { KE_IGNORE,    0x03 | IDEAPAD_WMI_KEY },


> +	/* 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 ) {

You can drop the  | IDEAPAD_WMI_KEY here and just write:

		if (data->integer.value == 0x3d) {

> +			platform_profile_cycle();
> +			break;
> +		}
>  
>  		/* 0x02 FnLock, 0x03 Esc */
>  		if (data->integer.value == 0x02 || data->integer.value == 0x03)

Regards,

Hans



^ permalink raw reply	[flat|nested] 5+ messages in thread

* 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
       [not found]   ` <CAKi4K-jVGw58nbxdWKizaNJRzPc3izE9ipZUOwUq=v-hAAjd8w@mail.gmail.com>
@ 2025-03-24 12:23     ` Hans de Goede
  2025-03-24 13:47       ` Gašper Nemgar
  0 siblings, 1 reply; 5+ messages in thread
From: Hans de Goede @ 2025-03-24 12:23 UTC (permalink / raw)
  To: Gašper Nemgar, Ilpo Järvinen
  Cc: ikepanhc, LKML, platform-driver-x86

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@linux.intel.com <mailto:ilpo.jarvinen@linux.intel.com>> 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@gmail.com <mailto:gasper.nemgar@gmail.com>>"
>     > ---
>     >  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)
>     >
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* 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
  2025-03-24 12:23     ` Hans de Goede
@ 2025-03-24 13:47       ` Gašper Nemgar
  0 siblings, 0 replies; 5+ messages in thread
From: Gašper Nemgar @ 2025-03-24 13:47 UTC (permalink / raw)
  To: Hans de Goede; +Cc: Ilpo Järvinen, ikepanhc, LKML, platform-driver-x86

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@redhat.com> 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@linux.intel.com <mailto:ilpo.jarvinen@linux.intel.com>> 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@gmail.com <mailto:gasper.nemgar@gmail.com>>"
> >     > ---
> >     >  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)
> >     >
> >
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-03-24 13:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-21  8:30 [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 Gašper Nemgar
2025-03-21 14:17 ` Ilpo Järvinen
     [not found]   ` <CAKi4K-jVGw58nbxdWKizaNJRzPc3izE9ipZUOwUq=v-hAAjd8w@mail.gmail.com>
2025-03-24 12:23     ` Hans de Goede
2025-03-24 13:47       ` Gašper Nemgar
2025-03-24 12:20 ` Hans de Goede

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox