Hi Marcin, In the current clear_interruption function, reading the TPM_INT_STATUS after a write has no effect (aka: flushing the current request). I am removing it because the interrupt value retrieved after this read is never used.
The only thing I can think of would to verify that the TPM_INT_STATUS got the expected state and return a status code in case of error. However, I believe in case of such situation, the TPM will generate other error such as transmission error that will be detected on the other layers. Best Regards Christophe -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Marcin Obara Sent: mardi 14 octobre 2014 10:18 To: Christophe Ricard Cc: [email protected]; [email protected]; [email protected]; [email protected]; Jean-Luc BLANC; tpmdd-devel; Christophe Henri RICARD Subject: Re: [tpmdd-devel] [PATCH v3 12/15] tpm/tpm_i2c_stm_st33: Remove useless i2c read on interrupt registers Wasn't last read required for flush write? 2014-10-13 22:23 GMT+02:00 Christophe Ricard <[email protected]>: > Remove useless i2c read on TPM_INT_ENABLE and TPM_INT_STATUS > > Signed-off-by: Christophe Ricard <[email protected]> > --- > drivers/char/tpm/tpm_i2c_stm_st33.c | 9 --------- > 1 file changed, 9 deletions(-) > > diff --git a/drivers/char/tpm/tpm_i2c_stm_st33.c > b/drivers/char/tpm/tpm_i2c_stm_st33.c > index 388bb64..ed4176e 100644 > --- a/drivers/char/tpm/tpm_i2c_stm_st33.c > +++ b/drivers/char/tpm/tpm_i2c_stm_st33.c > @@ -184,7 +184,6 @@ static void clear_interruption(struct tpm_stm_dev > *tpm_dev) > > I2C_READ_DATA(tpm_dev, TPM_INT_STATUS, &interrupt, 1); > I2C_WRITE_DATA(tpm_dev, TPM_INT_STATUS, &interrupt, 1); > - I2C_READ_DATA(tpm_dev, TPM_INT_STATUS, &interrupt, 1); > } /* clear_interruption() */
