mirror of https://gitee.com/openkylin/linux.git
ACPI: PM: s2idle: Switch EC over to polling during "noirq" suspend
Since the ACPI SCI is set up for system wakeup before the "noirq" suspend of devices, it is better to make suspend-to-idle follow suspend-to-RAM (S3) and switch over the EC to polling during "noirq" suspend (and back to interrupt-based flow during "noirq" resume). The frequency of spurious wakeup interrupts from the EC may be reduced this way. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
This commit is contained in:
parent
068b47d098
commit
fcd0a04267
|
@ -1958,8 +1958,7 @@ static int acpi_ec_suspend_noirq(struct device *dev)
|
||||||
ec->reference_count >= 1)
|
ec->reference_count >= 1)
|
||||||
acpi_set_gpe(NULL, ec->gpe, ACPI_GPE_DISABLE);
|
acpi_set_gpe(NULL, ec->gpe, ACPI_GPE_DISABLE);
|
||||||
|
|
||||||
if (acpi_sleep_no_ec_events())
|
acpi_ec_enter_noirq(ec);
|
||||||
acpi_ec_enter_noirq(ec);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1968,8 +1967,7 @@ static int acpi_ec_resume_noirq(struct device *dev)
|
||||||
{
|
{
|
||||||
struct acpi_ec *ec = acpi_driver_data(to_acpi_device(dev));
|
struct acpi_ec *ec = acpi_driver_data(to_acpi_device(dev));
|
||||||
|
|
||||||
if (acpi_sleep_no_ec_events())
|
acpi_ec_leave_noirq(ec);
|
||||||
acpi_ec_leave_noirq(ec);
|
|
||||||
|
|
||||||
if (ec_no_wakeup && test_bit(EC_FLAGS_STARTED, &ec->flags) &&
|
if (ec_no_wakeup && test_bit(EC_FLAGS_STARTED, &ec->flags) &&
|
||||||
ec->reference_count >= 1)
|
ec->reference_count >= 1)
|
||||||
|
|
Loading…
Reference in New Issue