Hmm, this is almost 20 years old code (
I think the original code did a burst write and didn't check for error
conditions until the very last byte write. I seem to remember that there was
some text in the original standard to that effect (this may have gone back as
far as IBM's ESS spec).
The current code does check for error conditions after each write byte(s) so I
don't think there is any reason for this anymore. Changing the while condition
to count < len and setting burstcnt = min_t(int, burstcnt, len - count) and
remove the tpm_tis_write8/wait_for_tpm_stat/tpm_tis_status clauses after the
while loop should be sufficient.
Leendert
On 11/26/17, 8:37 AM, "Mimi Zohar" <[email protected]> wrote:
[Cc'ing Dave and Leendeert]
Hi Jarkko,
> > It seems that the last byte was sent from the beginning (27084ef
> > [PATCH] tpm: driver for next generation TPM chips,), does anyone
> > remember the reason ?
>
> Sent from the beginning?
I went through the commit logs to see if any of the patch descriptions
have an explanation for sending the last byte separately. Based on
commit 27084efee0c3 "[PATCH] tpm: driver for next generation TPM
chips", it seems it's been there since the beginning.
Dave, Leendert, Do either of you remember the reason for
tpm_tis_send_data() sending the last byte separately?
thanks,
Mimi