Re: TPM driver breaks S3 suspend

From: Jarkko Sakkinen
Date: Tue Jan 02 2018 - 09:47:59 EST


On Mon, Dec 25, 2017 at 10:43:40AM +0800, Chris Chiu wrote:
> On Mon, Dec 25, 2017 at 4:33 AM, Jarkko Sakkinen
> <jarkko.sakkinen@xxxxxxxxxxxxxxx> wrote:
> > On Thu, Dec 21, 2017 at 04:04:56PM +0800, Chris Chiu wrote:
> >> Hi,
> >> We have a desktop which has S3 suspend (to RAM) problem due to
> >> error messages as follows.
> >> [ 198.908282] tpm tpm0: Error (38) sending savestate before suspend
> >> [ 198.908289] __pnp_bus_suspend(): tpm_pm_suspend+0x0/0x160 returns 38
> >> [ 198.908293] dpm_run_callback(): pnp_bus_suspend+0x0/0x20 returns 38
> >> [ 198.908298] PM: Device 00:0b failed to suspend: error 38
> >>
> >> However, the first suspend after boot is working although it still
> >> shows an interesting message during resume.
> >> [ 155.789945] tpm tpm0: A TPM error (38) occurred continue selftest
> >>
> >> The error code 38 in definition is TPM_ERR_INVALID_POSTINIT. I
> >> found some explanations which said this error code means that this
> >> command was received in the wrong sequence relative to a TPM_Startup
> >> command. Don't really know what happens here and how should I deal
> >> with this? Any suggestions? Please let me know what else information
> >> should I provide. Thanks
> >>
> >> Chris
> >
> > The sequences for initializing TPM 1.x devices has been fairly static
> > for a long time. Has this occured after a kernel update? Is there a
> > kernel version where it used to work and a version where it doesn't?
> > Thanks.
> >
> > /Jarkko
> Hi Jarkko,
>
> Actually, it's a new Acer machine which I never tried an older kernel. I only
> tried versions >= 4.13. The output of "lsmod | grep tpm" is none. I think it's
> not built as a module.
>
> Chris

Can you try it on git://git.infradead.org/users/jjs/linux-tpmdd.git ?

Maybe it is related to the LPC #CLKRUN issues we've had.

/Jarkko