]> git.baikalelectronics.ru Git - kernel.git/commit
ACPI / bus: Introduce a list of ids for "always present" devices
authorHans de Goede <hdegoede@redhat.com>
Fri, 21 Apr 2017 10:47:40 +0000 (12:47 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 26 Apr 2017 22:02:43 +0000 (00:02 +0200)
commitd8c4c881a8a7f83d30c11dcdff436bcf027ff321
tree61c77533f0e4676219c5137d601e8765c894f4cd
parent3e21a44b5495ce41f885b26c0d60f846f42162b9
ACPI / bus: Introduce a list of ids for "always present" devices

Several Bay / Cherry Trail devices (all of which ship with Windows 10) hide
the LPSS PWM controller in ACPI, typically the _STA method looks like this:

    Method (_STA, 0, NotSerialized)  // _STA: Status
    {
        If (OSID == One)
        {
            Return (Zero)
        }

        Return (0x0F)
    }

Where OSID is some dark magic seen in all Cherry Trail ACPI tables making
the machine behave differently depending on which OS it *thinks* it is
booting, this gets set in a number of ways which we cannot control, on
some newer machines it simple hardcoded to "One" aka win10.

This causes the PWM controller to get hidden, which means Linux cannot
control the backlight level on cht based tablets / laptops.

Since loading the driver for this does no harm (the only in kernel user
of it is the i915 driver, which will only uses it when it needs it), this
commit makes acpi_bus_get_status() always set status to ACPI_STA_DEFAULT
for the LPSS PWM device, fixing the lack of backlight control.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
[ rjw: Rename the new file to utils.c ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/Makefile
drivers/acpi/bus.c
drivers/acpi/x86/utils.c [new file with mode: 0644]
include/acpi/acpi_bus.h