> +} > + > /** > * device_prepare - Prepare a device for system power transition. > * @dev: Device to handle. > @@ -1858,6 +1893,7 @@ > pm_runtime_put(dev); > return ret; > } > + device_prepare_smart_suspend(dev); > /* > * A positive return value from ->prepare() means "this device appears > * to be runtime-suspended and its state is fine, so if it really is > @@ -2033,6 +2069,5 @@ > > bool dev_pm_skip_suspend(struct device *dev) > { > - return dev_pm_test_driver_flags(dev, DPM_FLAG_SMART_SUSPEND) && > - pm_runtime_status_suspended(dev); > + return dev->power.smart_suspend && pm_runtime_status_suspended(dev); > } > --- a/drivers/mfd/intel-lpss.c > +++ b/drivers/mfd/intel-lpss.c > @@ -480,7 +480,7 @@ > > static int resume_lpss_device(struct device *dev, void *data) > { > - if (!dev_pm_test_driver_flags(dev, DPM_FLAG_SMART_SUSPEND)) > + if (!dev->power.smart_suspend) > pm_runtime_resume(dev); > > return 0; > --- a/drivers/pci/pci-driver.c > +++ b/drivers/pci/pci-driver.c > @@ -812,8 +812,7 @@ > * suspend callbacks can cope with runtime-suspended devices, it is > * better to resume the device from runtime suspend here. > */ > - if (!dev_pm_test_driver_flags(dev, DPM_FLAG_SMART_SUSPEND) || > - pci_dev_need_resume(pci_dev)) { > + if (!dev->power.smart_suspend || pci_dev_need_resume(pci_dev)) { > pm_runtime_resume(dev); > pci_dev->state_saved = false; > } else { > @@ -1151,8 +1150,7 @@ > } > > /* The reason to do that is the same as in pci_pm_suspend(). */ > - if (!dev_pm_test_driver_flags(dev, DPM_FLAG_SMART_SUSPEND) || > - pci_dev_need_resume(pci_dev)) { > + if (!dev->power.smart_suspend || pci_dev_need_resume(pci_dev)) { > pm_runtime_resume(dev); > pci_dev->state_saved = false; > } else { > --- a/include/linux/pm.h > +++ b/include/linux/pm.h > @@ -680,8 +680,8 @@ > bool syscore:1; > bool no_pm_callbacks:1; /* Owned by the PM core */ > bool async_in_progress:1; /* Owned by the PM core */ > + bool smart_suspend:1; /* Owned by the PM core */ > bool must_resume:1; /* Owned by the PM core */ > - bool set_active:1; /* Owned by the PM core */ > bool may_skip_resume:1; /* Set by subsystems */ > #else > bool should_wakeup:1; > > > Kind regards Uffe