Re: [PATCH v2 1/2] tpm: do not suspend/resume if power stays on

Jarkko Sakkinen <[email protected]>
Newsgroups net.sourceforge.lists.tpmdd-devel,org.kernel.vger.linux-kernel,org.kernel.vger.stable
Message-ID <[email protected]>
On Wed, May 30, 2018 at 11:44:39PM +0300, Jarkko Sakkinen wrote:
> From: Enric Balletbo i Serra <[email protected]>
> 
> commit b5d0ebc99bf5d0801a5ecbe958caa3d68b8eaee8 upstream
> 
> The suspend/resume behavior of the TPM can be controlled by setting
> "powered-while-suspended" in the DTS. This is useful for the cases
> when hardware does not power-off the TPM.
> 
> Signed-off-by: Sonny Rao <[email protected]>
> Signed-off-by: Enric Balletbo i Serra <[email protected]>
> Reviewed-by: Jason Gunthorpe <[email protected]>
> Reviewed-by: Jarkko Sakkinen <[email protected]>
> Signed-off-by: Jarkko Sakkinen <[email protected]>
> Signed-off-by: James Morris <[email protected]>
> ---
>  drivers/char/tpm/tpm-chip.c      | 12 ++++++++++++
>  drivers/char/tpm/tpm-interface.c |  3 +++
>  drivers/char/tpm/tpm.h           |  1 +
>  3 files changed, 16 insertions(+)
> 
> diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
> index a0d9ac6b6cc9..a8d7220f613c 100644
> --- a/drivers/char/tpm/tpm-chip.c
> +++ b/drivers/char/tpm/tpm-chip.c
> @@ -324,8 +324,20 @@ static void tpm1_chip_unregister(struct tpm_chip *chip)
>   */
>  int tpm_chip_register(struct tpm_chip *chip)
>  {
> +#ifdef CONFIG_TCG_IBMVTPM
> +	struct device_node *np;
> +#endif
>  	int rc;
>  
> +#ifdef CONFIG_TCG_IBMVTPM
> +	np = of_find_node_by_name(NULL, "vtpm");
> +	if (!np)
> +		return -ENODEV;
> +	if (of_property_read_bool(np, "powered-while-suspended"))
> +		chip->flags |= TPM_CHIP_FLAG_ALWAYS_POWERED;
> +	of_node_put(np);
> +#endif

I'll have to revise this as more config flag should be CONFIG_OF
and property should be conditionally read if the node is found.
Then it can be relocated without interference.

/Jarkko
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.