From: "Winkler, Tomas" <tomas.winkler@intel.com> To: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Cc: "tpmdd-devel@lists.sourceforge.net" <tpmdd-devel@lists.sourceforge.net>, Jason Gunthorpe <jgunthorpe@obsidianresearch.com>, "linux-security-module@vger.kernel.org" <linux-security-module@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Subject: RE: [PATCH] tpm/tpm_crb: enter the low power state upon device suspend Date: Mon, 6 Mar 2017 18:19:59 +0000 [thread overview] Message-ID: <5B8DA87D05A7694D9FA63FD143655C1B543A553C@hasmsx108.ger.corp.intel.com> (raw) In-Reply-To: <20170306144437.vlrilvo33rxans5t@intel.com> > > On Mon, Mar 06, 2017 at 01:53:35AM +0200, Tomas Winkler wrote: > > This fix enables a platform to enter the idle state (suspend-to-idle) > > > > The driver needs to request explicitly go_idle upon completion from > > the pm suspend handler. > > The runtime pm is disabled on suspend during prepare state by calling > > pm_runtime_get_noresume, hence we cannot relay on runtime pm to leave > > the device in low power state. Symmetrically cmdReady is called upon > > resume. > > > > Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> > > LGTM > > Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> > Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> > > PS. What about Fixes? Does this need it? No, I don't think this is a regression caused by any patch, rather the pm solution was not complete. Thanks Tomas > /Jarkko > > > --- > > drivers/char/tpm/tpm_crb.c | 25 ++++++++++++++++++++++++- > > 1 file changed, 24 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c > > index 86f355b6df1d..d8dfff0fdfce 100644 > > --- a/drivers/char/tpm/tpm_crb.c > > +++ b/drivers/char/tpm/tpm_crb.c > > @@ -479,10 +479,33 @@ static int crb_pm_runtime_resume(struct device > > *dev) > > > > return crb_cmd_ready(dev, priv); > > } > > + > > +static int crb_pm_suspend(struct device *dev) { > > + int ret; > > + > > + ret = tpm_pm_suspend(dev); > > + if (ret) > > + return ret; > > + > > + return crb_pm_runtime_suspend(dev); > > +} > > + > > +static int crb_pm_resume(struct device *dev) { > > + int ret; > > + > > + ret = crb_pm_runtime_resume(dev); > > + if (ret) > > + return ret; > > + > > + return tpm_pm_resume(dev); > > +} > > + > > #endif /* CONFIG_PM */ > > > > static const struct dev_pm_ops crb_pm = { > > - SET_SYSTEM_SLEEP_PM_OPS(tpm_pm_suspend, tpm_pm_resume) > > + SET_SYSTEM_SLEEP_PM_OPS(crb_pm_suspend, crb_pm_resume) > > SET_RUNTIME_PM_OPS(crb_pm_runtime_suspend, > crb_pm_runtime_resume, > > NULL) }; > > > > -- > > 2.7.4 > >
WARNING: multiple messages have this Message-ID (diff)
From: "Winkler, Tomas" <tomas.winkler-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> To: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> Cc: "linux-security-module-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <linux-security-module-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, "tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org" <tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>, "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> Subject: Re: [PATCH] tpm/tpm_crb: enter the low power state upon device suspend Date: Mon, 6 Mar 2017 18:19:59 +0000 [thread overview] Message-ID: <5B8DA87D05A7694D9FA63FD143655C1B543A553C@hasmsx108.ger.corp.intel.com> (raw) In-Reply-To: <20170306144437.vlrilvo33rxans5t-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> > > On Mon, Mar 06, 2017 at 01:53:35AM +0200, Tomas Winkler wrote: > > This fix enables a platform to enter the idle state (suspend-to-idle) > > > > The driver needs to request explicitly go_idle upon completion from > > the pm suspend handler. > > The runtime pm is disabled on suspend during prepare state by calling > > pm_runtime_get_noresume, hence we cannot relay on runtime pm to leave > > the device in low power state. Symmetrically cmdReady is called upon > > resume. > > > > Signed-off-by: Tomas Winkler <tomas.winkler-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> > > LGTM > > Tested-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> > Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> > > PS. What about Fixes? Does this need it? No, I don't think this is a regression caused by any patch, rather the pm solution was not complete. Thanks Tomas > /Jarkko > > > --- > > drivers/char/tpm/tpm_crb.c | 25 ++++++++++++++++++++++++- > > 1 file changed, 24 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c > > index 86f355b6df1d..d8dfff0fdfce 100644 > > --- a/drivers/char/tpm/tpm_crb.c > > +++ b/drivers/char/tpm/tpm_crb.c > > @@ -479,10 +479,33 @@ static int crb_pm_runtime_resume(struct device > > *dev) > > > > return crb_cmd_ready(dev, priv); > > } > > + > > +static int crb_pm_suspend(struct device *dev) { > > + int ret; > > + > > + ret = tpm_pm_suspend(dev); > > + if (ret) > > + return ret; > > + > > + return crb_pm_runtime_suspend(dev); > > +} > > + > > +static int crb_pm_resume(struct device *dev) { > > + int ret; > > + > > + ret = crb_pm_runtime_resume(dev); > > + if (ret) > > + return ret; > > + > > + return tpm_pm_resume(dev); > > +} > > + > > #endif /* CONFIG_PM */ > > > > static const struct dev_pm_ops crb_pm = { > > - SET_SYSTEM_SLEEP_PM_OPS(tpm_pm_suspend, tpm_pm_resume) > > + SET_SYSTEM_SLEEP_PM_OPS(crb_pm_suspend, crb_pm_resume) > > SET_RUNTIME_PM_OPS(crb_pm_runtime_suspend, > crb_pm_runtime_resume, > > NULL) }; > > > > -- > > 2.7.4 > > ------------------------------------------------------------------------------ Announcing the Oxford Dictionaries API! The API offers world-renowned dictionary content that is easy and intuitive to access. Sign up for an account today to start using our lexical data to power your apps and projects. Get started today and enter our developer competition. http://sdm.link/oxford
next prev parent reply other threads:[~2017-03-06 18:20 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-03-05 23:53 [PATCH] tpm/tpm_crb: enter the low power state upon device suspend Tomas Winkler 2017-03-06 14:44 ` Jarkko Sakkinen 2017-03-06 14:44 ` Jarkko Sakkinen 2017-03-06 18:19 ` Winkler, Tomas [this message] 2017-03-06 18:19 ` Winkler, Tomas 2017-03-07 8:30 ` Jarkko Sakkinen 2017-03-07 8:30 ` Jarkko Sakkinen
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=5B8DA87D05A7694D9FA63FD143655C1B543A553C@hasmsx108.ger.corp.intel.com \ --to=tomas.winkler@intel.com \ --cc=jarkko.sakkinen@linux.intel.com \ --cc=jgunthorpe@obsidianresearch.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-security-module@vger.kernel.org \ --cc=tpmdd-devel@lists.sourceforge.net \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.