Re: [BISECTED] tpm CLKRUN breaks PS/2 keyboard and touchpad on Braswell system

From: Jarkko Sakkinen
Date: Tue Dec 19 2017 - 08:10:49 EST

On Tue, Dec 19, 2017 at 12:34:46AM +0100, Javier Martinez Canillas wrote:
> Hello Jason,
> On 12/18/2017 09:19 PM, Jason Gunthorpe wrote:
> > On Mon, Dec 18, 2017 at 07:34:29PM +0000, Shaikh, Azhar wrote:
> >
> >>> IIUC, if CLKRUN_EN is enabled, then all the devices attached to the
> >>> LPC bus have to support the CLKRUN protocol. My guess is that on
> >>> some Braswell systems LPC power management is enabled but the TPM
> >>> device doesn't have CLKRUN support.
> >>
> >> I think this is what might be happening here.
> >
> > That makes it a BIOS bug, not a chipset bug, and we shouldn't be
> > trying to fix it like this in Linux.
> >
> Indeed, the system integrator should make sure that all peripherals that
> are connected through the LPC bus either support the CLKRUN protocol and
> CLKRUN_EN is enabled or CLKRUN_EN should be disabled.
> > Based on the original discussion I always thought this was an Intel
> > chipset bug and applies to all cases.
> >
> After thinking about this and with a better understanding of the issue,
> I think we have 2 options (please let me know if I got something wrong):
> 1) Leave the code as is and apply the patch I shared with James. In that
> case the CLKRUN protocol will be disabled only during TPM transactions
> and not enabled again after transactions if it wasn't enabled.
> This shouldn't affect other peripherals since even if they have CLKRUN
> support, they should work correctly while CLKRUN protocol is disabled.
> The disadvantage is that TPM devices that have CLKRUN support (do they
> exist?) will not take the advantage of the power management feature of
> stopping the LPC host LCLK clock during low-power states.

CLKRUN is enabled after TPM has processed the command so how this could
make power mgmt worse?