Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1404999 > unrolled thread
| Started by | Pali Rohár <pali.rohar@gmail.com> |
|---|---|
| First post | 2016-05-22 13:40 +0200 |
| Last post | 2016-05-27 00:10 +0200 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH 0/4] dell-wmi: Changes in WMI event code handling Pali Rohár <pali.rohar@gmail.com> - 2016-05-22 13:40 +0200
[PATCH 2/4] dell-wmi: Sort WMI event codes and update comments Pali Rohár <pali.rohar@gmail.com> - 2016-05-22 13:40 +0200
[PATCH 3/4] dell-wmi: Add information about other WMI event codes Pali Rohár <pali.rohar@gmail.com> - 2016-05-22 13:40 +0200
Re: [PATCH 3/4] dell-wmi: Add information about other WMI event codes Gabriele Mazzotta <gabriele.mzt@gmail.com> - 2016-05-27 00:10 +0200
| From | Pali Rohár <pali.rohar@gmail.com> |
|---|---|
| Date | 2016-05-22 13:40 +0200 |
| Subject | [PATCH 0/4] dell-wmi: Changes in WMI event code handling |
| Message-ID | <rBzTH-dM-3@gated-at.bofh.it> |
First patch describe problem about 0xe045 code. Second and third are just
cosmetic and last rework code which processing WMI events. It should be
properly tested on more Dell machines, to check that everything is still
working correctly.
Pali Rohár (4):
dell-wmi: Ignore WMI event code 0xe045
dell-wmi: Sort WMI event codes and update comments
dell-wmi: Add information about other WMI event codes
dell-wmi: Rework code for generating sparse keymap and processing WMI
events
drivers/platform/x86/dell-wmi.c | 285 +++++++++++++++++++++++----------------
1 file changed, 166 insertions(+), 119 deletions(-)
--
1.7.9.5
[toc] | [next] | [standalone]
| From | Pali Rohár <pali.rohar@gmail.com> |
|---|---|
| Date | 2016-05-22 13:40 +0200 |
| Subject | [PATCH 2/4] dell-wmi: Sort WMI event codes and update comments |
| Message-ID | <rBzTI-dM-13@gated-at.bofh.it> |
| In reply to | #1404999 |
Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
---
drivers/platform/x86/dell-wmi.c | 31 ++++++++++++++++++-------------
1 file changed, 18 insertions(+), 13 deletions(-)
diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
index 4d23c91..363d927 100644
--- a/drivers/platform/x86/dell-wmi.c
+++ b/drivers/platform/x86/dell-wmi.c
@@ -86,31 +86,32 @@ static const struct dmi_system_id dell_wmi_smbios_list[] __initconst = {
*/
static const struct key_entry dell_wmi_legacy_keymap[] __initconst = {
- { KE_IGNORE, 0x003a, { KEY_CAPSLOCK } },
- { KE_KEY, 0xe009, { KEY_EJECTCD } },
+ { KE_IGNORE, 0x003a, { KEY_CAPSLOCK } },
- /* These also contain the brightness level at offset 6 */
- { KE_KEY, 0xe006, { KEY_BRIGHTNESSUP } },
- { KE_KEY, 0xe005, { KEY_BRIGHTNESSDOWN } },
+ /* These also contain the brightness level after key code */
+ { KE_KEY, 0xe006, { KEY_BRIGHTNESSUP } },
+ { KE_KEY, 0xe005, { KEY_BRIGHTNESSDOWN } },
/* Battery health status button */
- { KE_KEY, 0xe007, { KEY_BATTERY } },
+ { KE_KEY, 0xe007, { KEY_BATTERY } },
- /* Radio devices state change */
+ /* Radio devices state change, also contains additional information */
{ KE_IGNORE, 0xe008, { KEY_RFKILL } },
- /* The next device is at offset 6, the active devices are at
- offset 8 and the attached devices at offset 10 */
- { KE_KEY, 0xe00b, { KEY_SWITCHVIDEOMODE } },
+ { KE_KEY, 0xe009, { KEY_EJECTCD } },
+ /* After key code is: next device, active devices, attached devices */
+ { KE_KEY, 0xe00b, { KEY_SWITCHVIDEOMODE } },
+
+ /* Also contains keyboard illumination level after key code */
{ KE_IGNORE, 0xe00c, { KEY_KBDILLUMTOGGLE } },
/* BIOS error detected */
{ KE_IGNORE, 0xe00d, { KEY_RESERVED } },
/* Wifi Catcher */
- { KE_KEY, 0xe011, {KEY_PROG2 } },
+ { KE_KEY, 0xe011, { KEY_PROG2 } },
/* Ambient light sensor toggle */
{ KE_IGNORE, 0xe013, { KEY_RESERVED } },
@@ -118,12 +119,14 @@ static const struct key_entry dell_wmi_legacy_keymap[] __initconst = {
{ KE_IGNORE, 0xe020, { KEY_MUTE } },
/* Dell Instant Launch key */
- { KE_KEY, 0xe025, { KEY_PROG4 } },
- { KE_KEY, 0xe029, { KEY_PROG4 } },
+ { KE_KEY, 0xe025, { KEY_PROG4 } },
/* Audio panel key */
{ KE_IGNORE, 0xe026, { KEY_RESERVED } },
+ /* Dell Instant Launch key */
+ { KE_KEY, 0xe029, { KEY_PROG4 } },
+
{ KE_IGNORE, 0xe02e, { KEY_VOLUMEDOWN } },
{ KE_IGNORE, 0xe030, { KEY_VOLUMEUP } },
{ KE_IGNORE, 0xe033, { KEY_KBDILLUMUP } },
@@ -146,7 +149,9 @@ static const struct key_entry dell_wmi_legacy_keymap[] __initconst = {
{ KE_IGNORE, 0xe0f7, { KEY_MUTE } },
{ KE_IGNORE, 0xe0f8, { KEY_VOLUMEDOWN } },
{ KE_IGNORE, 0xe0f9, { KEY_VOLUMEUP } },
+
{ KE_END, 0 }
+
};
static bool dell_new_hk_type;
--
1.7.9.5
[toc] | [prev] | [next] | [standalone]
| From | Pali Rohár <pali.rohar@gmail.com> |
|---|---|
| Date | 2016-05-22 13:40 +0200 |
| Subject | [PATCH 3/4] dell-wmi: Add information about other WMI event codes |
| Message-ID | <rBzTI-dM-15@gated-at.bofh.it> |
| In reply to | #1404999 |
ACPI DSDT tables have defined other WMI codes, but does not contain any
description when those codes are emitted. Some other codes can be found in
logs on internet. In this patch are all which I saw, but lot of them are
not tested properly (e.g. for duplicate events with AT keyboard). Now we
have all WMI event codes at one place and in future after proper testing
those codes can be correctly enabled or disabled...
Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
---
drivers/platform/x86/dell-wmi.c | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
index 363d927..7aac1dc 100644
--- a/drivers/platform/x86/dell-wmi.c
+++ b/drivers/platform/x86/dell-wmi.c
@@ -110,6 +110,9 @@ static const struct key_entry dell_wmi_legacy_keymap[] __initconst = {
/* BIOS error detected */
{ KE_IGNORE, 0xe00d, { KEY_RESERVED } },
+ /* Unknown, defined in ACPI DSDT */
+ /* { KE_IGNORE, 0xe00e, { KEY_RESERVED } }, */
+
/* Wifi Catcher */
{ KE_KEY, 0xe011, { KEY_PROG2 } },
@@ -118,21 +121,45 @@ static const struct key_entry dell_wmi_legacy_keymap[] __initconst = {
{ KE_IGNORE, 0xe020, { KEY_MUTE } },
+ /* Unknown, defined in ACPI DSDT */
+ /* { KE_IGNORE, 0xe023, { KEY_RESERVED } }, */
+
+ /* Untested, Dell Instant Launch key on Inspiron 7520 */
+ /* { KE_IGNORE, 0xe024, { KEY_RESERVED } }, */
+
/* Dell Instant Launch key */
{ KE_KEY, 0xe025, { KEY_PROG4 } },
/* Audio panel key */
{ KE_IGNORE, 0xe026, { KEY_RESERVED } },
+ /* Untested, Multimedia key on Dell Vostro 3560 */
+ /* { KE_IGNORE, 0xe028, { KEY_RESERVED } }, */
+
/* Dell Instant Launch key */
{ KE_KEY, 0xe029, { KEY_PROG4 } },
+ /* Untested, Windows Mobility Center button on Inspiron 7520 */
+ /* { KE_IGNORE, 0xe02a, { KEY_RESERVED } }, */
+
+ /* Unknown, defined in ACPI DSDT */
+ /* { KE_IGNORE, 0xe02b, { KEY_RESERVED } }, */
+
+ /* Untested, Dell Audio With Preset Switch button on Inspiron 7520 */
+ /* { KE_IGNORE, 0xe02c, { KEY_RESERVED } }, */
+
{ KE_IGNORE, 0xe02e, { KEY_VOLUMEDOWN } },
{ KE_IGNORE, 0xe030, { KEY_VOLUMEUP } },
{ KE_IGNORE, 0xe033, { KEY_KBDILLUMUP } },
{ KE_IGNORE, 0xe034, { KEY_KBDILLUMDOWN } },
{ KE_IGNORE, 0xe03a, { KEY_CAPSLOCK } },
+ /* NIC Link is Up */
+ { KE_IGNORE, 0xe043, { KEY_RESERVED } },
+
+ /* NIC Link is Down */
+ { KE_IGNORE, 0xe044, { KEY_RESERVED } },
+
/*
* This entry is very suspicious!
* Originally Matthew Garrett created this dell-wmi driver specially for
@@ -145,7 +172,12 @@ static const struct key_entry dell_wmi_legacy_keymap[] __initconst = {
*/
{ KE_IGNORE, 0xe045, { KEY_NUMLOCK } },
+ /* Scroll lock and also going to tablet mode on portable devices */
{ KE_IGNORE, 0xe046, { KEY_SCROLLLOCK } },
+
+ /* Untested, going from tablet mode on portable devices */
+ /* { KE_IGNORE, 0xe047, { KEY_RESERVED } }, */
+
{ KE_IGNORE, 0xe0f7, { KEY_MUTE } },
{ KE_IGNORE, 0xe0f8, { KEY_VOLUMEDOWN } },
{ KE_IGNORE, 0xe0f9, { KEY_VOLUMEUP } },
--
1.7.9.5
[toc] | [prev] | [next] | [standalone]
| From | Gabriele Mazzotta <gabriele.mzt@gmail.com> |
|---|---|
| Date | 2016-05-27 00:10 +0200 |
| Subject | Re: [PATCH 3/4] dell-wmi: Add information about other WMI event codes |
| Message-ID | <rDbDz-3vK-7@gated-at.bofh.it> |
| In reply to | #1405001 |
On 22/05/2016 13:36, Pali Rohár wrote:
> ACPI DSDT tables have defined other WMI codes, but does not contain any
> description when those codes are emitted. Some other codes can be found in
> logs on internet. In this patch are all which I saw, but lot of them are
> not tested properly (e.g. for duplicate events with AT keyboard). Now we
> have all WMI event codes at one place and in future after proper testing
> those codes can be correctly enabled or disabled...
>
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> ---
> drivers/platform/x86/dell-wmi.c | 32 ++++++++++++++++++++++++++++++++
> 1 file changed, 32 insertions(+)
>
> diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
> index 363d927..7aac1dc 100644
> --- a/drivers/platform/x86/dell-wmi.c
> +++ b/drivers/platform/x86/dell-wmi.c
> @@ -110,6 +110,9 @@ static const struct key_entry dell_wmi_legacy_keymap[] __initconst = {
> /* BIOS error detected */
> { KE_IGNORE, 0xe00d, { KEY_RESERVED } },
>
> + /* Unknown, defined in ACPI DSDT */
> + /* { KE_IGNORE, 0xe00e, { KEY_RESERVED } }, */
> +
I'm interested in knowing what's the meaning of this 0xe00e. This
event is sent multiple times when I suspend/resume my laptop and
it's definitely not a keypress.
Anyway, I've been using this patch set and didn't notice any issue, so
Tested-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
> /* Wifi Catcher */
> { KE_KEY, 0xe011, { KEY_PROG2 } },
>
> @@ -118,21 +121,45 @@ static const struct key_entry dell_wmi_legacy_keymap[] __initconst = {
>
> { KE_IGNORE, 0xe020, { KEY_MUTE } },
>
> + /* Unknown, defined in ACPI DSDT */
> + /* { KE_IGNORE, 0xe023, { KEY_RESERVED } }, */
> +
> + /* Untested, Dell Instant Launch key on Inspiron 7520 */
> + /* { KE_IGNORE, 0xe024, { KEY_RESERVED } }, */
> +
> /* Dell Instant Launch key */
> { KE_KEY, 0xe025, { KEY_PROG4 } },
>
> /* Audio panel key */
> { KE_IGNORE, 0xe026, { KEY_RESERVED } },
>
> + /* Untested, Multimedia key on Dell Vostro 3560 */
> + /* { KE_IGNORE, 0xe028, { KEY_RESERVED } }, */
> +
> /* Dell Instant Launch key */
> { KE_KEY, 0xe029, { KEY_PROG4 } },
>
> + /* Untested, Windows Mobility Center button on Inspiron 7520 */
> + /* { KE_IGNORE, 0xe02a, { KEY_RESERVED } }, */
> +
> + /* Unknown, defined in ACPI DSDT */
> + /* { KE_IGNORE, 0xe02b, { KEY_RESERVED } }, */
> +
> + /* Untested, Dell Audio With Preset Switch button on Inspiron 7520 */
> + /* { KE_IGNORE, 0xe02c, { KEY_RESERVED } }, */
> +
> { KE_IGNORE, 0xe02e, { KEY_VOLUMEDOWN } },
> { KE_IGNORE, 0xe030, { KEY_VOLUMEUP } },
> { KE_IGNORE, 0xe033, { KEY_KBDILLUMUP } },
> { KE_IGNORE, 0xe034, { KEY_KBDILLUMDOWN } },
> { KE_IGNORE, 0xe03a, { KEY_CAPSLOCK } },
>
> + /* NIC Link is Up */
> + { KE_IGNORE, 0xe043, { KEY_RESERVED } },
> +
> + /* NIC Link is Down */
> + { KE_IGNORE, 0xe044, { KEY_RESERVED } },
> +
> /*
> * This entry is very suspicious!
> * Originally Matthew Garrett created this dell-wmi driver specially for
> @@ -145,7 +172,12 @@ static const struct key_entry dell_wmi_legacy_keymap[] __initconst = {
> */
> { KE_IGNORE, 0xe045, { KEY_NUMLOCK } },
>
> + /* Scroll lock and also going to tablet mode on portable devices */
> { KE_IGNORE, 0xe046, { KEY_SCROLLLOCK } },
> +
> + /* Untested, going from tablet mode on portable devices */
> + /* { KE_IGNORE, 0xe047, { KEY_RESERVED } }, */
> +
> { KE_IGNORE, 0xe0f7, { KEY_MUTE } },
> { KE_IGNORE, 0xe0f8, { KEY_VOLUMEDOWN } },
> { KE_IGNORE, 0xe0f9, { KEY_VOLUMEUP } },
>
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web