RE: [PATCH 1/1] TPM: STMicroelectronics ST33 I2C

From: Mathias LEBLANC
Date: Mon Nov 19 2012 - 08:49:16 EST


Hi Kent,

Which is the version of your kernel?
The tpm_continue_selftest function (declare in tpm.c) seems to be different in the kernel 3.x.x .
I will send a patch for the 2.6.x and 3.x.x

regards,

Mathias Leblanc
________________________________________
From: Kent Yoder [key@xxxxxxxxxxxxxxxxxx]
Sent: 14 November 2012 23:06
To: Mathias LEBLANC
Cc: Rajiv Andrade; Marcel Selhorst; Sirrix AG; tpmdd-devel@xxxxxxxxxxxxxxxxxxxxx; Debora Velarde; linux-kernel@xxxxxxxxxxxxxxx; Jean-Luc BLANC
Subject: Re: [PATCH 1/1] TPM: STMicroelectronics ST33 I2C

Hi Mathias,

On Wed, Nov 14, 2012 at 03:31:42PM +0100, Mathias Leblanc wrote:
> * STMicroelectronics version 1.2.0, Copyright (C) 2010
> * STMicroelectronics comes with ABSOLUTELY NO WARRANTY.
> * This is free software, and you are welcome to redistribute it
> * under certain conditions.
>
> This is the driver for TPM chip from ST Microelectronics.
>
> If you have a TPM security chip from STMicroelectronics working with
> an I2C, in menuconfig or .config choose the tpm driver on
> device --> tpm and activate the protocol of your choice before compiling
> the kernel.
> The driver will be accessible from within Linux.
>
> Tested on linux x86/x64, beagleboard REV B & XM REV C and CHROMIUM OS

Getting some build errors here:

drivers/char/tpm/tpm_stm_st33_i2c.c: In function ‘__check_interrupts’:
drivers/char/tpm/tpm_stm_st33_i2c.c:615:1: warning: return from
incompatible pointer type [enabled by default]
drivers/char/tpm/tpm_stm_st33_i2c.c: In function ‘__check_power_mgt’:
drivers/char/tpm/tpm_stm_st33_i2c.c:619:1: warning: return from
incompatible pointer type [enabled by default]
drivers/char/tpm/tpm_stm_st33_i2c.c: In function ‘tpm_st33_i2c_probe’:
drivers/char/tpm/tpm_stm_st33_i2c.c:725:3: warning: suggest parentheses
around arithmetic in operand of ‘|’ [-Wparentheses]
drivers/char/tpm/tpm_stm_st33_i2c.c: In function
‘tpm_st33_i2c_pm_suspend’:
drivers/char/tpm/tpm_stm_st33_i2c.c:826:3: error: too many arguments to
function ‘tpm_pm_suspend’
In file included from drivers/char/tpm/tpm_stm_st33_i2c.h:55:0,
from drivers/char/tpm/tpm_stm_st33_i2c.c:35:
drivers/char/tpm/tpm.h:326:12: note: declared here
drivers/char/tpm/tpm_stm_st33_i2c.c: In function
‘tpm_st33_i2c_pm_resume’:
drivers/char/tpm/tpm_stm_st33_i2c.c:855:3: error:
implicit declaration of function
‘tpm_continue_selftest’
[-Werror=implicit-function-declaration]

[cut]
> +/*
> + * _wait_for_interrupt_serirq_timeout
> + * @param: tpm, the chip description
> + * @param: timeout, the timeout of the interrupt
> + * @return: the status of the interruption.
> + */
> +static int _wait_for_interrupt_serirq_timeout(struct tpm_chip *chip,
> + unsigned long timeout)
> +{
> + int status;
> + struct i2c_client *client;
> + struct st33zp24_platform_data *pin_infos;
> +
> + client = (struct i2c_client *) chip->vendor.iobase;
> + pin_infos = client->dev.platform_data;
> +
> + status = wait_for_completion_interruptible_timeout(
> + &pin_infos->irq_detection,
> + timeout);

status should be a long here.

[cut]
> +
> + if (client == NULL) {
> + pr_info("client is NULL. exiting.\n");
> + err = -ENODEV;
> + goto end;
> + }
> +
> + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
> + pr_info("client not i2c capable\n");
> + err = -ENODEV;
> + goto end;
> + }
> +
> + chip = tpm_register_hardware(&client->dev, &st_i2c_tpm);
> + if (!chip) {
> + pr_info("fail chip\n");

Please use dev_info() in place of pr_info().

Thanks,
Kent
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/