On Thu, Jan 18, 2018 at 07:58:32PM +0200, Jarkko Sakkinen wrote: > On Fri, Dec 08, 2017 at 07:46:52PM +0100, Alexander Steffen wrote: > > According to TIS/PTP the dataAvail flag and the Expect flag in the STS > > register contain valid values if and only if the stsValid flag in the same > > register is set. Currently, the code first waits for the stsValid flag to > > be set and then looks at the other flags. This causes the STS register to > > be read twice, so that the stsValid flag might not be set anymore when the > > other flags are evaluated. > > > > Other parts of the code already check both flags in a single operation > > within wait_for_tpm_stat. But the current implementation can only check for > > flags being set to 1, not 0. Therefore, add a parameter to > > wait_for_tpm_stat that allows to specify the expected value in addition to > > the selected flags and adapt all callers accordingly. > > > > In addition, this now checks the dataAvail and Expect flags multiple times > > within the specified timeout, so those flags no longer need to have the > > expected value right away. This is important for example when sending large > > amounts of data to the TPM, when the TPM might not process its I/O buffer > > fast enough for the flags to be set correctly when they are checked for the > > first time. > > > > Signed-off-by: Alexander Steffen <Alexander.Steffen@xxxxxxxxxxxx> > > LGTM > > Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx> > > /Jarkko Ugh, was meant for 4/9 :-) Ignore this. /Jarkko