Merge branch 'pm-core'

* pm-core:
  driver core: Avoid NULL pointer dereferences in device_is_bound()
  platform: Do not detach from PM domains on shutdown
  USB / PM: Allow USB devices to remain runtime-suspended when sleeping
  PM / sleep: Go direct_complete if driver has no callbacks
  PM / Domains: add setter for dev.pm_domain
  device core: add device_is_bound()
This commit is contained in:
Rafael J. Wysocki 2016-01-21 00:42:59 +01:00
commit 6efd3f8cde
18 changed files with 132 additions and 23 deletions

View file

@ -168,12 +168,18 @@ static int usb_port_runtime_suspend(struct device *dev)
return retval;
}
static int usb_port_prepare(struct device *dev)
{
return 1;
}
#endif
static const struct dev_pm_ops usb_port_pm_ops = {
#ifdef CONFIG_PM
.runtime_suspend = usb_port_runtime_suspend,
.runtime_resume = usb_port_runtime_resume,
.prepare = usb_port_prepare,
#endif
};

View file

@ -316,7 +316,13 @@ static int usb_dev_uevent(struct device *dev, struct kobj_uevent_env *env)
static int usb_dev_prepare(struct device *dev)
{
return 0; /* Implement eventually? */
struct usb_device *udev = to_usb_device(dev);
/* Return 0 if the current wakeup setting is wrong, otherwise 1 */
if (udev->do_remote_wakeup != device_may_wakeup(dev))
return 0;
return 1;
}
static void usb_dev_complete(struct device *dev)