PM / sleep: unregister wakeup source when disabling device wakeup
When enabling a device' wakeup capability, a wakeup source is created for the device automatically. But the wakeup source is not unregistered when disabling the device' wakeup capability. This results in zombie wakeup sources, after devices/drivers are unregistered. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Родитель
0399d4db3e
Коммит
0c5ff0ef80
|
@ -318,10 +318,16 @@ int device_init_wakeup(struct device *dev, bool enable)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
if (!dev)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
if (enable) {
|
if (enable) {
|
||||||
device_set_wakeup_capable(dev, true);
|
device_set_wakeup_capable(dev, true);
|
||||||
ret = device_wakeup_enable(dev);
|
ret = device_wakeup_enable(dev);
|
||||||
} else {
|
} else {
|
||||||
|
if (dev->power.can_wakeup)
|
||||||
|
device_wakeup_disable(dev);
|
||||||
|
|
||||||
device_set_wakeup_capable(dev, false);
|
device_set_wakeup_capable(dev, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче