All of lore.kernel.org
 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 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.