* [PATCH] Add support for Acer Predator macro keys
@ 2016-03-06 6:08 Bernhard Rosenkränzer
2016-03-06 6:17 ` Bernhard Rosenkränzer
2016-03-07 5:03 ` joeyli
0 siblings, 2 replies; 4+ messages in thread
From: Bernhard Rosenkränzer @ 2016-03-06 6:08 UTC (permalink / raw)
To: platform-driver-x86; +Cc: jlee, carlos, Bernhard Rosenkränzer
This patch adds support for the macro keys found on
Acer Predator laptops.
Signed-off-by: Bernhard Rosenkränzer <bero@lindev.ch>
---
drivers/platform/x86/acer-wmi.c | 44 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index 1062fa4..e2d333c 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -7,6 +7,9 @@
* Copyright (C) 2005-2007 E.M. Smith
* Copyright (C) 2007-2008 Carlos Corbacho <cathectic@gmail.com>
*
+ * Added support for Acer Predator hotkeys:
+ * Copyright (C) 2016 Bernhard Rosenkraenzer <bero@lindev.ch>
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -94,6 +97,7 @@ MODULE_ALIAS("wmi:676AA15E-6A47-4D9F-A2CC-1E6D18D14026");
enum acer_wmi_event_ids {
WMID_HOTKEY_EVENT = 0x1,
WMID_ACCEL_EVENT = 0x5,
+ WMID_MACROKEY_EVENT = 0x7,
};
static const struct key_entry acer_wmi_keymap[] __initconst = {
@@ -128,6 +132,26 @@ static const struct key_entry acer_wmi_keymap[] __initconst = {
{KE_KEY, KEY_TOUCHPAD_OFF, {KEY_TOUCHPAD_OFF} },
{KE_IGNORE, 0x83, {KEY_TOUCHPAD_TOGGLE} },
{KE_KEY, 0x85, {KEY_TOUCHPAD_TOGGLE} },
+ /* Acer Predator macro keys:
+ * 0xdaXY:
+ * da - magic value (preDAtor)
+ * X - macro key selector state (0: red, 1: blue, 2: green)
+ * Y - key pressed (0: 1, 1: 2, ...) */
+ {KE_KEY, 0xda00, {KEY_PROG1} },
+ {KE_KEY, 0xda01, {KEY_PROG2} },
+ {KE_KEY, 0xda02, {KEY_PROG3} },
+ {KE_KEY, 0xda03, {KEY_PROG4} },
+ {KE_KEY, 0xda04, {KEY_F13} },
+ {KE_KEY, 0xda10, {KEY_F14} },
+ {KE_KEY, 0xda11, {KEY_F15} },
+ {KE_KEY, 0xda12, {KEY_F16} },
+ {KE_KEY, 0xda13, {KEY_F17} },
+ {KE_KEY, 0xda14, {KEY_F18} },
+ {KE_KEY, 0xda20, {KEY_F19} },
+ {KE_KEY, 0xda21, {KEY_F20} },
+ {KE_KEY, 0xda22, {KEY_F21} },
+ {KE_KEY, 0xda23, {KEY_F22} },
+ {KE_KEY, 0xda24, {KEY_F23} },
{KE_END, 0}
};
@@ -232,6 +256,7 @@ static bool ec_raw_mode;
static bool has_type_aa;
static u16 commun_func_bitmap;
static u8 commun_fn_key_number;
+static u8 macro_key_state = 0;
module_param(mailled, int, 0444);
module_param(brightness, int, 0444);
@@ -1731,6 +1756,25 @@ static void acer_wmi_notify(u32 value, void *context)
case WMID_ACCEL_EVENT:
acer_gsensor_event();
break;
+ case WMID_MACROKEY_EVENT:
+ switch(return_value.key_num) {
+ case 1:
+ if(return_value.device_state >= 1 && return_value.device_state <= 3)
+ macro_key_state = return_value.device_state - 1;
+ else
+ pr_warn("acer_wmi: macro key state set to %d (only values 1 to 3 are known)", return_value.device_state);
+ break;
+ case 2:
+ if(return_value.device_state >= 1 && return_value.device_state <= 5)
+ sparse_keymap_report_event(acer_wmi_input_dev, 0xda00 + (macro_key_state<<4) + return_value.device_state-1, 1, true);
+ else
+ pr_warn("acer_wmi: macro key %d pressed (only 1 to 5 are known)", return_value.device_state);
+ break;
+ default:
+ pr_warn("Unknown macro key event: %d %d %d", return_value.key_num, return_value.device_state, return_value.reserved);
+ break;
+ }
+ break;
default:
pr_warn("Unknown function number - %d - %d\n",
return_value.function, return_value.key_num);
--
2.7.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH] Add support for Acer Predator macro keys
2016-03-06 6:08 [PATCH] Add support for Acer Predator macro keys Bernhard Rosenkränzer
@ 2016-03-06 6:17 ` Bernhard Rosenkränzer
2016-05-05 22:40 ` Darren Hart
2016-03-07 5:03 ` joeyli
1 sibling, 1 reply; 4+ messages in thread
From: Bernhard Rosenkränzer @ 2016-03-06 6:17 UTC (permalink / raw)
To: platform-driver-x86; +Cc: jlee, carlos, Bernhard Rosenkränzer
This patch adds support for the macro keys found on
Acer Predator laptops.
Signed-off-by: Bernhard Rosenkränzer <bero@lindev.ch>
---
drivers/platform/x86/acer-wmi.c | 44 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index 1062fa4..4cf0e2b 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -7,6 +7,9 @@
* Copyright (C) 2005-2007 E.M. Smith
* Copyright (C) 2007-2008 Carlos Corbacho <cathectic@gmail.com>
*
+ * Added support for Acer Predator hotkeys:
+ * Copyright (C) 2016 Bernhard Rosenkraenzer <bero@lindev.ch>
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -94,6 +97,7 @@ MODULE_ALIAS("wmi:676AA15E-6A47-4D9F-A2CC-1E6D18D14026");
enum acer_wmi_event_ids {
WMID_HOTKEY_EVENT = 0x1,
WMID_ACCEL_EVENT = 0x5,
+ WMID_MACROKEY_EVENT = 0x7,
};
static const struct key_entry acer_wmi_keymap[] __initconst = {
@@ -128,6 +132,26 @@ static const struct key_entry acer_wmi_keymap[] __initconst = {
{KE_KEY, KEY_TOUCHPAD_OFF, {KEY_TOUCHPAD_OFF} },
{KE_IGNORE, 0x83, {KEY_TOUCHPAD_TOGGLE} },
{KE_KEY, 0x85, {KEY_TOUCHPAD_TOGGLE} },
+ /* Acer Predator macro keys:
+ * 0xdaXY:
+ * da - magic value (preDAtor)
+ * X - macro key selector state (0: red, 1: blue, 2: green)
+ * Y - key pressed (0: 1, 1: 2, ...) */
+ {KE_KEY, 0xda00, {KEY_PROG1} },
+ {KE_KEY, 0xda01, {KEY_PROG2} },
+ {KE_KEY, 0xda02, {KEY_PROG3} },
+ {KE_KEY, 0xda03, {KEY_PROG4} },
+ {KE_KEY, 0xda04, {KEY_F13} },
+ {KE_KEY, 0xda10, {KEY_F14} },
+ {KE_KEY, 0xda11, {KEY_F15} },
+ {KE_KEY, 0xda12, {KEY_F16} },
+ {KE_KEY, 0xda13, {KEY_F17} },
+ {KE_KEY, 0xda14, {KEY_F18} },
+ {KE_KEY, 0xda20, {KEY_F19} },
+ {KE_KEY, 0xda21, {KEY_F20} },
+ {KE_KEY, 0xda22, {KEY_F21} },
+ {KE_KEY, 0xda23, {KEY_F22} },
+ {KE_KEY, 0xda24, {KEY_F23} },
{KE_END, 0}
};
@@ -232,6 +256,7 @@ static bool ec_raw_mode;
static bool has_type_aa;
static u16 commun_func_bitmap;
static u8 commun_fn_key_number;
+static u8 macro_key_state = 0;
module_param(mailled, int, 0444);
module_param(brightness, int, 0444);
@@ -1731,6 +1756,25 @@ static void acer_wmi_notify(u32 value, void *context)
case WMID_ACCEL_EVENT:
acer_gsensor_event();
break;
+ case WMID_MACROKEY_EVENT:
+ switch(return_value.key_num) {
+ case 1:
+ if(return_value.device_state >= 1 && return_value.device_state <= 3)
+ macro_key_state = return_value.device_state - 1;
+ else
+ pr_warn("acer_wmi: macro key state %d requested (only values 1 to 3 are known)\n", return_value.device_state);
+ break;
+ case 2:
+ if(return_value.device_state >= 1 && return_value.device_state <= 5)
+ sparse_keymap_report_event(acer_wmi_input_dev, 0xda00 + (macro_key_state<<4) + return_value.device_state-1, 1, true);
+ else
+ pr_warn("acer_wmi: macro key %d pressed (only 1 to 5 are known)\n", return_value.device_state);
+ break;
+ default:
+ pr_warn("Unknown macro key event: %d %d %d\n", return_value.key_num, return_value.device_state, return_value.reserved);
+ break;
+ }
+ break;
default:
pr_warn("Unknown function number - %d - %d\n",
return_value.function, return_value.key_num);
--
2.7.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] Add support for Acer Predator macro keys
2016-03-06 6:08 [PATCH] Add support for Acer Predator macro keys Bernhard Rosenkränzer
2016-03-06 6:17 ` Bernhard Rosenkränzer
@ 2016-03-07 5:03 ` joeyli
1 sibling, 0 replies; 4+ messages in thread
From: joeyli @ 2016-03-07 5:03 UTC (permalink / raw)
To: Bernhard Rosenkränzer; +Cc: platform-driver-x86, carlos
On Sun, Mar 06, 2016 at 07:08:59AM +0100, Bernhard Rosenkränzer wrote:
> This patch adds support for the macro keys found on
> Acer Predator laptops.
>
> Signed-off-by: Bernhard Rosenkränzer <bero@lindev.ch>
Acked-by: Lee, Chun-Yi <jlee@suse.com>
Thanks a lot!
Joey Lee
> ---
> drivers/platform/x86/acer-wmi.c | 44 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 44 insertions(+)
>
> diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
> index 1062fa4..e2d333c 100644
> --- a/drivers/platform/x86/acer-wmi.c
> +++ b/drivers/platform/x86/acer-wmi.c
> @@ -7,6 +7,9 @@
> * Copyright (C) 2005-2007 E.M. Smith
> * Copyright (C) 2007-2008 Carlos Corbacho <cathectic@gmail.com>
> *
> + * Added support for Acer Predator hotkeys:
> + * Copyright (C) 2016 Bernhard Rosenkraenzer <bero@lindev.ch>
> + *
> * This program is free software; you can redistribute it and/or modify
> * it under the terms of the GNU General Public License as published by
> * the Free Software Foundation; either version 2 of the License, or
> @@ -94,6 +97,7 @@ MODULE_ALIAS("wmi:676AA15E-6A47-4D9F-A2CC-1E6D18D14026");
> enum acer_wmi_event_ids {
> WMID_HOTKEY_EVENT = 0x1,
> WMID_ACCEL_EVENT = 0x5,
> + WMID_MACROKEY_EVENT = 0x7,
> };
>
> static const struct key_entry acer_wmi_keymap[] __initconst = {
> @@ -128,6 +132,26 @@ static const struct key_entry acer_wmi_keymap[] __initconst = {
> {KE_KEY, KEY_TOUCHPAD_OFF, {KEY_TOUCHPAD_OFF} },
> {KE_IGNORE, 0x83, {KEY_TOUCHPAD_TOGGLE} },
> {KE_KEY, 0x85, {KEY_TOUCHPAD_TOGGLE} },
> + /* Acer Predator macro keys:
> + * 0xdaXY:
> + * da - magic value (preDAtor)
> + * X - macro key selector state (0: red, 1: blue, 2: green)
> + * Y - key pressed (0: 1, 1: 2, ...) */
> + {KE_KEY, 0xda00, {KEY_PROG1} },
> + {KE_KEY, 0xda01, {KEY_PROG2} },
> + {KE_KEY, 0xda02, {KEY_PROG3} },
> + {KE_KEY, 0xda03, {KEY_PROG4} },
> + {KE_KEY, 0xda04, {KEY_F13} },
> + {KE_KEY, 0xda10, {KEY_F14} },
> + {KE_KEY, 0xda11, {KEY_F15} },
> + {KE_KEY, 0xda12, {KEY_F16} },
> + {KE_KEY, 0xda13, {KEY_F17} },
> + {KE_KEY, 0xda14, {KEY_F18} },
> + {KE_KEY, 0xda20, {KEY_F19} },
> + {KE_KEY, 0xda21, {KEY_F20} },
> + {KE_KEY, 0xda22, {KEY_F21} },
> + {KE_KEY, 0xda23, {KEY_F22} },
> + {KE_KEY, 0xda24, {KEY_F23} },
> {KE_END, 0}
> };
>
> @@ -232,6 +256,7 @@ static bool ec_raw_mode;
> static bool has_type_aa;
> static u16 commun_func_bitmap;
> static u8 commun_fn_key_number;
> +static u8 macro_key_state = 0;
>
> module_param(mailled, int, 0444);
> module_param(brightness, int, 0444);
> @@ -1731,6 +1756,25 @@ static void acer_wmi_notify(u32 value, void *context)
> case WMID_ACCEL_EVENT:
> acer_gsensor_event();
> break;
> + case WMID_MACROKEY_EVENT:
> + switch(return_value.key_num) {
> + case 1:
> + if(return_value.device_state >= 1 && return_value.device_state <= 3)
> + macro_key_state = return_value.device_state - 1;
> + else
> + pr_warn("acer_wmi: macro key state set to %d (only values 1 to 3 are known)", return_value.device_state);
> + break;
> + case 2:
> + if(return_value.device_state >= 1 && return_value.device_state <= 5)
> + sparse_keymap_report_event(acer_wmi_input_dev, 0xda00 + (macro_key_state<<4) + return_value.device_state-1, 1, true);
> + else
> + pr_warn("acer_wmi: macro key %d pressed (only 1 to 5 are known)", return_value.device_state);
> + break;
> + default:
> + pr_warn("Unknown macro key event: %d %d %d", return_value.key_num, return_value.device_state, return_value.reserved);
> + break;
> + }
> + break;
> default:
> pr_warn("Unknown function number - %d - %d\n",
> return_value.function, return_value.key_num);
> --
> 2.7.2
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Add support for Acer Predator macro keys
2016-03-06 6:17 ` Bernhard Rosenkränzer
@ 2016-05-05 22:40 ` Darren Hart
0 siblings, 0 replies; 4+ messages in thread
From: Darren Hart @ 2016-05-05 22:40 UTC (permalink / raw)
To: Bernhard Rosenkränzer; +Cc: platform-driver-x86, jlee, carlos
On Sun, Mar 06, 2016 at 07:17:29AM +0100, Bernhard Rosenkränzer wrote:
> This patch adds support for the macro keys found on
> Acer Predator laptops.
Hi Bernhard,
Thank you for your patch.
In your future submissions, please include all the maintainers listed in
MAINTAINERS in your Cc list. My scripts catch these and I get to them
eventually, but it's after all those that hit my inbox directly.
The patch seems generally good, however it has a number of style issues which
checkpatch catches. Please run checkpatch on this patch, correct the style
issues, and resubmit.
Thanks,
--
Darren Hart
Intel Open Source Technology Center
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-05-05 22:40 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-06 6:08 [PATCH] Add support for Acer Predator macro keys Bernhard Rosenkränzer
2016-03-06 6:17 ` Bernhard Rosenkränzer
2016-05-05 22:40 ` Darren Hart
2016-03-07 5:03 ` joeyli
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox