On Wed, Mar 30, 2016 at 11:38:14PM +0200, Christophe Ricard wrote:
> Move tpm_vendor_specific data related to TCG PTP specification to tpm_chip.
> 
> All those fields are directly linked with well known concepts defined in
> the following chapters common to every TCG tpms.
> timeout: See see 5.5.1.4 Timeouts
> duration: See 5.5.1.3 Command Duration
> 
> Also they are used in TPM drivers (tpm_i2c_atmel, tpm_i2c_infineon,
> tpm_i2c_nuvoton, tpm_tis and xen-tpmfront) as well as in TPM core files
> (tpm-sysfs, tpm-interface and tpm2-cmd).
> 
> Signed-off-by: Christophe Ricard <[email protected]>

Yes, exactly those fields that are used by tpm-interface.c, tpm2-cmd.c
and other "main TPM driver" things should be in tpm_chip. Nothing more
or nothing less...

> ---
>  drivers/char/tpm/st33zp24/st33zp24.c | 18 +++++++-------
>  drivers/char/tpm/tpm-interface.c     | 48 
> ++++++++++++++++++------------------
>  drivers/char/tpm/tpm-sysfs.c         | 20 +++++++--------
>  drivers/char/tpm/tpm.h               |  8 +++---
>  drivers/char/tpm/tpm2-cmd.c          |  2 +-
>  drivers/char/tpm/tpm_i2c_atmel.c     |  8 +++---
>  drivers/char/tpm/tpm_i2c_infineon.c  | 20 +++++++--------
>  drivers/char/tpm/tpm_i2c_nuvoton.c   | 24 +++++++++---------
>  drivers/char/tpm/tpm_tis.c           | 24 +++++++++---------
>  drivers/char/tpm/xen-tpmfront.c      |  4 +--
>  10 files changed, 88 insertions(+), 88 deletions(-)
> 
> diff --git a/drivers/char/tpm/st33zp24/st33zp24.c 
> b/drivers/char/tpm/st33zp24/st33zp24.c
> index 3802c58..07531e9 100644
> --- a/drivers/char/tpm/st33zp24/st33zp24.c
> +++ b/drivers/char/tpm/st33zp24/st33zp24.c
> @@ -163,7 +163,7 @@ static int request_locality(struct tpm_chip *chip)
>       if (ret < 0)
>               return ret;
>  
> -     stop = jiffies + chip->vendor.timeout_a;
> +     stop = jiffies + chip->timeout_a;
>  
>       /* Request locality is usually effective after the request */
>       do {
> @@ -205,7 +205,7 @@ static int get_burstcount(struct tpm_chip *chip)
>  
>       tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
>  
> -     stop = jiffies + chip->vendor.timeout_d;
> +     stop = jiffies + chip->timeout_d;
>       do {
>               status = tpm_dev->ops->recv(tpm_dev->phy_id, TPM_STS + 1,
>                                           &temp, 1);
> @@ -337,7 +337,7 @@ static int recv_data(struct tpm_chip *chip, u8 *buf, 
> size_t count)
>       while (size < count &&
>              wait_for_stat(chip,
>                            TPM_STS_DATA_AVAIL | TPM_STS_VALID,
> -                          chip->vendor.timeout_c,
> +                          chip->timeout_c,
>                            &tpm_dev->read_queue, true) == 0) {
>               burstcnt = get_burstcount(chip);
>               if (burstcnt < 0)
> @@ -406,7 +406,7 @@ static int st33zp24_send(struct tpm_chip *chip, unsigned 
> char *buf,
>       if ((status & TPM_STS_COMMAND_READY) == 0) {
>               st33zp24_cancel(chip);
>               if (wait_for_stat
> -                 (chip, TPM_STS_COMMAND_READY, chip->vendor.timeout_b,
> +                 (chip, TPM_STS_COMMAND_READY, chip->timeout_b,
>                    &tpm_dev->read_queue, false) < 0) {
>                       ret = -ETIME;
>                       goto out_err;
> @@ -561,10 +561,10 @@ int st33zp24_probe(void *phy_id, const struct 
> st33zp24_phy_ops *ops,
>       tpm_dev->phy_id = phy_id;
>       tpm_dev->ops = ops;
>  
> -     chip->vendor.timeout_a = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
> -     chip->vendor.timeout_b = msecs_to_jiffies(TIS_LONG_TIMEOUT);
> -     chip->vendor.timeout_c = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
> -     chip->vendor.timeout_d = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
> +     chip->timeout_a = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
> +     chip->timeout_b = msecs_to_jiffies(TIS_LONG_TIMEOUT);
> +     chip->timeout_c = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
> +     chip->timeout_d = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
>  
>       tpm_dev->locality = LOCALITY0;
>  
> @@ -673,7 +673,7 @@ int st33zp24_pm_resume(struct device *dev)
>       if (gpio_is_valid(tpm_dev->io_lpcpd)) {
>               gpio_set_value(tpm_dev->io_lpcpd, 1);
>               ret = wait_for_stat(chip,
> -                             TPM_STS_VALID, chip->vendor.timeout_b,
> +                             TPM_STS_VALID, chip->timeout_b,
>                               &tpm_dev->read_queue, false);
>       } else {
>               ret = tpm_pm_resume(dev);
> diff --git a/drivers/char/tpm/tpm-interface.c 
> b/drivers/char/tpm/tpm-interface.c
> index 101bb47..7cba092 100644
> --- a/drivers/char/tpm/tpm-interface.c
> +++ b/drivers/char/tpm/tpm-interface.c
> @@ -319,7 +319,7 @@ unsigned long tpm_calc_ordinal_duration(struct tpm_chip 
> *chip,
>               duration_idx = tpm_ordinal_duration[ordinal];
>  
>       if (duration_idx != TPM_UNDEFINED)
> -             duration = chip->vendor.duration[duration_idx];
> +             duration = chip->duration[duration_idx];
>       if (duration <= 0)
>               return 2 * 60 * HZ;
>       else
> @@ -505,15 +505,15 @@ int tpm_get_timeouts(struct tpm_chip *chip)
>  
>       if (chip->flags & TPM_CHIP_FLAG_TPM2) {
>               /* Fixed timeouts for TPM2 */
> -             chip->vendor.timeout_a = msecs_to_jiffies(TPM2_TIMEOUT_A);
> -             chip->vendor.timeout_b = msecs_to_jiffies(TPM2_TIMEOUT_B);
> -             chip->vendor.timeout_c = msecs_to_jiffies(TPM2_TIMEOUT_C);
> -             chip->vendor.timeout_d = msecs_to_jiffies(TPM2_TIMEOUT_D);
> -             chip->vendor.duration[TPM_SHORT] =
> +             chip->timeout_a = msecs_to_jiffies(TPM2_TIMEOUT_A);
> +             chip->timeout_b = msecs_to_jiffies(TPM2_TIMEOUT_B);
> +             chip->timeout_c = msecs_to_jiffies(TPM2_TIMEOUT_C);
> +             chip->timeout_d = msecs_to_jiffies(TPM2_TIMEOUT_D);
> +             chip->duration[TPM_SHORT] =
>                   msecs_to_jiffies(TPM2_DURATION_SHORT);
> -             chip->vendor.duration[TPM_MEDIUM] =
> +             chip->duration[TPM_MEDIUM] =
>                   msecs_to_jiffies(TPM2_DURATION_MEDIUM);
> -             chip->vendor.duration[TPM_LONG] =
> +             chip->duration[TPM_LONG] =
>                   msecs_to_jiffies(TPM2_DURATION_LONG);
>               return 0;
>       }
> @@ -561,10 +561,10 @@ int tpm_get_timeouts(struct tpm_chip *chip)
>        * of misreporting.
>        */
>       if (chip->ops->update_timeouts != NULL)
> -             chip->vendor.timeout_adjusted =
> +             chip->timeout_adjusted =
>                       chip->ops->update_timeouts(chip, new_timeout);
>  
> -     if (!chip->vendor.timeout_adjusted) {
> +     if (!chip->timeout_adjusted) {
>               /* Don't overwrite default if value is 0 */
>               if (new_timeout[0] != 0 && new_timeout[0] < 1000) {
>                       int i;
> @@ -572,12 +572,12 @@ int tpm_get_timeouts(struct tpm_chip *chip)
>                       /* timeouts in msec rather usec */
>                       for (i = 0; i != ARRAY_SIZE(new_timeout); i++)
>                               new_timeout[i] *= 1000;
> -                     chip->vendor.timeout_adjusted = true;
> +                     chip->timeout_adjusted = true;
>               }
>       }
>  
>       /* Report adjusted timeouts */
> -     if (chip->vendor.timeout_adjusted) {
> +     if (chip->timeout_adjusted) {
>               dev_info(&chip->dev,
>                        HW_ERR "Adjusting reported timeouts: A %lu->%luus B 
> %lu->%luus C %lu->%luus D %lu->%luus\n",
>                        old_timeout[0], new_timeout[0],
> @@ -586,10 +586,10 @@ int tpm_get_timeouts(struct tpm_chip *chip)
>                        old_timeout[3], new_timeout[3]);
>       }
>  
> -     chip->vendor.timeout_a = usecs_to_jiffies(new_timeout[0]);
> -     chip->vendor.timeout_b = usecs_to_jiffies(new_timeout[1]);
> -     chip->vendor.timeout_c = usecs_to_jiffies(new_timeout[2]);
> -     chip->vendor.timeout_d = usecs_to_jiffies(new_timeout[3]);
> +     chip->timeout_a = usecs_to_jiffies(new_timeout[0]);
> +     chip->timeout_b = usecs_to_jiffies(new_timeout[1]);
> +     chip->timeout_c = usecs_to_jiffies(new_timeout[2]);
> +     chip->timeout_d = usecs_to_jiffies(new_timeout[3]);
>  
>  duration:
>       tpm_cmd.header.in = tpm_getcap_header;
> @@ -608,11 +608,11 @@ duration:
>               return -EINVAL;
>  
>       duration_cap = &tpm_cmd.params.getcap_out.cap.duration;
> -     chip->vendor.duration[TPM_SHORT] =
> +     chip->duration[TPM_SHORT] =
>           usecs_to_jiffies(be32_to_cpu(duration_cap->tpm_short));
> -     chip->vendor.duration[TPM_MEDIUM] =
> +     chip->duration[TPM_MEDIUM] =
>           usecs_to_jiffies(be32_to_cpu(duration_cap->tpm_medium));
> -     chip->vendor.duration[TPM_LONG] =
> +     chip->duration[TPM_LONG] =
>           usecs_to_jiffies(be32_to_cpu(duration_cap->tpm_long));
>  
>       /* The Broadcom BCM0102 chipset in a Dell Latitude D820 gets the above
> @@ -620,11 +620,11 @@ duration:
>        * fix up the resulting too-small TPM_SHORT value to make things work.
>        * We also scale the TPM_MEDIUM and -_LONG values by 1000.
>        */
> -     if (chip->vendor.duration[TPM_SHORT] < (HZ / 100)) {
> -             chip->vendor.duration[TPM_SHORT] = HZ;
> -             chip->vendor.duration[TPM_MEDIUM] *= 1000;
> -             chip->vendor.duration[TPM_LONG] *= 1000;
> -             chip->vendor.duration_adjusted = true;
> +     if (chip->duration[TPM_SHORT] < (HZ / 100)) {
> +             chip->duration[TPM_SHORT] = HZ;
> +             chip->duration[TPM_MEDIUM] *= 1000;
> +             chip->duration[TPM_LONG] *= 1000;
> +             chip->duration_adjusted = true;
>               dev_info(&chip->dev, "Adjusting TPM timeout parameters.");
>       }
>       return 0;
> diff --git a/drivers/char/tpm/tpm-sysfs.c b/drivers/char/tpm/tpm-sysfs.c
> index 34e7fc7..a7c3473 100644
> --- a/drivers/char/tpm/tpm-sysfs.c
> +++ b/drivers/char/tpm/tpm-sysfs.c
> @@ -236,14 +236,14 @@ static ssize_t durations_show(struct device *dev, 
> struct device_attribute *attr,
>  {
>       struct tpm_chip *chip = dev_get_drvdata(dev);
>  
> -     if (chip->vendor.duration[TPM_LONG] == 0)
> +     if (chip->duration[TPM_LONG] == 0)
>               return 0;
>  
>       return sprintf(buf, "%d %d %d [%s]\n",
> -                    jiffies_to_usecs(chip->vendor.duration[TPM_SHORT]),
> -                    jiffies_to_usecs(chip->vendor.duration[TPM_MEDIUM]),
> -                    jiffies_to_usecs(chip->vendor.duration[TPM_LONG]),
> -                    chip->vendor.duration_adjusted
> +                    jiffies_to_usecs(chip->duration[TPM_SHORT]),
> +                    jiffies_to_usecs(chip->duration[TPM_MEDIUM]),
> +                    jiffies_to_usecs(chip->duration[TPM_LONG]),
> +                    chip->duration_adjusted
>                      ? "adjusted" : "original");
>  }
>  static DEVICE_ATTR_RO(durations);
> @@ -254,11 +254,11 @@ static ssize_t timeouts_show(struct device *dev, struct 
> device_attribute *attr,
>       struct tpm_chip *chip = dev_get_drvdata(dev);
>  
>       return sprintf(buf, "%d %d %d %d [%s]\n",
> -                    jiffies_to_usecs(chip->vendor.timeout_a),
> -                    jiffies_to_usecs(chip->vendor.timeout_b),
> -                    jiffies_to_usecs(chip->vendor.timeout_c),
> -                    jiffies_to_usecs(chip->vendor.timeout_d),
> -                    chip->vendor.timeout_adjusted
> +                    jiffies_to_usecs(chip->timeout_a),
> +                    jiffies_to_usecs(chip->timeout_b),
> +                    jiffies_to_usecs(chip->timeout_c),
> +                    jiffies_to_usecs(chip->timeout_d),
> +                    chip->timeout_adjusted
>                      ? "adjusted" : "original");
>  }
>  static DEVICE_ATTR_RO(timeouts);
> diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h
> index 68a40c6..7e2b788 100644
> --- a/drivers/char/tpm/tpm.h
> +++ b/drivers/char/tpm/tpm.h
> @@ -131,10 +131,6 @@ enum tpm2_startup_types {
>  struct tpm_chip;
>  
>  struct tpm_vendor_specific {
> -     unsigned long timeout_a, timeout_b, timeout_c, timeout_d; /* jiffies */
> -     bool timeout_adjusted;
> -     unsigned long duration[3]; /* jiffies */
> -     bool duration_adjusted;
>       void *priv;
>  };
>  
> @@ -171,6 +167,10 @@ struct tpm_chip {
>       struct mutex tpm_mutex; /* tpm is processing */
>  
>       struct tpm_vendor_specific vendor;
> +     unsigned long timeout_a, timeout_b, timeout_c, timeout_d; /* jiffies */

One field per line. No reason to copy bad and lazy coding style.

> +     bool timeout_adjusted;
> +     unsigned long duration[3]; /* jiffies */
> +     bool duration_adjusted;
>  
>       struct dentry **bios_dir;
>  
> diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
> index 5fc0e7c..9ce8031 100644
> --- a/drivers/char/tpm/tpm2-cmd.c
> +++ b/drivers/char/tpm/tpm2-cmd.c
> @@ -793,7 +793,7 @@ unsigned long tpm2_calc_ordinal_duration(struct tpm_chip 
> *chip, u32 ordinal)
>               index = tpm2_ordinal_duration[ordinal - TPM2_CC_FIRST];
>  
>       if (index != TPM_UNDEFINED)
> -             duration = chip->vendor.duration[index];
> +             duration = chip->duration[index];
>  
>       if (duration <= 0)
>               duration = 2 * 60 * HZ;
> diff --git a/drivers/char/tpm/tpm_i2c_atmel.c 
> b/drivers/char/tpm/tpm_i2c_atmel.c
> index 55fa51f..1b66da6 100644
> --- a/drivers/char/tpm/tpm_i2c_atmel.c
> +++ b/drivers/char/tpm/tpm_i2c_atmel.c
> @@ -169,10 +169,10 @@ static int i2c_atmel_probe(struct i2c_client *client,
>               return -ENOMEM;
>  
>       /* Default timeouts */
> -     chip->vendor.timeout_a = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
> -     chip->vendor.timeout_b = msecs_to_jiffies(TPM_I2C_LONG_TIMEOUT);
> -     chip->vendor.timeout_c = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
> -     chip->vendor.timeout_d = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
> +     chip->timeout_a = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
> +     chip->timeout_b = msecs_to_jiffies(TPM_I2C_LONG_TIMEOUT);
> +     chip->timeout_c = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
> +     chip->timeout_d = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
>  
>       /* There is no known way to probe for this device, and all version
>        * information seems to be read via TPM commands. Thus we rely on the
> diff --git a/drivers/char/tpm/tpm_i2c_infineon.c 
> b/drivers/char/tpm/tpm_i2c_infineon.c
> index 8318946..a426b6f 100644
> --- a/drivers/char/tpm/tpm_i2c_infineon.c
> +++ b/drivers/char/tpm/tpm_i2c_infineon.c
> @@ -321,7 +321,7 @@ static int request_locality(struct tpm_chip *chip, int 
> loc)
>       iic_tpm_write(TPM_ACCESS(loc), &buf, 1);
>  
>       /* wait for burstcount */
> -     stop = jiffies + chip->vendor.timeout_a;
> +     stop = jiffies + chip->timeout_a;
>       do {
>               if (check_locality(chip, loc) >= 0)
>                       return loc;
> @@ -363,7 +363,7 @@ static ssize_t get_burstcount(struct tpm_chip *chip)
>  
>       /* wait for burstcount */
>       /* which timeout value, spec has 2 answers (c & d) */
> -     stop = jiffies + chip->vendor.timeout_d;
> +     stop = jiffies + chip->timeout_d;
>       do {
>               /* Note: STS is little endian */
>               if (iic_tpm_read(TPM_STS(tpm_dev.locality)+1, buf, 3) < 0)
> @@ -465,7 +465,7 @@ static int tpm_tis_i2c_recv(struct tpm_chip *chip, u8 
> *buf, size_t count)
>               goto out;
>       }
>  
> -     wait_for_stat(chip, TPM_STS_VALID, chip->vendor.timeout_c, &status);
> +     wait_for_stat(chip, TPM_STS_VALID, chip->timeout_c, &status);
>       if (status & TPM_STS_DATA_AVAIL) {      /* retry? */
>               dev_err(&chip->dev, "Error left over data\n");
>               size = -EIO;
> @@ -501,7 +501,7 @@ static int tpm_tis_i2c_send(struct tpm_chip *chip, u8 
> *buf, size_t len)
>               tpm_tis_i2c_ready(chip);
>               if (wait_for_stat
>                   (chip, TPM_STS_COMMAND_READY,
> -                  chip->vendor.timeout_b, &status) < 0) {
> +                  chip->timeout_b, &status) < 0) {
>                       rc = -ETIME;
>                       goto out_err;
>               }
> @@ -531,7 +531,7 @@ static int tpm_tis_i2c_send(struct tpm_chip *chip, u8 
> *buf, size_t len)
>               }
>  
>               wait_for_stat(chip, TPM_STS_VALID,
> -                           chip->vendor.timeout_c, &status);
> +                           chip->timeout_c, &status);
>  
>               if ((status & TPM_STS_DATA_EXPECT) == 0) {
>                       rc = -EIO;
> @@ -541,7 +541,7 @@ static int tpm_tis_i2c_send(struct tpm_chip *chip, u8 
> *buf, size_t len)
>  
>       /* write last byte */
>       iic_tpm_write(TPM_DATA_FIFO(tpm_dev.locality), &(buf[count]), 1);
> -     wait_for_stat(chip, TPM_STS_VALID, chip->vendor.timeout_c, &status);
> +     wait_for_stat(chip, TPM_STS_VALID, chip->timeout_c, &status);
>       if ((status & TPM_STS_DATA_EXPECT) != 0) {
>               rc = -EIO;
>               goto out_err;
> @@ -587,10 +587,10 @@ static int tpm_tis_i2c_init(struct device *dev)
>               return PTR_ERR(chip);
>  
>       /* Default timeouts */
> -     chip->vendor.timeout_a = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
> -     chip->vendor.timeout_b = msecs_to_jiffies(TIS_LONG_TIMEOUT);
> -     chip->vendor.timeout_c = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
> -     chip->vendor.timeout_d = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
> +     chip->timeout_a = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
> +     chip->timeout_b = msecs_to_jiffies(TIS_LONG_TIMEOUT);
> +     chip->timeout_c = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
> +     chip->timeout_d = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
>  
>       if (request_locality(chip, 0) != 0) {
>               dev_err(dev, "could not request locality\n");
> diff --git a/drivers/char/tpm/tpm_i2c_nuvoton.c 
> b/drivers/char/tpm/tpm_i2c_nuvoton.c
> index 2c1fa26..491a16a 100644
> --- a/drivers/char/tpm/tpm_i2c_nuvoton.c
> +++ b/drivers/char/tpm/tpm_i2c_nuvoton.c
> @@ -144,7 +144,7 @@ static void i2c_nuvoton_ready(struct tpm_chip *chip)
>  static int i2c_nuvoton_get_burstcount(struct i2c_client *client,
>                                     struct tpm_chip *chip)
>  {
> -     unsigned long stop = jiffies + chip->vendor.timeout_d;
> +     unsigned long stop = jiffies + chip->timeout_d;
>       s32 status;
>       int burst_count = -1;
>       u8 data;
> @@ -239,7 +239,7 @@ static int i2c_nuvoton_recv_data(struct i2c_client 
> *client,
>  
>       while (size < count &&
>              i2c_nuvoton_wait_for_data_avail(chip,
> -                                            chip->vendor.timeout_c,
> +                                            chip->timeout_c,
>                                              &priv->read_queue) == 0) {
>               burst_count = i2c_nuvoton_get_burstcount(client, chip);
>               if (burst_count < 0) {
> @@ -289,7 +289,7 @@ static int i2c_nuvoton_recv(struct tpm_chip *chip, u8 
> *buf, size_t count)
>                * tag, paramsize, and result
>                */
>               status = i2c_nuvoton_wait_for_data_avail(
> -                     chip, chip->vendor.timeout_c, &priv->read_queue);
> +                     chip, chip->timeout_c, &priv->read_queue);
>               if (status != 0) {
>                       dev_err(dev, "%s() timeout on dataAvail\n", __func__);
>                       size = -ETIMEDOUT;
> @@ -329,7 +329,7 @@ static int i2c_nuvoton_recv(struct tpm_chip *chip, u8 
> *buf, size_t count)
>               }
>               if (i2c_nuvoton_wait_for_stat(
>                           chip, TPM_STS_VALID | TPM_STS_DATA_AVAIL,
> -                         TPM_STS_VALID, chip->vendor.timeout_c,
> +                         TPM_STS_VALID, chip->timeout_c,
>                           NULL)) {
>                       dev_err(dev, "%s() error left over data\n", __func__);
>                       size = -ETIMEDOUT;
> @@ -362,7 +362,7 @@ static int i2c_nuvoton_send(struct tpm_chip *chip, u8 
> *buf, size_t len)
>               i2c_nuvoton_ready(chip);
>               if (i2c_nuvoton_wait_for_stat(chip, TPM_STS_COMMAND_READY,
>                                             TPM_STS_COMMAND_READY,
> -                                           chip->vendor.timeout_b, NULL)) {
> +                                           chip->timeout_b, NULL)) {
>                       dev_err(dev, "%s() timeout on commandReady\n",
>                               __func__);
>                       rc = -EIO;
> @@ -394,7 +394,7 @@ static int i2c_nuvoton_send(struct tpm_chip *chip, u8 
> *buf, size_t len)
>                                                      TPM_STS_EXPECT,
>                                                      TPM_STS_VALID |
>                                                      TPM_STS_EXPECT,
> -                                                    chip->vendor.timeout_c,
> +                                                    chip->timeout_c,
>                                                      NULL);
>                       if (rc < 0) {
>                               dev_err(dev, "%s() timeout on Expect\n",
> @@ -419,7 +419,7 @@ static int i2c_nuvoton_send(struct tpm_chip *chip, u8 
> *buf, size_t len)
>               rc = i2c_nuvoton_wait_for_stat(chip,
>                                              TPM_STS_VALID | TPM_STS_EXPECT,
>                                              TPM_STS_VALID,
> -                                            chip->vendor.timeout_c, NULL);
> +                                            chip->timeout_c, NULL);
>               if (rc) {
>                       dev_err(dev, "%s() timeout on Expect to clear\n",
>                               __func__);
> @@ -548,10 +548,10 @@ static int i2c_nuvoton_probe(struct i2c_client *client,
>       init_waitqueue_head(&priv->read_queue);
>  
>       /* Default timeouts */
> -     chip->vendor.timeout_a = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
> -     chip->vendor.timeout_b = msecs_to_jiffies(TPM_I2C_LONG_TIMEOUT);
> -     chip->vendor.timeout_c = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
> -     chip->vendor.timeout_d = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
> +     chip->timeout_a = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
> +     chip->timeout_b = msecs_to_jiffies(TPM_I2C_LONG_TIMEOUT);
> +     chip->timeout_c = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
> +     chip->timeout_d = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
>  
>       /*
>        * I2C intfcaps (interrupt capabilitieis) in the chip are hard coded to:
> @@ -580,7 +580,7 @@ static int i2c_nuvoton_probe(struct i2c_client *client,
>                       rc = i2c_nuvoton_wait_for_stat(chip,
>                                                      TPM_STS_COMMAND_READY,
>                                                      TPM_STS_COMMAND_READY,
> -                                                    chip->vendor.timeout_b,
> +                                                    chip->timeout_b,
>                                                      NULL);
>                       if (rc == 0) {
>                               /*
> diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
> index 25f2854..7b15097 100644
> --- a/drivers/char/tpm/tpm_tis.c
> +++ b/drivers/char/tpm/tpm_tis.c
> @@ -133,7 +133,7 @@ static inline int is_itpm(struct acpi_device *dev)
>  static int wait_startup(struct tpm_chip *chip, int l)
>  {
>       struct priv_data *priv = chip->vendor.priv;
> -     unsigned long stop = jiffies + chip->vendor.timeout_a;
> +     unsigned long stop = jiffies + chip->timeout_a;
>       do {
>               if (ioread8(priv->iobase + TPM_ACCESS(l)) &
>                   TPM_ACCESS_VALID)
> @@ -178,7 +178,7 @@ static int request_locality(struct tpm_chip *chip, int l)
>       iowrite8(TPM_ACCESS_REQUEST_USE,
>                priv->iobase + TPM_ACCESS(l));
>  
> -     stop = jiffies + chip->vendor.timeout_a;
> +     stop = jiffies + chip->timeout_a;
>  
>       if (chip->flags & TPM_CHIP_FLAG_IRQ) {
>  again:
> @@ -232,7 +232,7 @@ static int get_burstcount(struct tpm_chip *chip)
>  
>       /* wait for burstcount */
>       /* which timeout value, spec has 2 answers (c & d) */
> -     stop = jiffies + chip->vendor.timeout_d;
> +     stop = jiffies + chip->timeout_d;
>       do {
>               burstcnt = ioread8(priv->iobase +
>                                  TPM_STS(priv->locality) + 1);
> @@ -253,7 +253,7 @@ static int recv_data(struct tpm_chip *chip, u8 *buf, 
> size_t count)
>       while (size < count &&
>              wait_for_tpm_stat(chip,
>                                TPM_STS_DATA_AVAIL | TPM_STS_VALID,
> -                              chip->vendor.timeout_c,
> +                              chip->timeout_c,
>                                &priv->read_queue, true)
>              == 0) {
>               burstcnt = get_burstcount(chip);
> @@ -296,7 +296,7 @@ static int tpm_tis_recv(struct tpm_chip *chip, u8 *buf, 
> size_t count)
>               goto out;
>       }
>  
> -     wait_for_tpm_stat(chip, TPM_STS_VALID, chip->vendor.timeout_c,
> +     wait_for_tpm_stat(chip, TPM_STS_VALID, chip->timeout_c,
>                         &priv->int_queue, false);
>       status = tpm_tis_status(chip);
>       if (status & TPM_STS_DATA_AVAIL) {      /* retry? */
> @@ -333,7 +333,7 @@ static int tpm_tis_send_data(struct tpm_chip *chip, u8 
> *buf, size_t len)
>       if ((status & TPM_STS_COMMAND_READY) == 0) {
>               tpm_tis_ready(chip);
>               if (wait_for_tpm_stat
> -                 (chip, TPM_STS_COMMAND_READY, chip->vendor.timeout_b,
> +                 (chip, TPM_STS_COMMAND_READY, chip->timeout_b,
>                    &priv->int_queue, false) < 0) {
>                       rc = -ETIME;
>                       goto out_err;
> @@ -348,7 +348,7 @@ static int tpm_tis_send_data(struct tpm_chip *chip, u8 
> *buf, size_t len)
>                       count++;
>               }
>  
> -             wait_for_tpm_stat(chip, TPM_STS_VALID, chip->vendor.timeout_c,
> +             wait_for_tpm_stat(chip, TPM_STS_VALID, chip->timeout_c,
>                                 &priv->int_queue, false);
>               status = tpm_tis_status(chip);
>               if (!itpm && (status & TPM_STS_DATA_EXPECT) == 0) {
> @@ -360,7 +360,7 @@ static int tpm_tis_send_data(struct tpm_chip *chip, u8 
> *buf, size_t len)
>       /* write last byte */
>       iowrite8(buf[count],
>                priv->iobase + TPM_DATA_FIFO(priv->locality));
> -     wait_for_tpm_stat(chip, TPM_STS_VALID, chip->vendor.timeout_c,
> +     wait_for_tpm_stat(chip, TPM_STS_VALID, chip->timeout_c,
>                         &priv->int_queue, false);
>       status = tpm_tis_status(chip);
>       if ((status & TPM_STS_DATA_EXPECT) != 0) {
> @@ -716,10 +716,10 @@ static int tpm_tis_init(struct device *dev, struct 
> tpm_info *tpm_info,
>               return PTR_ERR(priv->iobase);
>  
>       /* Maximum timeouts */
> -     chip->vendor.timeout_a = TIS_TIMEOUT_A_MAX;
> -     chip->vendor.timeout_b = TIS_TIMEOUT_B_MAX;
> -     chip->vendor.timeout_c = TIS_TIMEOUT_C_MAX;
> -     chip->vendor.timeout_d = TIS_TIMEOUT_D_MAX;
> +     chip->timeout_a = TIS_TIMEOUT_A_MAX;
> +     chip->timeout_b = TIS_TIMEOUT_B_MAX;
> +     chip->timeout_c = TIS_TIMEOUT_C_MAX;
> +     chip->timeout_d = TIS_TIMEOUT_D_MAX;
>  
>       if (wait_startup(chip, 0) != 0) {
>               rc = -ENODEV;
> diff --git a/drivers/char/tpm/xen-tpmfront.c b/drivers/char/tpm/xen-tpmfront.c
> index cca89d9..1b28f96 100644
> --- a/drivers/char/tpm/xen-tpmfront.c
> +++ b/drivers/char/tpm/xen-tpmfront.c
> @@ -89,7 +89,7 @@ static int vtpm_send(struct tpm_chip *chip, u8 *buf, size_t 
> count)
>               return -EINVAL;
>  
>       /* Wait for completion of any existing command or cancellation */
> -     if (wait_for_tpm_stat(chip, VTPM_STATUS_IDLE, chip->vendor.timeout_c,
> +     if (wait_for_tpm_stat(chip, VTPM_STATUS_IDLE, chip->timeout_c,
>                       &priv->read_queue, true) < 0) {
>               vtpm_cancel(chip);
>               return -ETIME;
> @@ -126,7 +126,7 @@ static int vtpm_recv(struct tpm_chip *chip, u8 *buf, 
> size_t count)
>               return -ECANCELED;
>  
>       /* In theory the wait at the end of _send makes this one unnecessary */
> -     if (wait_for_tpm_stat(chip, VTPM_STATUS_RESULT, chip->vendor.timeout_c,
> +     if (wait_for_tpm_stat(chip, VTPM_STATUS_RESULT, chip->timeout_c,
>                       &priv->read_queue, true) < 0) {
>               vtpm_cancel(chip);
>               return -ETIME;
> -- 
> 2.5.0
> 

/Jarkko

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
_______________________________________________
tpmdd-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tpmdd-devel

Reply via email to