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 > -- To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html