• Lv Zheng's avatar
    ACPI / EC: Fix regression related to PM ops support in ECDT device · 450d7588
    Lv Zheng authored
    commit a64a62ce upstream.
    
    On platforms (ASUS X550ZE and possibly all ASUS X series) with valid ECDT
    EC but invalid DSDT EC, EC PM ops won't be invoked as ECDT EC is not an
    ACPI device. Thus the following commit actually removed post-resume
    acpi_ec_enable_event() invocation for such platforms, and triggered a
    regression on them that after being resumed, EC (actually should be ECDT)
    driver stops handling EC events:
    
     Commit: c2b46d67
     Subject: ACPI / EC: Add PM operations to improve event handling for resume process
    
    Notice that the root cause actually is "ECDT is not an ACPI device" rather
    than "the timing of acpi_ec_enable_event() invocation", this patch fixes
    this issue by enumerating ECDT EC as an ACPI device. Due to the existence
    of the noirq stage, the ability of tuning the timing of
    acpi_ec_enable_event() invocation is still meaningful.
    
    This patch is a little bit different from the posted fix by moving
    acpi_config_boot_ec() from acpi_ec_ecdt_start() to acpi_ec_add() to make
    sure that EC event handling won't be stopped as long as the ACPI EC driver
    is bound. Thus the following sequence shouldn't disable EC event handling:
    unbind,suspend,resume,bind.
    
    Fixes: c2b46d67 (ACPI / EC: Add PM operations to improve event handling for resume process)
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=196847Reported-by: default avatarLuya Tshimbalanga <luya@fedoraproject.org>
    Tested-by: default avatarLuya Tshimbalanga <luya@fedoraproject.org>
    Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    450d7588
Name
Last commit
Last update
..
acpica Loading commit data...
apei Loading commit data...
arm64 Loading commit data...
dptf Loading commit data...
nfit Loading commit data...
pmic Loading commit data...
x86 Loading commit data...
Kconfig Loading commit data...
Makefile Loading commit data...
ac.c Loading commit data...
acpi_amba.c Loading commit data...
acpi_apd.c Loading commit data...
acpi_cmos_rtc.c Loading commit data...
acpi_configfs.c Loading commit data...
acpi_dbg.c Loading commit data...
acpi_extlog.c Loading commit data...
acpi_ipmi.c Loading commit data...
acpi_lpat.c Loading commit data...
acpi_lpss.c Loading commit data...
acpi_memhotplug.c Loading commit data...
acpi_pad.c Loading commit data...
acpi_platform.c Loading commit data...
acpi_pnp.c Loading commit data...
acpi_processor.c Loading commit data...
acpi_video.c Loading commit data...
acpi_watchdog.c Loading commit data...
battery.c Loading commit data...
battery.h Loading commit data...
bgrt.c Loading commit data...
blacklist.c Loading commit data...
bus.c Loading commit data...
button.c Loading commit data...
cm_sbs.c Loading commit data...
container.c Loading commit data...
cppc_acpi.c Loading commit data...
custom_method.c Loading commit data...
debugfs.c Loading commit data...
device_pm.c Loading commit data...
device_sysfs.c Loading commit data...
dock.c Loading commit data...
ec.c Loading commit data...
ec_sys.c Loading commit data...
event.c Loading commit data...
evged.c Loading commit data...
fan.c Loading commit data...
glue.c Loading commit data...
hed.c Loading commit data...
internal.h Loading commit data...
ioapic.c Loading commit data...
irq.c Loading commit data...
numa.c Loading commit data...
nvs.c Loading commit data...
osi.c Loading commit data...
osl.c Loading commit data...
pci_irq.c Loading commit data...
pci_link.c Loading commit data...
pci_mcfg.c Loading commit data...
pci_root.c Loading commit data...
pci_slot.c Loading commit data...
power.c Loading commit data...
proc.c Loading commit data...
processor_core.c Loading commit data...
processor_driver.c Loading commit data...
processor_idle.c Loading commit data...
processor_pdc.c Loading commit data...
processor_perflib.c Loading commit data...
processor_thermal.c Loading commit data...
processor_throttling.c Loading commit data...
property.c Loading commit data...
reboot.c Loading commit data...
resource.c Loading commit data...
sbs.c Loading commit data...
sbshc.c Loading commit data...
sbshc.h Loading commit data...
scan.c Loading commit data...
sleep.c Loading commit data...
sleep.h Loading commit data...
spcr.c Loading commit data...
sysfs.c Loading commit data...
tables.c Loading commit data...
thermal.c Loading commit data...
utils.c Loading commit data...
video_detect.c Loading commit data...
wakeup.c Loading commit data...