diff options
-rw-r--r-- | drivers/base/power/wakeup.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c index 2d56f4113ae7..eb1bd2ecad8b 100644 --- a/drivers/base/power/wakeup.c +++ b/drivers/base/power/wakeup.c | |||
@@ -318,10 +318,16 @@ int device_init_wakeup(struct device *dev, bool enable) | |||
318 | { | 318 | { |
319 | int ret = 0; | 319 | int ret = 0; |
320 | 320 | ||
321 | if (!dev) | ||
322 | return -EINVAL; | ||
323 | |||
321 | if (enable) { | 324 | if (enable) { |
322 | device_set_wakeup_capable(dev, true); | 325 | device_set_wakeup_capable(dev, true); |
323 | ret = device_wakeup_enable(dev); | 326 | ret = device_wakeup_enable(dev); |
324 | } else { | 327 | } else { |
328 | if (dev->power.can_wakeup) | ||
329 | device_wakeup_disable(dev); | ||
330 | |||
325 | device_set_wakeup_capable(dev, false); | 331 | device_set_wakeup_capable(dev, false); |
326 | } | 332 | } |
327 | 333 | ||