Re: [PATCH] platform/x86: ideapad-laptop: Userspace expects F20 for mic-mute

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Matheus,

On 20-Feb-25 6:19 PM, Matheus Polkorny wrote:
> In Lenovo LOQ 15IRX9, userspace expects F20 for mic-mute
> KEY_MICMUTE does not work.
> Other machines, such as LOQ 15APH8 and LOQ 15IRH8, also
> use F20 for mic-mute.

The mapping of KEY_MICMUTE is due to a limit in keycodes
(cannot be larger then 247) in X11 / Xorg.

The mapping of this is therefor traditioinally done in
userspace through hwdb, see:

/lib/udev/hwdb.d/60-keyboard.hwdb

Note this mapping is being removed though. Xorg has moved
from having its own keyboard + mouse + touchpad drivers
to using libinput through xf86-input-libinput.

And with libinput the keycodes do reach that driver,
so the mapping of the touchpad-toggle and micmute
keys to F21-F24 is now done inside xf86-input-libinput
because the hwdb solution also impacts wayland and
we would like to move the correct KEY_MICMUTE, etc. in
Wayland. Mainly to free up F21-F24 codes to be actually
used for F21-F24 since some keyboards do have those keys.

See: 

https://gitlab.freedesktop.org/xorg/driver/xf86-input-libinput/-/commit/cb80d7f82d35f8068e06d45860ed958a948e15bf
https://github.com/systemd/systemd/pull/34325/

So NACK for this patch (sorry) for 2 reasons:

1. The mapping of MICMUTE -> F20 belongs in userspace
2. Even userspace is moving away from always doing this
   to only doing it inside Xorg by moving the mapping
   to xf86-input-libinput

Regards,

Hans




> 
> Signed-off-by: Matheus Polkorny <mpolkorny@xxxxxx>
> ---
>  drivers/platform/x86/ideapad-laptop.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> index 30bd366d7b58..6420e28c08ec 100644
> --- a/drivers/platform/x86/ideapad-laptop.c
> +++ b/drivers/platform/x86/ideapad-laptop.c
> @@ -1306,7 +1306,7 @@ static const struct key_entry ideapad_keymap[] = {
>  	/* Refresh Rate Toggle */
>  	{ KE_KEY,	0x0a | IDEAPAD_WMI_KEY, { KEY_REFRESH_RATE_TOGGLE } },
>  	/* Specific to some newer models */
> -	{ KE_KEY,	0x3e | IDEAPAD_WMI_KEY, { KEY_MICMUTE } },
> +	{ KE_KEY,	0x3e | IDEAPAD_WMI_KEY, { KEY_F20 } },
>  	{ KE_KEY,	0x3f | IDEAPAD_WMI_KEY, { KEY_RFKILL } },
>  
>  	{ KE_END },





[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux