summaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorStefan Berger <stefanb@linux.vnet.ibm.com>2011-11-11 18:57:06 +0100
committerRajiv Andrade <srajiv@linux.vnet.ibm.com>2011-11-16 12:43:03 +0100
commita927b8131794ee449b7f6666e7ab61301949b20f (patch)
tree05f341ab38243087faff74d0e56ecc6e880bd490 /drivers/char
parenttpm_tis: Check return code from getting timeouts/durations (diff)
downloadlinux-a927b8131794ee449b7f6666e7ab61301949b20f.tar.xz
linux-a927b8131794ee449b7f6666e7ab61301949b20f.zip
tpm_tis: add delay after aborting command
This patch adds a delay after aborting a command. Some TPMs need this and will not process the subsequent command correctly otherwise. Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/tpm/tpm_tis.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index 34832bc74649..d93bafde3120 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -432,6 +432,9 @@ static int probe_itpm(struct tpm_chip *chip)
out:
itpm = rem_itpm;
tpm_tis_ready(chip);
+ /* some TPMs need a break here otherwise they will not work
+ * correctly on the immediately subsequent command */
+ msleep(chip->vendor.timeout_b);
release_locality(chip, chip->vendor.locality, 0);
return rc;