X86 platform drivers
 help / color / mirror / Atom feed
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
> 

  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