TPM: Use vendor specific function for status probe
authorRajiv Andrade <srajiv@linux.vnet.ibm.com>
Fri, 16 Sep 2011 17:34:37 +0000 (14:34 -0300)
committerRajiv Andrade <srajiv@linux.vnet.ibm.com>
Wed, 16 Nov 2011 11:43:50 +0000 (09:43 -0200)
Moved from using tpm_tis_status() to the vendor specific
one in wait_for_stat(). This way other TPM drivers can use it
instead of reimplementing another.

Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
drivers/char/tpm/tpm_tis.c

index d93bafd..e4553eb 100644 (file)
@@ -201,7 +201,7 @@ static int wait_for_stat(struct tpm_chip *chip, u8 mask, unsigned long timeout,
        u8 status;
 
        /* check current status */
        u8 status;
 
        /* check current status */
-       status = tpm_tis_status(chip);
+       status = chip->vendor.status(chip);
        if ((status & mask) == mask)
                return 0;
 
        if ((status & mask) == mask)
                return 0;
 
@@ -213,9 +213,9 @@ again:
                if ((long)timeout <= 0)
                        return -ETIME;
                rc = wait_event_interruptible_timeout(*queue,
                if ((long)timeout <= 0)
                        return -ETIME;
                rc = wait_event_interruptible_timeout(*queue,
-                                                     ((tpm_tis_status
-                                                       (chip) & mask) ==
-                                                      mask), timeout);
+                                                     ((chip->vendor.status(chip)
+                                                     & mask) == mask),
+                                                     timeout);
                if (rc > 0)
                        return 0;
                if (rc == -ERESTARTSYS && freezing(current)) {
                if (rc > 0)
                        return 0;
                if (rc == -ERESTARTSYS && freezing(current)) {
@@ -225,7 +225,7 @@ again:
        } else {
                do {
                        msleep(TPM_TIMEOUT);
        } else {
                do {
                        msleep(TPM_TIMEOUT);
-                       status = tpm_tis_status(chip);
+                       status = chip->vendor.status(chip);
                        if ((status & mask) == mask)
                                return 0;
                } while (time_before(jiffies, stop));
                        if ((status & mask) == mask)
                                return 0;
                } while (time_before(jiffies, stop));