[PATCH] platform/x86: ideapad-laptop: support Fn+R dual-function key

Gergo Koteles posted 1 patch 1 year, 12 months ago
drivers/platform/x86/ideapad-laptop.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH] platform/x86: ideapad-laptop: support Fn+R dual-function key
Posted by Gergo Koteles 1 year, 12 months ago
According to the manual, Fn+R adjusts the display refresh rate.
Map Fn+R to KEY_DISPLAYTOGGLE.

Signed-off-by: Gergo Koteles <soyer@irl.hu>
---
 drivers/platform/x86/ideapad-laptop.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
index 88eefccb6ed2..4c130957f80d 100644
--- a/drivers/platform/x86/ideapad-laptop.c
+++ b/drivers/platform/x86/ideapad-laptop.c
@@ -1091,6 +1091,8 @@ static const struct key_entry ideapad_keymap[] = {
 	{ KE_KEY,	0x07 | IDEAPAD_WMI_KEY, { KEY_HELP } },
 	{ KE_KEY,	0x0e | IDEAPAD_WMI_KEY, { KEY_PICKUP_PHONE } },
 	{ KE_KEY,	0x0f | IDEAPAD_WMI_KEY, { KEY_HANGUP_PHONE } },
+	/* Refresh Rate Toggle (Fn+R) */
+	{ KE_KEY,	0x10 | IDEAPAD_WMI_KEY, { KEY_DISPLAYTOGGLE } },
 	/* Dark mode toggle */
 	{ KE_KEY,	0x13 | IDEAPAD_WMI_KEY, { KEY_PROG1 } },
 	/* Sound profile switch */
-- 
2.43.0
Re: [PATCH] platform/x86: ideapad-laptop: support Fn+R dual-function key
Posted by Ike Panhc 1 year, 11 months ago
On 2/11/24 06:51, Gergo Koteles wrote:
> According to the manual, Fn+R adjusts the display refresh rate.
> Map Fn+R to KEY_DISPLAYTOGGLE.
> 
> Signed-off-by: Gergo Koteles <soyer@irl.hu>
> ---
>  drivers/platform/x86/ideapad-laptop.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> index 88eefccb6ed2..4c130957f80d 100644
> --- a/drivers/platform/x86/ideapad-laptop.c
> +++ b/drivers/platform/x86/ideapad-laptop.c
> @@ -1091,6 +1091,8 @@ static const struct key_entry ideapad_keymap[] = {
>  	{ KE_KEY,	0x07 | IDEAPAD_WMI_KEY, { KEY_HELP } },
>  	{ KE_KEY,	0x0e | IDEAPAD_WMI_KEY, { KEY_PICKUP_PHONE } },
>  	{ KE_KEY,	0x0f | IDEAPAD_WMI_KEY, { KEY_HANGUP_PHONE } },
> +	/* Refresh Rate Toggle (Fn+R) */
> +	{ KE_KEY,	0x10 | IDEAPAD_WMI_KEY, { KEY_DISPLAYTOGGLE } },
>  	/* Dark mode toggle */
>  	{ KE_KEY,	0x13 | IDEAPAD_WMI_KEY, { KEY_PROG1 } },
>  	/* Sound profile switch */

Acked-by: Ike Panhc <ike.pan@canonical.com>

BTW on which ideapad we need this patch?

Thanks.

--
Ike
Re: [PATCH] platform/x86: ideapad-laptop: support Fn+R dual-function key
Posted by Gergo Koteles 1 year, 11 months ago
Hi Ike,

On Mon, 2024-02-19 at 10:39 +0800, Ike Panhc wrote:
> On 2/11/24 06:51, Gergo Koteles wrote:
> > According to the manual, Fn+R adjusts the display refresh rate.
> > Map Fn+R to KEY_DISPLAYTOGGLE.
> > 
> > Signed-off-by: Gergo Koteles <soyer@irl.hu>
> > ---
> >  drivers/platform/x86/ideapad-laptop.c | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> > index 88eefccb6ed2..4c130957f80d 100644
> > --- a/drivers/platform/x86/ideapad-laptop.c
> > +++ b/drivers/platform/x86/ideapad-laptop.c
> > @@ -1091,6 +1091,8 @@ static const struct key_entry ideapad_keymap[] = {
> >  	{ KE_KEY,	0x07 | IDEAPAD_WMI_KEY, { KEY_HELP } },
> >  	{ KE_KEY,	0x0e | IDEAPAD_WMI_KEY, { KEY_PICKUP_PHONE } },
> >  	{ KE_KEY,	0x0f | IDEAPAD_WMI_KEY, { KEY_HANGUP_PHONE } },
> > +	/* Refresh Rate Toggle (Fn+R) */
> > +	{ KE_KEY,	0x10 | IDEAPAD_WMI_KEY, { KEY_DISPLAYTOGGLE } },
> >  	/* Dark mode toggle */
> >  	{ KE_KEY,	0x13 | IDEAPAD_WMI_KEY, { KEY_PROG1 } },
> >  	/* Sound profile switch */
> 
> Acked-by: Ike Panhc <ike.pan@canonical.com>
> 
> BTW on which ideapad we need this patch?
> 

Oh, I somehow missed that. I found it on a Yoga 7 14ARB7.

Newer Yogas and Legions with 60Hz/90Hz displays have this refresh rate
toggle feature.

I'm wondering if this would be worth a new KEY_REFRESH_RATE_TOGGLE
event code? 

KEY_DISPLAYTOGGLE is used to toggle the LCD on/off in other drivers.

What do you think?

Thanks,
Gergo

> Thanks.
> 
> --
> Ike
Re: [PATCH] platform/x86: ideapad-laptop: support Fn+R dual-function key
Posted by Ilpo Järvinen 1 year, 11 months ago
On Mon, 19 Feb 2024, Gergo Koteles wrote:
> On Mon, 2024-02-19 at 10:39 +0800, Ike Panhc wrote:
> > On 2/11/24 06:51, Gergo Koteles wrote:
> > > According to the manual, Fn+R adjusts the display refresh rate.
> > > Map Fn+R to KEY_DISPLAYTOGGLE.
> > > 
> > > Signed-off-by: Gergo Koteles <soyer@irl.hu>

> > > +++ b/drivers/platform/x86/ideapad-laptop.c
> > > @@ -1091,6 +1091,8 @@ static const struct key_entry ideapad_keymap[] = {
> > >  	{ KE_KEY,	0x07 | IDEAPAD_WMI_KEY, { KEY_HELP } },
> > >  	{ KE_KEY,	0x0e | IDEAPAD_WMI_KEY, { KEY_PICKUP_PHONE } },
> > >  	{ KE_KEY,	0x0f | IDEAPAD_WMI_KEY, { KEY_HANGUP_PHONE } },
> > > +	/* Refresh Rate Toggle (Fn+R) */
> > > +	{ KE_KEY,	0x10 | IDEAPAD_WMI_KEY, { KEY_DISPLAYTOGGLE } },
> > >  	/* Dark mode toggle */
> > >  	{ KE_KEY,	0x13 | IDEAPAD_WMI_KEY, { KEY_PROG1 } },
> > >  	/* Sound profile switch */
> > 
> > Acked-by: Ike Panhc <ike.pan@canonical.com>
> > 
> > BTW on which ideapad we need this patch?
> > 
> 
> Oh, I somehow missed that. I found it on a Yoga 7 14ARB7.
> 
> Newer Yogas and Legions with 60Hz/90Hz displays have this refresh rate
> toggle feature.
> 
> I'm wondering if this would be worth a new KEY_REFRESH_RATE_TOGGLE
> event code? 
> 
> KEY_DISPLAYTOGGLE is used to toggle the LCD on/off in other drivers.
> 
> What do you think?

At least to me it felt like an abuse of KEY_DISPLAYTOGGLE because it's 
obviously different. But since there was existing, similar use for it 
already, I didn't push back on it but took your patch.

-- 
 i.
Re: [PATCH] platform/x86: ideapad-laptop: support Fn+R dual-function key
Posted by Ilpo Järvinen 1 year, 12 months ago
On Sat, 10 Feb 2024 23:51:57 +0100, Gergo Koteles wrote:

> According to the manual, Fn+R adjusts the display refresh rate.
> Map Fn+R to KEY_DISPLAYTOGGLE.
> 
> 


Thank you for your contribution, it has been applied to my local
review-ilpo branch. Note it will show up in the public
platform-drivers-x86/review-ilpo branch only once I've pushed my
local branch there, which might take a while.

The list of commits applied:
[1/1] platform/x86: ideapad-laptop: support Fn+R dual-function key
      commit: c5211eacf3326538fbf31b612e5ea546ca8a3425

--
 i.