James, Javier, thank you for sorting this out. I'll just have couple of minor comments on the patch. On Mon, Dec 18, 2017 at 01:22:28PM +0100, Javier Martinez Canillas wrote: > + u32 vendor, intfcaps, intmask, clkrun_val; Could these split into four lines (one declaration per line)? > u8 rid; > int rc, probe; > struct tpm_chip *chip; > @@ -772,6 +772,15 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq, > ILB_REMAP_SIZE); > if (!priv->ilb_base_addr) > return -ENOMEM; > + > + clkrun_val = ioread32(priv->ilb_base_addr + LPC_CNTRL_OFFSET); > + /* Check if CLKRUN# is already not enabled in the LPC bus */ /* > + if (!(clkrun_val & LPC_CLKRUN_EN)) { > + priv->flags |= TPM_TIS_CLK_ENABLE; Is the flag added just so surpress those WARN()'s? I've forgot why the WARN()'s even exist assuming that driver is functioning correctly. /Jarkko