All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michał Kępień" <kernel@kempniu.pl>
To: Jan-Marek Glogowski <glogow@fbihome.de>
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: Fri, 24 Jun 2016 09:12:24 +0200	[thread overview]
Message-ID: <20160624071224.GA5289@eudyptula.hq.kempniu.pl> (raw)
In-Reply-To: <576C1B0C.5050206@fbihome.de>

> Hmm - so I got
> [  561.809723] [ACPI Debug 64952760]  Integer 0x0000000000000000
> for my Store (BSWF, Debug) call.

This is the core issue.

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

Sorry, you lost me.  What functionality do you think is disabled where,
specifically?

> 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 :-(

Did you mean _L21?  I assume you were talking about Skylakes above, but
_L11 is not used on these.

Also, what do you mean you "get notifications from all buttons"?  Please
clarify.

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

What do you mean by "everything"?  Please be specific, reading ACPI code
is already hard as it is.  I would guess you meant BSWF, RFHF, AHKF and
IRBF, but guessing will not get us far.

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

I think you are missing the point.  The fact that BLNF always sets some
bit in AHKF is meaningless, because even if you got notified about that
in some manner, you still wouldn't know whether brightness is supposed
to be increased or decreased.  The only way ACPI code makes that
distinction is using BSWF, which is apparently broken.

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

This looks awfully like the issue I had with a Dell machine and a
certain hotkey [1].  It later turned out that ACPI variables are set to
different values after a certain "magical" SMBIOS call is made.
Meanwhile the same hotkey worked just fine on other models without any
prior initialization.  The case we are looking at here might be similar,
i.e. something worked on Haswells without any initialization, but
Skylakes require some special call before brightness-related key presses
are properly reported.

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

Sorry, the above sentence does not parse for me.

> I don't know, why / how the brightness keys are working in Windows.

Perhaps this is the time to explore the Windows path after all.  My
guess would be brightness-related hotkeys do not work on a Windows
instance with no Fujitsu-supplied software.

BTW, I did some more fiddling with _L11 on my Haswell and it seems its
code run before the BSWF check is identical to that found in _L21 on
Skylakes.  Moreover, BSWF equals 0 before the FSMI call.  Which means
that BSWF is written to by the processor in response to an SMM call.
Which in turn means we will not be able to debug why it writes 0 and not
1 or 2 without assistance from Fujitsu or a successful attempt to figure
out how the Fujitsu-supplied Windows software works.

[1] https://www.spinics.net/lists/platform-driver-x86/msg07094.html

-- 
Best regards,
Michał Kępień

  reply	other threads:[~2016-06-24  7:12 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
2016-06-24  7:12                           ` Michał Kępień [this message]
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=20160624071224.GA5289@eudyptula.hq.kempniu.pl \
    --to=kernel@kempniu.pl \
    --cc=glogow@fbihome.de \
    --cc=jwoithe@just42.net \
    --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.