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 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.