]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
tpm: use tpm_msleep() value as max delay
authorNayna Jain <nayna@linux.vnet.ibm.com>
Tue, 17 Oct 2017 20:32:32 +0000 (16:32 -0400)
committerJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Mon, 8 Jan 2018 10:58:33 +0000 (12:58 +0200)
Currently, tpm_msleep() uses delay_msec as the minimum value in
usleep_range. However, that is the maximum time we want to wait.
The function is modified to use the delay_msec as the maximum
value, not the minimum value.

After this change, performance on a TPM 1.2 with an 8 byte
burstcount for 1000 extends improved from ~9sec to ~8sec.

Fixes: 3b9af007869("tpm: replace msleep() with usleep_range() in TPM 1.2/
2.0 generic drivers")

Signed-off-by: Nayna Jain <nayna@linux.vnet.ibm.com>
Acked-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
drivers/char/tpm/tpm.h

index 0c6c4fd8b137f1a0935543123c9d85b852e7467a..9d768d2abd2478d4b3587ccaa96b40e1ee578453 100644 (file)
@@ -515,8 +515,8 @@ int tpm_pm_resume(struct device *dev);
 
 static inline void tpm_msleep(unsigned int delay_msec)
 {
-       usleep_range(delay_msec * 1000,
-                    (delay_msec * 1000) + TPM_TIMEOUT_RANGE_US);
+       usleep_range((delay_msec * 1000) - TPM_TIMEOUT_RANGE_US,
+                    delay_msec * 1000);
 };
 
 struct tpm_chip *tpm_chip_find_get(int chip_num);