From: Jan-Marek Glogowski <glogow@fbihome.de>
To: "Michał Kępień" <kernel@kempniu.pl>
Cc: Jonathan Woithe <jwoithe@just42.net>,
platform-driver-x86@vger.kernel.org
Subject: Re: Brightness and "touchpad dis-/enable" keys not working for Fujitsu e7x6
Date: Thu, 23 Jun 2016 19:23:24 +0200 [thread overview]
Message-ID: <576C1B0C.5050206@fbihome.de> (raw)
In-Reply-To: <20160623123506.GA4461@eudyptula.hq.kempniu.pl>
Am 23.06.2016 um 14:35 schrieb Michał Kępień:
>>> I looked at the ACPI tables you sent me and it looks like
>>> brightness-related keys should be handled by ACPI method _L21 on
>>> Skylakes. As far as I can tell without playing with the hardware
>>> myself, the ACPI code doesn't strike me as outright broken, so the first
>>> step would be to confirm whether the relevant GPE is raised at all when
>>> you press brightness-related keys. To check it, launch the following
>>> command in a terminal:
>>>
>>> watch -n 1 cat /sys/firmware/acpi/interrupts/gpe21
>>>
>>> and press Fn+F6 or Fn+F7. The counter should get increased by one.
>>
>> Yup - great. This works :-)
>> I would be interested to know, how you came to this conclusion. Is this
>> encoded in the ssdt tables?
>
> First I figured out (using a command almost identical to the one I
> suggested to you) which GPE is used for signalling brightness-related
> key presses on my Haswell machine. This immediately led me to ACPI
> method _L11. I selectively commented out ACPI code from this method,
> recompiling and overriding it using /sys/kernel/debug/acpi/custom_method
> after every change until I figured out exactly which method invocation
> causes the key events to be generated. Once I knew that, I searched for
> a similar invocation in a Skylake DSDT dump. This led me to ACPI method
> _L21, which is very similar to Haswell's _L11.
>
>> I really want to understand this. Should I
>> read the ACPI specs?
>
> Well, I cannot stop you from doing that, but I would advise against it
> if you value your own mental health. Unless you have a very specific
> reason to do otherwise, just follow the code. If you would like to
> learn a bit more about GPEs specifically, I recommend this great blog
> post by Matthew Garrett:
>
> http://mjg59.livejournal.com/117532.htmlBSWF = Zero
>
>>> If it does, try overriding ACPI method _L21 [3] so that you can read
>>> the value of BSWF when the method is invoked.
>>
>> I'll read [3] and report back later.
>>
>>> If that value is 0, it's
>>> obviously a vendor bug as it would prevent the ACPI video device from
>>> being notified.
Hmm - so I got
[ 561.809723] [ACPI Debug 64952760] Integer 0x0000000000000000
for my Store (BSWF, Debug) call.
Then I had a look at the \_SB.PCI0.GFX0.LCD.BLNF () function in my
ssdt7.dsl, and it sets "BSWF = Zero" as the 2nd last call. And it's the
same in the ssdt6.dsl of the Haswell hardware, except there the call to
BLNF is guarded by an "LGreaterEqual(OSYS, 0x07D6)" guard, so I guess
for newer operating systems, all the functionality is also disabled on
Haswell.
But BLNF also sets "AHKF |= One", which triggers this code path
containing just a "Notify (\_SB.FEXT, 0x80)", but since it's actually
never called, I get no notifications - how did I ever get notifications?
...
until I have pressed the "touchpad" button, which changes AHKF to 8 -
permanently - and now I get notifications from all buttons, since all
use _L11 :-(
So I actually never got any direct ACPI events from the brightness
control, but this was just toggled because of the "touchpad" key,
enabling the notifications…
And then I "instrumented" all if's by dumping the value just before the
if => everything is always 0, except the permanent 8 in AHKF after
pressing the "touchpad" button.
So - just for the sake of it, I had a look for some AHKF code and the
button function S000 got new code to handle AHKF - both brightness (AKA
BSWF AKA AHKF & One) and the touchpad (AKA AHKF & 0x08)
But this is just called, if you call the ACPI button function in the
device driver.
Which leaves me with the problem, that BSWF is always 0.
>>> To sum up, I see no immediate reason for brightness control not to work
>>> on Skylakes, so you will have to get your hands a bit dirty to get to
>>> the bottom of this (and it might still not yield a solution).
That's enough for today.
I'm quite sure Fujitsu changed the in-ACPI-HW-touchpad-disable-handling
to be done by the driver.
I don't know, why / how the brightness keys are working in Windows.
Jan-Marek
next prev parent reply other threads:[~2016-06-23 17:23 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-14 8:48 Brightness and "touchpad dis-/enable" keys not working for Fujitsu e7x6 Jan-Marek Glogowski
2016-06-16 23:46 ` Jonathan Woithe
2016-06-17 9:20 ` Jan-Marek Glogowski
2016-06-21 8:12 ` Jonathan Woithe
2016-06-22 7:32 ` Michał Kępień
2016-06-22 10:18 ` Jan-Marek Glogowski
2016-06-22 10:53 ` Jonathan Woithe
2016-06-22 11:23 ` Jan-Marek Glogowski
2016-06-22 12:39 ` Michał Kępień
2016-06-22 13:22 ` Jan-Marek Glogowski
2016-06-23 11:18 ` Michał Kępień
2016-06-23 12:08 ` Jan-Marek Glogowski
2016-06-23 12:35 ` Michał Kępień
2016-06-23 13:17 ` Jan-Marek Glogowski
2016-06-23 13:31 ` Michał Kępień
2016-06-23 13:42 ` Jan-Marek Glogowski
2016-06-23 17:23 ` Jan-Marek Glogowski [this message]
2016-06-24 7:12 ` Michał Kępień
2016-06-24 9:22 ` Jan-Marek Glogowski
2016-06-24 10:20 ` Michał Kępień
2016-06-24 11:39 ` Jan-Marek Glogowski
2016-06-24 15:43 ` Jan-Marek Glogowski
2016-06-24 20:17 ` Michał Kępień
2016-06-25 8:50 ` Jonathan Woithe
2016-06-25 9:15 ` Michał Kępień
2016-06-26 7:41 ` [PATCH] fujitsu-laptop: Support touchpad toggle hotkey on Skylake-based models Michał Kępień
2016-06-27 8:03 ` [PATCH] Register KEY_TOUCHPAD_TOGGLE with input device Jan-Marek Glogowski
2016-06-27 12:48 ` [PATCH] fujitsu-laptop: Support touchpad toggle hotkey on Skylake-based models Jonathan Woithe
2016-06-27 12:55 ` Michał Kępień
2016-06-27 13:19 ` [PATCH v2] " Michał Kępień
2016-06-28 1:06 ` Jonathan Woithe
2016-06-28 7:25 ` [PATCH v3] " Michał Kępień
2016-06-28 11:19 ` Jonathan Woithe
2016-06-28 17:50 ` Darren Hart
2016-06-27 8:32 ` Brightness and "touchpad dis-/enable" keys not working for Fujitsu e7x6 Jan-Marek Glogowski
2016-06-27 11:16 ` Michał Kępień
2016-06-27 11:40 ` Jan-Marek Glogowski
2016-06-27 12:40 ` Jonathan Woithe
2016-06-29 13:59 ` Jani Nikula
2016-06-29 15:38 ` Jani Nikula
2016-06-22 10:46 ` Jonathan Woithe
2016-06-23 10:02 ` [PATCH 0/2] fujitsu-laptop: Debugging cleanup Michał Kępień
2016-06-23 10:02 ` [PATCH 1/2] fujitsu-laptop: Use module name in debug messages Michał Kępień
2016-06-23 10:02 ` [PATCH 2/2] fujitsu-laptop: Remove unused macros Michał Kępień
2016-06-23 10:35 ` [PATCH 0/2] fujitsu-laptop: Debugging cleanup Jonathan Woithe
2016-06-28 17:49 ` Darren Hart
2016-06-22 7:15 ` Brightness and "touchpad dis-/enable" keys not working for Fujitsu e7x6 Michał Kępień
2016-06-22 10:07 ` Jan-Marek Glogowski
2016-06-22 11:31 ` Michał Kępień
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=576C1B0C.5050206@fbihome.de \
--to=glogow@fbihome.de \
--cc=jwoithe@just42.net \
--cc=kernel@kempniu.pl \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox