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 14:08:48 +0200 [thread overview]
Message-ID: <576BD150.6050304@fbihome.de> (raw)
In-Reply-To: <20160623111819.GA4284@eudyptula.hq.kempniu.pl>
Am 23.06.2016 um 13:18 schrieb Michał Kępień:
>>> I played with my Lifebook E744 a bit and there is a chance it is not as
>>> different from the Skylake machines as I originally imagined. Earlier
>>> in this thread, I already mentioned that pure ACPI brightness control
>>> doesn't work, just like it doesn't work on Skylakes. However, input
>>> events are correctly generated when Fn+F6 or Fn+F7 is pressed.
>>
>> That's no mystery, because the brightness control ACPI device (AKA
>> FUJ02B1 is available on e7x4 notebooks and the diriver also generates
>> the keycodes in addition.
>
> No, at least not on Haswells. For proof, do an `rmmod fujitsu-laptop'
> on a Haswell machine and press Fn+F6 or Fn+F7. The input event will
> still be generated. What happens is that pressing Fn+F6 or Fn+F7 raises
> a certain GPE (General-Purpose Event; 0x11 on Haswells). This causes
> the corresponding ACPI method (_L11) to be called, which in turn sends
> notifications to both FUJ02B1 and the ACPI video device. On my Haswell
> machine, the former [1] effectively does nothing, because subsequent
> calls to GBLL keep returning the same brightness level, apparently
> ignoring key presses, but the latter [2] is enough because it causes
> acpi_video to generate an input event. For further proof, boot a 4.5+
> kernel on a Haswell machine with command line parameter
> video.report_key_events=1. Brightness-related input events will not be
> generated any more.
>
> 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? I really want to understand this. Should I
read the ACPI specs?
> 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. If the GPE count isn't increased when
> brightness-related keys are pressed, it means some hardware
> initialization may be required before these keys are handled. In that
> case we would likely be screwed without assistance from Fujitsu.
>
> 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).
The brightness buttons work in Windows 7 with the Fujitsu button driver.
Didn't check, if they even work without. I can get my hands on a Windows
7 laptop, but that'll take some time, if this additional info would help.
>> The diff between e7x4 and e7x6 DSDT is ~43k lines or 1.3MB
>> And the DSDT of 736 and 756 is identical.
>>
>>> And I am
>>> sure these events are generated by ACPI code as booting with acpi=off
>>> makes the input events disappear, while also causing brightness to be
>>> correctly adjusted. Thus, I can try to figure out which part of the
>>> ACPI code causes the input events to be generated. That information
>>> combined with your DSDT dump might help us in figuring out how to make
>>> it work for your machine. However, it might just as well turn out that
>>> Fujitsu switched to using WMI or some opaque vendor-specific magic.
>>
>> The ACPI code doesn't generate the keycodes.
>> Look at the acpi_fujitsu_notify function in
>> drivers/platform/x86/fujitsu-laptop.c
>>
>> And sure, without ACPI no ACPI driver will be loaded.
>>
>> So without ACPI, the brightness buttons work correctly (not that's an
>> option to run a laptop without ACPI)?
>
> Indeed. My understanding is that on an operating system without ACPI
> support, brightness is adjusted directly by the BIOS.
>
> [1] Notify (\_SB.PCI0.LPCB.FJEX, 0x80)
> [2] \_SB.PCI0.GFX0.LCD.BLNF ()
> [3] see: Documentation/acpi/method-customizing.txt
>
next prev parent reply other threads:[~2016-06-23 12:08 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 [this message]
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
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=576BD150.6050304@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