diff mbox

platform/x86: thinkpad_acpi: Add support for calculator hotkey

Message ID 20180619155152.4984-1-bberg@redhat.com (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Benjamin Berg June 19, 2018, 3:51 p.m. UTC
The P52 has a keyboard which features a calculator key above the numpad.
Add support for this the calculator key (0x1313).

Signed-off-by: Benjamin Berg <bberg@redhat.com>
---
 drivers/platform/x86/thinkpad_acpi.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Henrique de Moraes Holschuh June 19, 2018, 6:12 p.m. UTC | #1
On Tue, 19 Jun 2018, Benjamin Berg wrote:
> The P52 has a keyboard which features a calculator key above the numpad.
> Add support for this the calculator key (0x1313).
> 
> Signed-off-by: Benjamin Berg <bberg@redhat.com>
> ---
>  drivers/platform/x86/thinkpad_acpi.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> index cae9b0595692..6c979fe44ea7 100644
> --- a/drivers/platform/x86/thinkpad_acpi.c
> +++ b/drivers/platform/x86/thinkpad_acpi.c
> @@ -1928,7 +1928,7 @@ enum {	/* hot key scan codes (derived from ACPI DSDT) */
>  	/* first new observed key (star, favorites) is 0x1311 */
>  	TP_ACPI_HOTKEYSCAN_STAR = 69,
>  	TP_ACPI_HOTKEYSCAN_CLIPPING_TOOL2,
> -	TP_ACPI_HOTKEYSCAN_UNK25,
> +	TP_ACPI_HOTKEYSCAN_CALCULATOR,
>  	TP_ACPI_HOTKEYSCAN_BLUETOOTH,
>  	TP_ACPI_HOTKEYSCAN_KEYBOARD,
>  
> @@ -3449,7 +3449,7 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
>  
>  		KEY_FAVORITES,       /* Favorite app, 0x311 */
>  		KEY_RESERVED,        /* Clipping tool */
> -		KEY_RESERVED,
> +		KEY_CALC,            /* Calculator (above numpad), 0x313 */

Replace 0x313 with (P52) please.

Other than that,
Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>


That said, it would be nice to know if other models also have this
hotkey, especially if it has a different meaning (in which case we just
special-case the keymap in the driver, so it is *not* a problem).
Benjamin Berg June 19, 2018, 7:19 p.m. UTC | #2
On Tue, 2018-06-19 at 15:12 -0300, Henrique de Moraes Holschuh wrote:
> On Tue, 19 Jun 2018, Benjamin Berg wrote:
> > The P52 has a keyboard which features a calculator key above the
> > numpad.
> > Add support for this the calculator key (0x1313).
> > 
> > Signed-off-by: Benjamin Berg <bberg@redhat.com>
> > ---
> >  drivers/platform/x86/thinkpad_acpi.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/platform/x86/thinkpad_acpi.c
> > b/drivers/platform/x86/thinkpad_acpi.c
> > index cae9b0595692..6c979fe44ea7 100644
> > --- a/drivers/platform/x86/thinkpad_acpi.c
> > +++ b/drivers/platform/x86/thinkpad_acpi.c
> > @@ -1928,7 +1928,7 @@ enum {	/* hot key scan codes (derived
> > from ACPI DSDT) */
> >  	/* first new observed key (star, favorites) is 0x1311 */
> >  	TP_ACPI_HOTKEYSCAN_STAR = 69,
> >  	TP_ACPI_HOTKEYSCAN_CLIPPING_TOOL2,
> > -	TP_ACPI_HOTKEYSCAN_UNK25,
> > +	TP_ACPI_HOTKEYSCAN_CALCULATOR,
> >  	TP_ACPI_HOTKEYSCAN_BLUETOOTH,
> >  	TP_ACPI_HOTKEYSCAN_KEYBOARD,
> >  
> > @@ -3449,7 +3449,7 @@ static int __init hotkey_init(struct
> > ibm_init_struct *iibm)
> >  
> >  		KEY_FAVORITES,       /* Favorite app, 0x311 */
> >  		KEY_RESERVED,        /* Clipping tool */
> > -		KEY_RESERVED,
> > +		KEY_CALC,            /* Calculator (above numpad),
> > 0x313 */
> 
> Replace 0x313 with (P52) please.

Sure.

> Other than that,
> Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
> 
> 
> That said, it would be nice to know if other models also have this
> hotkey, especially if it has a different meaning (in which case we just
> special-case the keymap in the driver, so it is *not* a problem).

I believe this is not specific to the P52 but simply the keyboard
version that includes a numpad. I only have the P52, but looking at
photos of e.g. the T570 and T580 the keyboard looks identical there.

On a different note, these keyboards also have "=", "(" and ")" keys
above the numpad. These keys emit the key combinations required for a
US keyboard layout on the P52 I have. I do believe there is a way to
set the keyboard layout through ACPI which I suspect changes the
emitted keycodes to match the expected values for other layouts.
Unfortunately supporting that seems quite involved.

Benjamin
Henrique de Moraes Holschuh June 20, 2018, 12:51 p.m. UTC | #3
On Tue, 19 Jun 2018, Benjamin Berg wrote:
> > That said, it would be nice to know if other models also have this
> > hotkey, especially if it has a different meaning (in which case we just
> > special-case the keymap in the driver, so it is *not* a problem).
> 
> I believe this is not specific to the P52 but simply the keyboard
> version that includes a numpad. I only have the P52, but looking at
> photos of e.g. the T570 and T580 the keyboard looks identical there.

Hopefully we get a report from an user of these keyboards.  Identical is
good, the only issue would be if they were not identical...

> On a different note, these keyboards also have "=", "(" and ")" keys
> above the numpad. These keys emit the key combinations required for a
> US keyboard layout on the P52 I have. I do believe there is a way to
> set the keyboard layout through ACPI which I suspect changes the
> emitted keycodes to match the expected values for other layouts.
> Unfortunately supporting that seems quite involved.

Yikes.  Hopefully we won't need to mess with this.
diff mbox

Patch

diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index cae9b0595692..6c979fe44ea7 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -1928,7 +1928,7 @@  enum {	/* hot key scan codes (derived from ACPI DSDT) */
 	/* first new observed key (star, favorites) is 0x1311 */
 	TP_ACPI_HOTKEYSCAN_STAR = 69,
 	TP_ACPI_HOTKEYSCAN_CLIPPING_TOOL2,
-	TP_ACPI_HOTKEYSCAN_UNK25,
+	TP_ACPI_HOTKEYSCAN_CALCULATOR,
 	TP_ACPI_HOTKEYSCAN_BLUETOOTH,
 	TP_ACPI_HOTKEYSCAN_KEYBOARD,
 
@@ -3449,7 +3449,7 @@  static int __init hotkey_init(struct ibm_init_struct *iibm)
 
 		KEY_FAVORITES,       /* Favorite app, 0x311 */
 		KEY_RESERVED,        /* Clipping tool */
-		KEY_RESERVED,
+		KEY_CALC,            /* Calculator (above numpad), 0x313 */
 		KEY_BLUETOOTH,       /* Bluetooth */
 		KEY_KEYBOARD         /* Keyboard, 0x315 */
 		},