All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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.