|
@@ -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);
|
|
}
|
|
}
|
|
|
|
|