From: Oleksandr Natalenko <oleksandr@natalenko.name>
To: platform-driver-x86@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
"Matthew Garrett" <mjg59@srcf.ucam.org>,
"Pali Rohár" <pali.rohar@gmail.com>,
"Darren Hart" <dvhart@infradead.org>,
"Andy Shevchenko" <andy@infradead.org>,
"Mario Limonciello" <mario_limonciello@dell.com>
Subject: Dell Vostro 3360 multimedia keys
Date: Mon, 20 Nov 2017 16:08:41 +0100 [thread overview]
Message-ID: <5089742.2pBsoxBtzf@natalenko.name> (raw)
Hi.
I've got Dell Vostro 3360 with extra multimedia keys as shown here [1], but
have no luck to get them working.
I've modified dell_wmi_smbios_list structure in drivers/platform/x86/dell-
wmi.c adding new entry:
===
84 {
85 .callback = dmi_matched,
86 .ident = "Dell Vostro 3360",
87 .matches = {
88 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
89 DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3360"),
90 },
91 },
===
While pressing keys "1" and/or "2" I get the following notice in dmesg:
===
Nov 20 15:53:35 spock kernel: dell_wmi: Unknown key with type 0x0000 and code
0xe0f0 pressed
===
(it is the same for both keys)
While pressing key "3" I get the following:
===
Nov 20 15:36:51 spock kernel: atkbd serio0: Unknown key pressed (translated
set 2, code 0x60 on isa0060/serio0).
Nov 20 15:36:51 spock kernel: atkbd serio0: Use 'setkeycodes 60 <keycode>' to
make it known.
===
Here is what I've found in DSDT:
===
Method (_Q70, 0, NotSerialized) // _Qxx: EC Query
{
P8XH (Zero, 0x70)
Notify (MBT1, 0x80) // Status Change
^^^^AMW0.INF0 = 0x04
^^^^AMW0.INF1 = Zero
^^^^AMW0.INF2 = 0xE0F0
^^^^AMW0.INF3 = One
Notify (AMW0, 0xD0) // Hardware-Specific
}
Method (_QAF, 0, NotSerialized) // _Qxx: EC Query
{
P8XH (Zero, 0xAF)
Notify (MBT, 0x80) // Status Change
^^^^AMW0.INF0 = 0x04
^^^^AMW0.INF1 = Zero
^^^^AMW0.INF2 = 0xE0F0
^^^^AMW0.INF3 = 0x02
Notify (AMW0, 0xD0) // Hardware-Specific
}
===
These are the only 2 records that contain 0xe0f0 sequence, and if they
correspond to first two multimedia keys, as you can see they differ only in
.INF3 field. Unfortunately, I do not know what it might mean.
I was monitoring /proc/interrupts file and noticed that values here:
===
9: 430 293 65 24 IO-APIC 9-fasteoi acpi
===
are incremented by one on each key press. Also, if i press key "3" (the one
that generates different message in kernel log), the following interrupt is
fired too:
===
1: 646 6391 358 487 IO-APIC 1-edge i8042
===
Running evtest, I'm able to catch some output while pressing key "3":
===
Event: time 1511189973.016907, type 4 (EV_MSC), code 4 (MSC_SCAN), value e025
Event: time 1511189973.016907, type 1 (EV_KEY), code 203 (KEY_PROG4), value 1
Event: time 1511189973.016907, -------------- SYN_REPORT ------------
Event: time 1511189973.016942, type 1 (EV_KEY), code 203 (KEY_PROG4), value 0
Event: time 1511189973.016942, -------------- SYN_REPORT ------------
===
I think this corresponds to what I see in drivers/platform/x86/dell-wmi.c file
here:
===
143 /* Dell Instant Launch key */
144 { KE_KEY, 0xe025, { KEY_PROG4 } },
===
Other two keys do not produce any evtest output.
Here is acpidump output: [2]
Here is decompiled DSDT: [3]
Also, I've raised this question before a couple of times (for instance, [4]),
but unfortunately got no result :(.
Could you please help me in fixing multimedia keys?
Thanks.
[1] http://beta.hstor.org/files/c3b/a26/628/
c3ba26628409486f8b9ae16d97be7d21.jpg
[2] https://gist.github.com/7c04035ba2a3f0e5501af83efdb1456d
[3] https://gist.github.com/83687126c46417b5bc0b48529de52460
[4] https://www.spinics.net/lists/platform-driver-x86/msg05251.html
next reply other threads:[~2017-11-20 15:08 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-20 15:08 Oleksandr Natalenko [this message]
2017-11-20 17:05 ` Dell Vostro 3360 multimedia keys Pali Rohár
2017-11-20 21:31 ` Oleksandr Natalenko
2017-11-21 13:51 ` Pali Rohár
2017-11-21 14:52 ` Oleksandr Natalenko
2017-11-21 18:36 ` Pali Rohár
2017-11-21 18:58 ` Oleksandr Natalenko
2018-01-27 14:05 ` Pali Rohár
2018-01-28 4:39 ` Dmitry Torokhov
2017-11-27 16:56 ` Mario.Limonciello
2017-11-27 16:56 ` Mario.Limonciello
2017-11-27 18:32 ` Oleksandr Natalenko
2017-11-27 19:21 ` Mario.Limonciello
2017-11-27 19:21 ` Mario.Limonciello
2017-11-21 14:52 ` Oleksandr Natalenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5089742.2pBsoxBtzf@natalenko.name \
--to=oleksandr@natalenko.name \
--cc=andy@infradead.org \
--cc=dvhart@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mario_limonciello@dell.com \
--cc=mjg59@srcf.ucam.org \
--cc=pali.rohar@gmail.com \
--cc=platform-driver-x86@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.