Re: [PATCH v2] tpm: Factor out common startup code

From: Jason Gunthorpe
Date: Wed May 18 2016 - 13:13:32 EST


On Wed, May 18, 2016 at 12:59:24PM +0300, Jarkko Sakkinen wrote:
> On Tue, May 17, 2016 at 10:53:04AM -0600, Jason Gunthorpe wrote:
> > On Tue, May 17, 2016 at 07:15:57AM +0300, Jarkko Sakkinen wrote:
> > > On Mon, May 16, 2016 at 12:25:47PM -0600, Jason Gunthorpe wrote:
> > > > Provide some flags in tpm_class_ops to allow drivers to opt-in to the
> > > > common startup sequence. This is the sequence used by tpm_tis and
> > > > tpm_crb.
> > > >
> > > > All drivers should set this flag.
> > >
> > > The commit message should be a much much more verbose I cannot include
> > > this without a better explanation. Please update this for the next
> > > revision.
> >
> > What more description do you want to see?
>
> It is lacking a lot of relevant information:
>
> * It should explain what you mean by startup sequence".
> * It should describe the constant TPM_OPS_AUTO_STARTUP
> * It should explain what drivers are doing at the moment (before
> this feature).
> * It should explain what is the benefit for different HW drivers
> after applying this patch.
> * It should explain why you call the executed sequence "automatic"
> and also use the word "standard". Yeah, I didn't understand this,
> this not me being picky. Maybe it should be DEFAULT_STARTUP??

Well, use something like this then. You can edit descriptions to your
liking when you apply the patch, FWIW.

tpm: Factor out common startup code

The TCG standard startup sequence (get timeouts, tpm startup, etc) for
TPM and TPM2 chips is being open coded in many drivers, move it into
the core code.

tpm_tis and tpm_crb are used as the basis for the core code
implementation and the easy drivers are converted. In the process
several small drivers bugs relating to error handling this flow
are fixed.

For now the flag TPM_OPS_AUTO_STARTUP is optional to allow a staged
driver roll out, but ultimately all drivers should use this flow and
the flag removed. Some drivers still do not implement the startup
sequence at all and will need to be tested with it enabled.