]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
tpm: make check_locality return bool
authorJerry Snitselaar <jsnitsel@redhat.com>
Sat, 18 Mar 2017 08:59:57 +0000 (01:59 -0700)
committerJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Mon, 3 Apr 2017 19:46:02 +0000 (22:46 +0300)
Since check_locality is checking to see if a certain
locality is active, return true if active otherwise
return false.

Cc: Christophe Ricard <christophe.ricard@gmail.com>
Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Cc: Marcel Selhorst <tpmdd@selhorst.net>
Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Cc: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
drivers/char/tpm/st33zp24/st33zp24.c
drivers/char/tpm/tpm_i2c_infineon.c
drivers/char/tpm/tpm_tis_core.c

index e8e0f7c0268690145b1dcf5e4b0411909483fe1a..4d1dc8b46877ca497a198a3d988d060b9235100a 100644 (file)
@@ -117,9 +117,9 @@ static u8 st33zp24_status(struct tpm_chip *chip)
 /*
  * check_locality if the locality is active
  * @param: chip, the tpm chip description
- * @return: the active locality or -EACCESS.
+ * @return: true if LOCALITY0 is active, otherwise false
  */
-static int check_locality(struct tpm_chip *chip)
+static bool check_locality(struct tpm_chip *chip)
 {
        struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
        u8 data;
@@ -129,9 +129,9 @@ static int check_locality(struct tpm_chip *chip)
        if (status && (data &
                (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID)) ==
                (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID))
-               return tpm_dev->locality;
+               return true;
 
-       return -EACCES;
+       return false;
 } /* check_locality() */
 
 /*
@@ -146,7 +146,7 @@ static int request_locality(struct tpm_chip *chip)
        long ret;
        u8 data;
 
-       if (check_locality(chip) == tpm_dev->locality)
+       if (check_locality(chip))
                return tpm_dev->locality;
 
        data = TPM_ACCESS_REQUEST_USE;
@@ -158,7 +158,7 @@ static int request_locality(struct tpm_chip *chip)
 
        /* Request locality is usually effective after the request */
        do {
-               if (check_locality(chip) >= 0)
+               if (check_locality(chip))
                        return tpm_dev->locality;
                msleep(TPM_TIMEOUT);
        } while (time_before(jiffies, stop));
index 62ee44e57ddc4478d41d9b2082d0e4e27df57b04..dc47fa222a2650a0b16baf80afa3c90b3096712c 100644 (file)
@@ -278,22 +278,22 @@ enum tis_defaults {
 #define        TPM_DATA_FIFO(l)                (0x0005 | ((l) << 4))
 #define        TPM_DID_VID(l)                  (0x0006 | ((l) << 4))
 
-static int check_locality(struct tpm_chip *chip, int loc)
+static bool check_locality(struct tpm_chip *chip, int loc)
 {
        u8 buf;
        int rc;
 
        rc = iic_tpm_read(TPM_ACCESS(loc), &buf, 1);
        if (rc < 0)
-               return rc;
+               return false;
 
        if ((buf & (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID)) ==
            (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID)) {
                tpm_dev.locality = loc;
-               return loc;
+               return true;
        }
 
-       return -EIO;
+       return false;
 }
 
 /* implementation similar to tpm_tis */
@@ -315,7 +315,7 @@ static int request_locality(struct tpm_chip *chip, int loc)
        unsigned long stop;
        u8 buf = TPM_ACCESS_REQUEST_USE;
 
-       if (check_locality(chip, loc) >= 0)
+       if (check_locality(chip, loc))
                return loc;
 
        iic_tpm_write(TPM_ACCESS(loc), &buf, 1);
@@ -323,7 +323,7 @@ static int request_locality(struct tpm_chip *chip, int loc)
        /* wait for burstcount */
        stop = jiffies + chip->timeout_a;
        do {
-               if (check_locality(chip, loc) >= 0)
+               if (check_locality(chip, loc))
                        return loc;
                usleep_range(TPM_TIMEOUT_US_LOW, TPM_TIMEOUT_US_HI);
        } while (time_before(jiffies, stop));
index fc0e9a2734ed9876f62571a9a0d482d8cb84465d..f31fc831c8f9121cac4386911b7959c871774614 100644 (file)
@@ -56,7 +56,7 @@ static int wait_startup(struct tpm_chip *chip, int l)
        return -1;
 }
 
-static int check_locality(struct tpm_chip *chip, int l)
+static bool check_locality(struct tpm_chip *chip, int l)
 {
        struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev);
        int rc;
@@ -64,13 +64,15 @@ static int check_locality(struct tpm_chip *chip, int l)
 
        rc = tpm_tis_read8(priv, TPM_ACCESS(l), &access);
        if (rc < 0)
-               return rc;
+               return false;
 
        if ((access & (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID)) ==
-           (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID))
-               return priv->locality = l;
+           (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID)) {
+               priv->locality = l;
+               return true;
+       }
 
-       return -1;
+       return false;
 }
 
 static void release_locality(struct tpm_chip *chip, int l, int force)
@@ -96,7 +98,7 @@ static int request_locality(struct tpm_chip *chip, int l)
        unsigned long stop, timeout;
        long rc;
 
-       if (check_locality(chip, l) >= 0)
+       if (check_locality(chip, l))
                return l;
 
        rc = tpm_tis_write8(priv, TPM_ACCESS(l), TPM_ACCESS_REQUEST_USE);
@@ -112,7 +114,7 @@ again:
                        return -1;
                rc = wait_event_interruptible_timeout(priv->int_queue,
                                                      (check_locality
-                                                      (chip, l) >= 0),
+                                                      (chip, l)),
                                                      timeout);
                if (rc > 0)
                        return l;
@@ -123,7 +125,7 @@ again:
        } else {
                /* wait for burstcount */
                do {
-                       if (check_locality(chip, l) >= 0)
+                       if (check_locality(chip, l))
                                return l;
                        msleep(TPM_TIMEOUT);
                } while (time_before(jiffies, stop));
@@ -535,7 +537,7 @@ static irqreturn_t tis_int_handler(int dummy, void *dev_id)
                wake_up_interruptible(&priv->read_queue);
        if (interrupt & TPM_INTF_LOCALITY_CHANGE_INT)
                for (i = 0; i < 5; i++)
-                       if (check_locality(chip, i) >= 0)
+                       if (check_locality(chip, i))
                                break;
        if (interrupt &
            (TPM_INTF_LOCALITY_CHANGE_INT | TPM_INTF_STS_VALID_INT |