All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali.rohar@gmail.com>
To: "Michał Kępień" <kernel@kempniu.pl>
Cc: Matthew Garrett <mjg@redhat.com>,
	Rezwanul Kabir <Rezwanul_Kabir@dell.com>,
	Darren Hart <dvhart@infradead.org>,
	platform-driver-x86@vger.kernel.org
Subject: Re: Dell Vostro V131 hotkeys revisited
Date: Tue, 23 Jun 2015 13:46:59 +0200	[thread overview]
Message-ID: <20150623114659.GM31818@pali> (raw)
In-Reply-To: <20150623112621.GA3071@eudyptula.hq.kempniu.pl>

Hi!

On Tuesday 23 June 2015 13:26:21 Michał Kępień wrote:
> Hi all,
> 
> I'm trying to get all of the Dell Vostro V131 special hotkeys working.
> This issue has been previously raised [1] by Peter Meiser, but it wasn't
> solved. I decided to share my findings on this subject, hoping that
> someone will have an idea how to proceed.
> 
> TL;DR: it looks like pressing these hotkeys should be reported by the
> firmware using WMI, but the DSDT doesn't contain a code path which
> notifies the ACPI WMI object upon a hotkey event.
> 
> Vostro V131 has 3 special hotkeys. Hotkey #1 is simply translated to
> Super+X, so it's not an issue. Hotkey #2 generates keycode 0xEE (it also
> raises a GPE - see below) and can reportedly be coerced to behave [2],
> which leaves us with hotkey #3. While the Dell event GUID is present in
> the ACPI WMI object, the dell-wmi driver does not report any events when
> hotkey #3 is pressed - only the ACPI interrupt counter increases as GPE
> 0x17 is raised. Diving into the DSDT [3], you'll find that the _L17
> method only calls another method (NEVT), where some value is retrieved
> (using yet another method, ECG1) and acted upon accordingly. Using ACPI
> method customization, I discovered that ECG1 returns 0x2000 for hotkey
> #2 and 0x1000 for hotkey #3. But if you look at the code of the NEVT
> method, it turns out these values don't cause any code path to be
> executed (while I would expect them to cause the WMIA method to be
> called as it notifies the ACPI WMI object).
> 
> I decompiled the MOF buffer (WQMO) using wmimofck.exe, but no magic
> initialization method popped up. While in Windows, I copied a sample
> VBScript from MSDN for receiving event notifications via WMI, set proper
> namespace ("root\wmi") and notification query ("SELECT * FROM
> BIOSEvent") and it worked. This is why I believe the WMI route is the
> correct one.
> 
> However, even when I customized the NEVT method to call WMIA for values
> 0x1000 and 0x2000, the dell-wmi driver reported all zeros for the event
> data retrieved using _WED.
> 
> Using acpi_os_name didn't change anything. Neither did updating the BIOS
> to the latest version, A04.
> 
> So I wrote a kernel module which installs a custom GPE 0x17 handler,
> which in turn calls the ECG1 method to retrieve the event code and
> generates input events. While this works, GPE 0x17 is also used for
> power and lid events (among others), so loading the module cripples
> other ACPI-based features, rendering it useless.
> 
> If anyone has an idea where to go from here to solve this issue in an
> elegant manner, I'm all ears.
> 
> [1] http://www.spinics.net/lists/platform-driver-x86/msg03232.html
> [2] http://www.spinics.net/lists/platform-driver-x86/msg04555.html
> [3] https://launchpadlibrarian.net/146038073/DSDT.dsl
> 

First make sure you have updated dell-wmi.c driver to last version (at
least v3.19 kernel) and check that your ACPI code contains event WMI
GUID 9DBB5994-A997-11DA-B012-B622A1EF5492

Then compile dell-wmi.ko driver with debug messages, so pr_debug() call
will print messages to dmesg. Press key and check if you see some info
from dell-wmi.ko in dmesg.

I fixed some problems with parsing WMI buffer in dell-wmi.c so maybe it
could help...

-- 
Pali Rohár
pali.rohar@gmail.com

  reply	other threads:[~2015-06-23 11:47 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-23 11:26 Dell Vostro V131 hotkeys revisited Michał Kępień
2015-06-23 11:46 ` Pali Rohár [this message]
2015-06-23 19:40   ` Michał Kępień
2015-06-23 19:47     ` Pali Rohár
2015-06-24 11:18       ` Michał Kępień
2015-06-24 13:23         ` Pali Rohár
2015-06-25  9:02           ` Michał Kępień
2015-06-27 18:50             ` Pali Rohár
2015-06-30  7:38               ` Michał Kępień
2015-06-30  8:00                 ` Pali Rohár
2015-07-01  8:32                   ` Michał Kępień
2015-07-01  8:40                     ` Pali Rohár
2015-07-01 10:11                       ` Michał Kępień
2015-07-01 10:55                         ` Pali Rohár
2015-07-02 20:41                           ` Michał Kępień
2015-07-02 20:58                             ` Pali Rohár
2015-07-03  6:52                               ` Michał Kępień
2015-07-03  7:48                                 ` Pali Rohár
2015-07-03 11:26                                   ` Michał Kępień
2015-07-03 11:43                                     ` Pali Rohár
2015-07-03 13:23                                       ` Michał Kępień
2015-07-03 13:32                                         ` Pali Rohár
2015-07-03 13:50                                           ` Michał Kępień
2015-07-03 14:09                                             ` Pali Rohár
2015-07-03 14:14                                               ` Pali Rohár
2015-07-03 18:22                                                 ` Gabriele Mazzotta
2015-07-03 20:07                                                   ` Michał Kępień
2015-07-03 20:30                                                     ` Gabriele Mazzotta
2015-07-04 19:41                                                   ` Pali Rohár
2015-07-04 20:34                                                     ` Gabriele Mazzotta
2015-07-03 20:55                                               ` Michał Kępień
2015-07-04 19:13                                               ` Pali Rohár
2015-07-04 19:47                                                 ` Pali Rohár
2015-07-27 19:27                                               ` Michał Kępień
2015-07-07 18:36                                   ` Mario Limonciello
2015-07-07 21:01                                     ` Pali Rohár
2015-07-08  3:21                                       ` Michał Kępień
2015-07-08  3:53                                     ` Michał Kępień
2015-07-22  7:35                                       ` Michał Kępień
2015-08-31  9:51                                         ` Michał Kępień
2015-09-10  4:38                                           ` Darren Hart
2015-11-13 10:17                                             ` Michał Kępień
2015-12-07 11:43                                               ` Pali Rohár
2015-12-16  9:05                                                 ` Michał Kępień
2015-12-16  9:30                                                   ` Pali Rohár
2015-12-16 10:29                                                     ` Hans de Goede
2015-12-17  8:05                                                       ` Michał Kępień
2015-12-17  9:48                                                         ` Hans de Goede
2015-12-17 18:47                                                           ` Pali Rohár
2015-12-17 18:54                                                             ` Hans de Goede
2015-12-19  0:02                                                               ` Darren Hart
2015-12-19  9:59                                                                 ` Pali Rohár
2015-12-18  7:10                                                           ` Michał Kępień
2015-12-18 10:44                                                             ` Hans de Goede
2015-12-19 12:31                                                               ` Michał Kępień
2015-07-04 21:24                                 ` Pali Rohár
2015-07-05  4:51                                   ` Michał Kępień
2015-06-23 12:18 ` Pali Rohár

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=20150623114659.GM31818@pali \
    --to=pali.rohar@gmail.com \
    --cc=Rezwanul_Kabir@dell.com \
    --cc=dvhart@infradead.org \
    --cc=kernel@kempniu.pl \
    --cc=mjg@redhat.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.