All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Winkler, Tomas" <tomas.winkler-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: Jason Gunthorpe
	<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
Cc: "tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org"
	<tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
Subject: Re: [PATCH 1/3] tpm/tpm_crb: implement tpm crb idle state
Date: Wed, 7 Sep 2016 21:14:35 +0000	[thread overview]
Message-ID: <5B8DA87D05A7694D9FA63FD143655C1B542CBABC@hasmsx108.ger.corp.intel.com> (raw)
In-Reply-To: <20160907161548.GA4791-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>

> On Wed, Sep 07, 2016 at 02:32:31PM +0300, Tomas Winkler wrote:
> > The register TPM_CRB_CTRL_REQ_x contains bits goIdle and cmdReady for
> > SW to indicate that the device can enter or should exit the idle state.
> >
> > The legacy ACPI-start (SMI + DMA) based devices do not support these
> > bits and the idle state management is not exposed to the host SW.
> > Thus, this functionality only is enabled only for a CRB start (MMIO)
> > based devices.
> >
> > We introduce two new callbacks for command ready and go idle for TPM
> > CRB device which are called across TPM transactions.
> 
> Jarkko and I have been talking about higher level locking (eg to sequence a
> series of operations) it might make more sense to move the power
> management up to that layer. 

I'm not sure this has much benefit, this would be much more error prone and
would be unnecessary more complicated than just protecting the low API in one place.

>No sense in going to idle mode if we know
> another command is about to come.

Yes you are right, this is of course one thing that comes immediately to mind, 
and this is indeed implemented in the FW already and also what would autosuspend feature 
in runtime_pm provide in via  SW ....  if we would use it.  
So shortly from the functional point this is covered, the idle state is not trashed. 

> Are you sure this shouldn't be linked into some kind of core kernel pm
> scheme? Why is this different from the existing pm stuff?
>
Yes, of course I've considered runtime_pm but I've pulled from using it for now 
is that it has many side effects that need to be mapped first, second because of the HW bug 
we cannot safely detect if the device is in idle state so some more complicated book keeping 
would have to be implemented. Last we need a simple solution to backport.
 
> > +static int __crb_go_idle(struct device *dev, struct crb_priv *priv) {
> > +static int crb_go_idle(struct tpm_chip *chip) {
> > +	struct crb_priv *priv = dev_get_drvdata(&chip->dev);
> > +
> > +	return __crb_go_idle(&chip->dev, priv);
> 
> Hurm, these ugly wrappers should probably be part of the next patch, since
> that is what needs them.

You are right it missing a bit context if you're looking into single patch, but the paradigm is used widely in the kernel.
If this blocks this patch from merging I will move the code.
Thanks
Tomas


------------------------------------------------------------------------------

  parent reply	other threads:[~2016-09-07 21:14 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-07 11:32 [PATCH 0/3] tpm/tpm_crb: implement power management Tomas Winkler
     [not found] ` <1473247953-24617-1-git-send-email-tomas.winkler-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-09-07 11:32   ` [PATCH 1/3] tpm/tpm_crb: implement tpm crb idle state Tomas Winkler
     [not found]     ` <1473247953-24617-2-git-send-email-tomas.winkler-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-09-07 16:15       ` Jason Gunthorpe
     [not found]         ` <20160907161548.GA4791-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-07 21:14           ` Winkler, Tomas [this message]
     [not found]             ` <5B8DA87D05A7694D9FA63FD143655C1B542CBABC-Jy8z56yoSI8MvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-09-07 21:55               ` Jason Gunthorpe
     [not found]                 ` <20160907215502.GB29666-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-07 22:17                   ` Winkler, Tomas
     [not found]                     ` <5B8DA87D05A7694D9FA63FD143655C1B542CBB41-Jy8z56yoSI8MvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-09-07 22:19                       ` Jason Gunthorpe
     [not found]                         ` <20160907221908.GA30192-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-07 22:28                           ` Winkler, Tomas
     [not found]                             ` <5B8DA87D05A7694D9FA63FD143655C1B542CBB6A-Jy8z56yoSI8MvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-09-07 22:39                               ` Jason Gunthorpe
     [not found]                                 ` <20160907223934.GA32261-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-07 23:16                                   ` Winkler, Tomas
2016-09-08 10:35           ` Jarkko Sakkinen
2016-09-08 11:11       ` Jarkko Sakkinen
     [not found]         ` <20160908111115.GD4712-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-09-08 11:17           ` Jarkko Sakkinen
     [not found]             ` <20160908111745.GF4712-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-09-08 12:35               ` Winkler, Tomas
     [not found]                 ` <5B8DA87D05A7694D9FA63FD143655C1B542CC2AC-Jy8z56yoSI8MvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-09-08 14:06                   ` Jarkko Sakkinen
2016-09-07 11:32   ` [PATCH 2/3] tmp/tpm_crb: fix Intel PTT hw bug during " Tomas Winkler
     [not found]     ` <1473247953-24617-3-git-send-email-tomas.winkler-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-09-07 16:17       ` Jason Gunthorpe
     [not found]         ` <20160907161744.GB4791-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-07 21:21           ` Winkler, Tomas
     [not found]             ` <5B8DA87D05A7694D9FA63FD143655C1B542CBAD4-Jy8z56yoSI8MvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-09-07 21:44               ` Jason Gunthorpe
     [not found]                 ` <20160907214448.GA29666-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-07 21:52                   ` Winkler, Tomas
     [not found]                     ` <5B8DA87D05A7694D9FA63FD143655C1B542CBB13-Jy8z56yoSI8MvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-09-07 21:55                       ` Jason Gunthorpe
2016-09-08 11:14       ` Jarkko Sakkinen
     [not found]         ` <20160908111458.GE4712-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-09-08 13:44           ` Jarkko Sakkinen
2016-09-07 11:32   ` [PATCH 3/3] tpm/tpm_crb: cache cmd_size register value Tomas Winkler
     [not found]     ` <1473247953-24617-4-git-send-email-tomas.winkler-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-09-08 11:00       ` Jarkko Sakkinen
     [not found]         ` <20160908110034.GC4712-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-09-08 13:42           ` Jarkko Sakkinen
2016-09-07 15:19   ` [PATCH 0/3] tpm/tpm_crb: implement power management Jarkko Sakkinen
  -- strict thread matches above, loose matches on Subject: below --
2016-09-07 10:25 Tomas Winkler
     [not found] ` <1473243950-23579-1-git-send-email-tomas.winkler-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-09-07 10:25   ` [PATCH 1/3] tpm/tpm_crb: implement tpm crb idle state Tomas Winkler

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=5B8DA87D05A7694D9FA63FD143655C1B542CBABC@hasmsx108.ger.corp.intel.com \
    --to=tomas.winkler-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org \
    --cc=tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    /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: link
Be 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.