lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <62871f1b-85aa-4d8c-82a1-2fb65be83094@kernel.org>
Date: Mon, 14 Jul 2025 15:27:58 +0200
From: Hans de Goede <hansg@...nel.org>
To: Anton Khirnov <anton@...rnov.net>,
 Corentin Chary <corentin.chary@...il.com>, "Luke D. Jones"
 <luke@...nes.dev>, Ilpo Järvinen
 <ilpo.jarvinen@...ux.intel.com>
Cc: platform-driver-x86@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] platform/x86: asus-wmi: map more keys on ExpertBook B9

Hi,

On 14-Jul-25 14:57, Anton Khirnov wrote:
> Hi Hans,
> Quoting Hans de Goede (2025-07-14 14:34:04)
>> Hi,
>>
>> On 2-Jul-25 09:02, Anton Khirnov wrote:
>>> * there is a dedicated "noise cancel" key in top row, between mic mute
>>>   and PrintScreen; it sends 0xCA when pressed by itself (mapped to F14),
>>>   0xCB with Fn (mapped to F15)
>>> * Fn+f sends 0x9D; it is not documented in the manual, but some web
>>>   search results mention "asus intelligent performance"; mapped to PROG2
>>> * Fn+space sends 0x5B; it is not documented or mentioned anywhere I
>>>   could find; mapped to PROG3
>>>
>>> Signed-off-by: Anton Khirnov <anton@...rnov.net>
>>> ---
>>>  drivers/platform/x86/asus-nb-wmi.c | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/x86/asus-nb-wmi.c
>>> index 3f8b2a324efd..42d7b435ba63 100644
>>> --- a/drivers/platform/x86/asus-nb-wmi.c
>>> +++ b/drivers/platform/x86/asus-nb-wmi.c
>>> @@ -573,6 +573,7 @@ static const struct key_entry asus_nb_wmi_keymap[] = {
>>>  	{ KE_KEY, 0x55, { KEY_CALC } },
>>>  	{ KE_IGNORE, 0x57, },  /* Battery mode */
>>>  	{ KE_IGNORE, 0x58, },  /* AC mode */
>>> +	{ KE_KEY, 0x5B, { KEY_PROG3 } }, /* Fn+space */
>>
>> What is this key-combo supposed to do, is there any icon for this on
>> the spacebar? What does it do under Windows?
> 
> I don't have Windows installed, so I cannot test what any of these keys
> do there.
> 
> I searched the web for any mentions of this key combination and found
> nothing whatsoever, the manual is also silent. But it does generate an
> event, so it seemed reasonable to make use of it.
>
>> Based on other laptops I would expect this to maybe need to be
>> KEY_KBDILLUMTOGGLE, which toggles the kbd backlight on/off ?
> 
> Keyboard backlight is Fn+F7 on this laptop. That said, I'm fine with any
> key that is acceptable to you and/or other maintainers.

Ok, so no KEY_KBDILLUMTOGGLE then if that already is at Fn+F7

So lets stick with a KEY_PROG# option here,
note asus-nb-wmi already used PROG# for:

        { KE_KEY, 0x38, { KEY_PROG3 } }, /* Armoury Crate */
        { KE_KEY, 0x86, { KEY_PROG1 } }, /* MyASUS Key */
        { KE_KEY, 0xB3, { KEY_PROG4 } }, /* AURA */
        { KE_KEY, 0xFA, { KEY_PROG2 } }, /* Lid flip action */
        { KE_KEY, 0xBD, { KEY_PROG2 } }, /* Lid flip action on ROG xflow */
 
I guess you checked that this laptop does not send the 0x83 / "Armoury Crate"
events? What about 0x86 / "MyAsus"? If there is no MyAsus key I would prefer
to use KEY_PROG1 here.

Or you can add a KEY_FN_SPACE to input-event-codes.h grouping it together
with the existing Fn + X combos there.

> 
>>
>>>  	{ KE_KEY, 0x5C, { KEY_F15 } },  /* Power Gear key */
>>
>> Why KEY_F15, Why not some other KEY_ ? Generally speaking
>> the key-code send should match the intended purpose of
>> they key / key-combo. E.g. If the button opens
>> the control-panel under Windows use KEY_CONTROLPANEL
> 
> Err I'm not doing anything to this one.

My bad, sorry.

>>> @@ -609,6 +610,7 @@ static const struct key_entry asus_nb_wmi_keymap[] = {
>>>  	{ KE_KEY, 0x93, { KEY_SWITCHVIDEOMODE } }, /* SDSP LCD + CRT + TV + DVI */
>>>  	{ KE_KEY, 0x95, { KEY_MEDIA } },
>>>  	{ KE_KEY, 0x99, { KEY_PHONE } }, /* Conflicts with fan mode switch */
>>> +	{ KE_KEY, 0X9D, { KEY_PROG2 } }, /* Fn+f */
>>
>> Same remark as on the other keys. what does this do under Windows ?
> 
> As per above, cannot test. But in this case a web search suggests that
> (on some other Asus laptop) it switches between performance profiles.

You can use KEY_FN_F for this one then.

>>> @@ -623,6 +625,8 @@ static const struct key_entry asus_nb_wmi_keymap[] = {
>>>  	{ KE_IGNORE, 0xC0, }, /* External display connect/disconnect notification */
>>>  	{ KE_KEY, 0xC4, { KEY_KBDILLUMUP } },
>>>  	{ KE_KEY, 0xC5, { KEY_KBDILLUMDOWN } },
>>> +	{ KE_KEY, 0xCA, { KEY_F14 } }, /* Noise cancelling on Expertbook B9 */
>>
>> KEY_SOUND ?
> 
> Can do, but then what about the fn+ version? Ideally they should be
> related.

Hmm, can use KEY_PROG3 + KEY_PROG4, assuming that the Fn+ spacebar becomes
KEY_PROG1 and that KEY_PROG3 / PROG4 are otherwise free ?

If not then why start at KEY_F14 and not at KEY_F13, does this laptop's
keyboard has a key which sends:


        { KE_KEY, 0x71, { KEY_F13 } }, /* General-purpose button */

Also are there no conflicts with some of the other entries which send
F14 / F15 ?

As in no other keys which generate the existing codes mapped
to F13 / F14 / F15 ?
 
>>> +	{ KE_KEY, 0xCB, { KEY_F15 } }, /* Fn+noise-cancel */
>>
>> What does Fn + noise-cancel do under Windows ?
> 
> As per the manual:
> 
>   Built-in microphone: Toggles between single presenter conference call
>                        mode or multi presenter conference call mode.
>   External microphone: Toggles ASUS AI Noise-Canceling.

Thanks.

Regards,

Hans


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ