Message ID | 5094729.JAaD38WncM@aspire.rjw.lan (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Mon, 16 Oct 2017, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Make the intel-lpss driver set DPM_FLAG_SMART_SUSPEND for its > devices which will allow them to stay in runtime suspend during > system suspend unless they need to be reconfigured for some reason. > > Also make it avoid resuming its child devices if they have > DPM_FLAG_SMART_SUSPEND set to allow them to remain in runtime > suspend during system suspend. > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > --- > drivers/mfd/intel-lpss.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) Is this patch independent? For my own reference: Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
On Tue, Oct 31, 2017 at 4:09 PM, Lee Jones <lee.jones@linaro.org> wrote: > On Mon, 16 Oct 2017, Rafael J. Wysocki wrote: > >> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> >> Make the intel-lpss driver set DPM_FLAG_SMART_SUSPEND for its >> devices which will allow them to stay in runtime suspend during >> system suspend unless they need to be reconfigured for some reason. >> >> Also make it avoid resuming its child devices if they have >> DPM_FLAG_SMART_SUSPEND set to allow them to remain in runtime >> suspend during system suspend. >> >> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> --- >> drivers/mfd/intel-lpss.c | 6 +++++- >> 1 file changed, 5 insertions(+), 1 deletion(-) > > Is this patch independent? It depends on the flag definition at least, but functionally it also depends on the PCI support for the flag. > For my own reference: > Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org> Thanks, Rafael
On Tue, 31 Oct 2017, Rafael J. Wysocki wrote: > On Tue, Oct 31, 2017 at 4:09 PM, Lee Jones <lee.jones@linaro.org> wrote: > > On Mon, 16 Oct 2017, Rafael J. Wysocki wrote: > > > >> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > >> > >> Make the intel-lpss driver set DPM_FLAG_SMART_SUSPEND for its > >> devices which will allow them to stay in runtime suspend during > >> system suspend unless they need to be reconfigured for some reason. > >> > >> Also make it avoid resuming its child devices if they have > >> DPM_FLAG_SMART_SUSPEND set to allow them to remain in runtime > >> suspend during system suspend. > >> > >> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > >> --- > >> drivers/mfd/intel-lpss.c | 6 +++++- > >> 1 file changed, 5 insertions(+), 1 deletion(-) > > > > Is this patch independent? > > It depends on the flag definition at least, but functionally it also > depends on the PCI support for the flag. No problem. Which tree to you propose this goes through? > > For my own reference: > > Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
On Wed, Nov 1, 2017 at 10:28 AM, Lee Jones <lee.jones@linaro.org> wrote: > On Tue, 31 Oct 2017, Rafael J. Wysocki wrote: > >> On Tue, Oct 31, 2017 at 4:09 PM, Lee Jones <lee.jones@linaro.org> wrote: >> > On Mon, 16 Oct 2017, Rafael J. Wysocki wrote: >> > >> >> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> >> >> >> Make the intel-lpss driver set DPM_FLAG_SMART_SUSPEND for its >> >> devices which will allow them to stay in runtime suspend during >> >> system suspend unless they need to be reconfigured for some reason. >> >> >> >> Also make it avoid resuming its child devices if they have >> >> DPM_FLAG_SMART_SUSPEND set to allow them to remain in runtime >> >> suspend during system suspend. >> >> >> >> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> >> --- >> >> drivers/mfd/intel-lpss.c | 6 +++++- >> >> 1 file changed, 5 insertions(+), 1 deletion(-) >> > >> > Is this patch independent? >> >> It depends on the flag definition at least, but functionally it also >> depends on the PCI support for the flag. > > No problem. Which tree to you propose this goes through? linux-pm.git if that's not a problem as the patches it depends on will go through it too. That said I'll resend it when the core patches it depends on are ready. Thanks, Rafael
On Wed, 01 Nov 2017, Rafael J. Wysocki wrote: > On Wed, Nov 1, 2017 at 10:28 AM, Lee Jones <lee.jones@linaro.org> wrote: > > On Tue, 31 Oct 2017, Rafael J. Wysocki wrote: > > > >> On Tue, Oct 31, 2017 at 4:09 PM, Lee Jones <lee.jones@linaro.org> wrote: > >> > On Mon, 16 Oct 2017, Rafael J. Wysocki wrote: > >> > > >> >> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > >> >> > >> >> Make the intel-lpss driver set DPM_FLAG_SMART_SUSPEND for its > >> >> devices which will allow them to stay in runtime suspend during > >> >> system suspend unless they need to be reconfigured for some reason. > >> >> > >> >> Also make it avoid resuming its child devices if they have > >> >> DPM_FLAG_SMART_SUSPEND set to allow them to remain in runtime > >> >> suspend during system suspend. > >> >> > >> >> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > >> >> --- > >> >> drivers/mfd/intel-lpss.c | 6 +++++- > >> >> 1 file changed, 5 insertions(+), 1 deletion(-) > >> > > >> > Is this patch independent? > >> > >> It depends on the flag definition at least, but functionally it also > >> depends on the PCI support for the flag. > > > > No problem. Which tree to you propose this goes through? > > linux-pm.git if that's not a problem as the patches it depends on will > go through it too. > > That said I'll resend it when the core patches it depends on are ready. It's fine by me. Please check to see if there are any clashes with MFD. If there are, I'll need a (small) pull-request from you.
Index: linux-pm/drivers/mfd/intel-lpss.c =================================================================== --- linux-pm.orig/drivers/mfd/intel-lpss.c +++ linux-pm/drivers/mfd/intel-lpss.c @@ -450,6 +450,8 @@ int intel_lpss_probe(struct device *dev, if (ret) goto err_remove_ltr; + dev_pm_set_driver_flags(dev, DPM_FLAG_SMART_SUSPEND); + return 0; err_remove_ltr: @@ -478,7 +480,9 @@ EXPORT_SYMBOL_GPL(intel_lpss_remove); static int resume_lpss_device(struct device *dev, void *data) { - pm_runtime_resume(dev); + if (!dev_pm_test_driver_flags(dev, DPM_FLAG_SMART_SUSPEND)) + pm_runtime_resume(dev); + return 0; }