]> git.baikalelectronics.ru Git - kernel.git/commit
ACPI / EC: Fix a boot EC regresion by restoring boot EC support for the DSDT EC
authorLv Zheng <lv.zheng@intel.com>
Fri, 3 Jun 2016 02:26:12 +0000 (10:26 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 7 Jun 2016 00:29:53 +0000 (02:29 +0200)
commit856cd487ff6f2fe6db807e8314d69a7f939918ff
tree0607caf0285a42f43729cc519087fa65611f5d07
parent3f6e1a737d258a2a62698750eb42a1d1c6ffe003
ACPI / EC: Fix a boot EC regresion by restoring boot EC support for the DSDT EC

According to the Windows probing result, during the table loading, the EC
device described in the ECDT should be used. And the ECDT EC is also
effective during the period the namespace objects are initialized (we can
see a separate process executing _STA/_INI on Windows before executing
other device specific control methods, for example, EC._REG). During the
device enumration, the EC device described in the DSDT should be used. But
there are differences between Linux and Windows around the device probing
order. Thus in Linux, we should enable the DSDT EC as early as possible
before enumerating devices in order not to trigger issues related to the
device enumeration order differences.

This patch thus converts acpi_boot_ec_enable() into acpi_ec_dsdt_probe() to
fix the gap. This also fixes a user reported regression triggered after we
switched the "table loading"/"ECDT support" to be ACPI spec 2.0 compliant.

Fixes: 78d259de9498 (ACPI 2.0 / ECDT: Remove early namespace reference from EC)
Link: https://bugzilla.kernel.org/show_bug.cgi?id=119261
Reported-and-tested-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/bus.c
drivers/acpi/ec.c
drivers/acpi/internal.h