Messages in this thread Patch in this message | | | Subject | [PATCH] 2.6.26-mmotm tpm-correct-tpm-timeouts-to-jiffies-conversion-d820-fix.patch | From | Valdis.Kletnieks@vt ... | Date | Sat, 26 Jul 2008 00:03:53 -0400 |
| |
Patch tpm-correct-tpm-timeouts-to-jiffies-conversion reveals a bug in the Broadcom BCM0102 TPM chipset used in the Dell Latitude D820 - although most of the timeouts are returned in usecs as per the spec, one is apparently returned in msecs, which results in a timeout when the code treats it as usecs. To prevent a regression, we check for the known too-short value and adjust it to a value that makes things work.
Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu> cc: Marcin Obara <marcin_obara@users.sourceforge.net>
--- linux-2.6.26-mmotm-0724/drivers/char/tpm/tpm.c.broadcom 2008-07-25 22:13:47.000000000 -0400 +++ linux-2.6.26-mmotm-0724/drivers/char/tpm/tpm.c 2008-07-25 23:30:38.000000000 -0400 @@ -557,6 +557,13 @@ duration: usecs_to_jiffies(be32_to_cpu (*((__be32 *) (data + TPM_GET_CAP_RET_UINT32_1_IDX)))); + /* The Broadcom BCM0102 chipset in a Dell Latitude D820 gets the above + * value wrong and apparently reports msecs rather than usecs. Test + * for the specific buggy value and adjust it to prevent a regression. + */ + if (chip->vendor.duration[TPM_SHORT] == 1) + chip->vendor.duration[TPM_SHORT] *= 1000; + chip->vendor.duration[TPM_MEDIUM] = usecs_to_jiffies(be32_to_cpu (*((__be32 *) (data + [unhandled content-type:application/pgp-signature] | |