PM: ACPI: Refresh wakeup device power configuration every time
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 24 Nov 2020 19:46:38 +0000 (20:46 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 7 Dec 2020 12:45:47 +0000 (13:45 +0100)
commitb93b7ef61764819b6060f69e35ea9d6563b9b5d8
tree606dd05c72d4e2d917d88aaf8db9dc3a0a6c0ef4
parent7482c5cb90e5a7f9e9e12dd154d405e0219656e3
PM: ACPI: Refresh wakeup device power configuration every time

When wakeup signaling is enabled for a bridge for the second (or every
next) time in a row, its existing device wakeup power configuration
may not match the new conditions.  For example, some devices below
it may have been put into low-power states and that changes the
device wakeup power conditions or similar.  This causes functional
problems to appear on some systems (for example,  because of it the
Thunderbolt port on Dell Precision 5550 cannot detect devices plugged
in after it has been suspended).

For this reason, modify __acpi_device_wakeup_enable() to refresh the
device wakeup power configuration of the target device on every
invocation, not just when it is called for that device first time
in a row.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reported-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/acpi/device_pm.c