]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
tpm: tpm_tis_i2c: Tidy up delays
authorSimon Glass <sjg@chromium.org>
Sun, 23 Aug 2015 00:31:30 +0000 (18:31 -0600)
committerLothar Waßmann <LW@KARO-electronics.de>
Thu, 10 Sep 2015 10:19:17 +0000 (12:19 +0200)
Use a _US suffix for microseconds and a _MS suffic for milliseconds. Move
all timeouts and delays into one place. Use mdelay() instead of udelay()
where appropriate.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Christophe Ricard <christophe-h.ricard@st.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
drivers/tpm/tpm_tis_i2c.c
drivers/tpm/tpm_tis_i2c.h

index e04e8f547baf0694910c4bde1cd0ada9441df77d..4b2ef94aa7d2780f459f6fca19c4b8d548b202d9 100644 (file)
@@ -68,7 +68,7 @@ static int tpm_tis_i2c_read(u8 addr, u8 *buffer, size_t len)
                        rc = dm_i2c_write(g_chip.dev, 0, (uchar *)&addrbuf, 1);
                        if (rc == 0)
                                break;  /* Success, break to skip sleep */
-                       udelay(SLEEP_DURATION);
+                       udelay(SLEEP_DURATION_US);
                }
                if (rc)
                        return -rc;
@@ -78,7 +78,7 @@ static int tpm_tis_i2c_read(u8 addr, u8 *buffer, size_t len)
                 * retrieving the data
                 */
                for (count = 0; count < MAX_COUNT; count++) {
-                       udelay(SLEEP_DURATION);
+                       udelay(SLEEP_DURATION_US);
                        rc = dm_i2c_read(g_chip.dev, 0, buffer, len);
                        if (rc == 0)
                                break;  /* success, break to skip sleep */
@@ -95,12 +95,12 @@ static int tpm_tis_i2c_read(u8 addr, u8 *buffer, size_t len)
                        rc = dm_i2c_read(g_chip.dev, addr, buffer, len);
                        if (rc == 0)
                                break;  /* break here to skip sleep */
-                       udelay(SLEEP_DURATION);
+                       udelay(SLEEP_DURATION_US);
                }
        }
 
        /* Take care of 'guard time' */
-       udelay(SLEEP_DURATION);
+       udelay(SLEEP_DURATION_US);
        if (rc)
                return -rc;
 
@@ -108,7 +108,7 @@ static int tpm_tis_i2c_read(u8 addr, u8 *buffer, size_t len)
 }
 
 static int tpm_tis_i2c_write_generic(u8 addr, u8 *buffer, size_t len,
-                                    unsigned int sleep_time, u8 max_count)
+                                    unsigned int sleep_time_us, u8 max_count)
 {
        int rc = 0;
        int count;
@@ -117,11 +117,11 @@ static int tpm_tis_i2c_write_generic(u8 addr, u8 *buffer, size_t len,
                rc = dm_i2c_write(g_chip.dev, addr, buffer, len);
                if (rc == 0)
                        break;  /* Success, break to skip sleep */
-               udelay(sleep_time);
+               udelay(sleep_time_us);
        }
 
        /* take care of 'guard time' */
-       udelay(sleep_time);
+       udelay(sleep_time_us);
        if (rc)
                return -rc;
 
@@ -146,8 +146,8 @@ static int tpm_tis_i2c_write_generic(u8 addr, u8 *buffer, size_t len,
  */
 static int tpm_tis_i2c_write(u8 addr, u8 *buffer, size_t len)
 {
-       return tpm_tis_i2c_write_generic(addr, buffer, len, SLEEP_DURATION,
-                       MAX_COUNT);
+       return tpm_tis_i2c_write_generic(addr, buffer, len, SLEEP_DURATION_US,
+                                        MAX_COUNT);
 }
 
 /*
@@ -156,8 +156,9 @@ static int tpm_tis_i2c_write(u8 addr, u8 *buffer, size_t len)
  */
 static int tpm_tis_i2c_write_long(u8 addr, u8 *buffer, size_t len)
 {
-       return tpm_tis_i2c_write_generic(addr, buffer, len, SLEEP_DURATION_LONG,
-                       MAX_COUNT_LONG);
+       return tpm_tis_i2c_write_generic(addr, buffer, len,
+                                        SLEEP_DURATION_LONG_US,
+                                        MAX_COUNT_LONG);
 }
 
 static int tpm_tis_i2c_check_locality(struct tpm_chip *chip, int loc)
@@ -212,7 +213,7 @@ static int tpm_tis_i2c_request_locality(struct tpm_chip *chip, int loc)
        do {
                if (tpm_tis_i2c_check_locality(chip, loc) >= 0)
                        return loc;
-               udelay(TPM_TIMEOUT * 1000);
+               mdelay(TPM_TIMEOUT_MS);
        } while (get_timer(start) < stop);
 
        return -1;
@@ -262,7 +263,7 @@ static ssize_t tpm_tis_i2c_get_burstcount(struct tpm_chip *chip)
 
                if (burstcnt)
                        return burstcnt;
-               udelay(TPM_TIMEOUT * 1000);
+               mdelay(TPM_TIMEOUT_MS);
        } while (get_timer(start) < stop);
 
        return -EBUSY;
@@ -281,7 +282,7 @@ static int tpm_tis_i2c_wait_for_stat(struct tpm_chip *chip, u8 mask,
        start = get_timer(0);
        stop = timeout;
        do {
-               udelay(TPM_TIMEOUT * 1000);
+               mdelay(TPM_TIMEOUT_MS);
                *status = tpm_tis_i2c_status(chip);
                if ((*status & mask) == mask)
                        return 0;
@@ -363,7 +364,7 @@ out:
         * The TPM needs some time to clean up here,
         * so we sleep rather than keeping the bus busy
         */
-       udelay(2000);
+       mdelay(2);
        tpm_tis_i2c_release_locality(chip, chip->locality, 0);
 
        return size;
@@ -446,7 +447,7 @@ out_err:
         * The TPM needs some time to clean up here,
         * so we sleep rather than keeping the bus busy
         */
-       udelay(2000);
+       mdelay(2);
        tpm_tis_i2c_release_locality(chip, chip->locality, 0);
 
        return rc;
@@ -480,10 +481,10 @@ static int tpm_tis_i2c_init(struct udevice *dev)
        chip->irq = 0;
 
        /* Default timeouts - these could move to the device tree */
-       chip->timeout_a = TIS_SHORT_TIMEOUT;
-       chip->timeout_b = TIS_LONG_TIMEOUT;
-       chip->timeout_c = TIS_SHORT_TIMEOUT;
-       chip->timeout_d = TIS_SHORT_TIMEOUT;
+       chip->timeout_a = TIS_SHORT_TIMEOUT_MS;
+       chip->timeout_b = TIS_LONG_TIMEOUT_MS;
+       chip->timeout_c = TIS_SHORT_TIMEOUT_MS;
+       chip->timeout_d = TIS_SHORT_TIMEOUT_MS;
        chip->req_complete_mask = TPM_STS_DATA_AVAIL | TPM_STS_VALID;
        chip->req_complete_val = TPM_STS_DATA_AVAIL | TPM_STS_VALID;
        chip->req_canceled = TPM_STS_COMMAND_READY;
@@ -593,7 +594,7 @@ static ssize_t tpm_tis_i2c_transmit(const unsigned char *buf, size_t bufsiz)
                        rc = -ECANCELED;
                        goto out;
                }
-               udelay(TPM_TIMEOUT * 1000);
+               mdelay(TPM_TIMEOUT_MS);
        } while (get_timer(start) < stop);
 
        tpm_tis_i2c_ready(chip);
index db992000e4323e2fd7b6de3f607fcaac37634e00..ecdaf0cbd95312cf0a9e9c1b5a3a8fcd2e7b7fb9 100644 (file)
 #include <linux/types.h>
 
 enum tpm_timeout {
-       TPM_TIMEOUT = 5,        /* msecs */
+       TPM_TIMEOUT_MS                  = 5,
+       TIS_SHORT_TIMEOUT_MS            = 750,
+       TIS_LONG_TIMEOUT_MS             = 2000,
+       SLEEP_DURATION_US               = 60,
+       SLEEP_DURATION_LONG_US          = 210,
 };
 
 /* Size of external transmit buffer (used in tpm_transmit)*/
@@ -125,9 +129,6 @@ struct tpm_cmd_t {
  */
 #define MAX_COUNT_LONG         50
 
-#define SLEEP_DURATION         60      /* in usec */
-#define SLEEP_DURATION_LONG    210     /* in usec */
-
 #define TPM_HEADER_SIZE                10
 
 enum tis_access {
@@ -145,11 +146,6 @@ enum tis_status {
        TPM_STS_DATA_EXPECT             = 0x08,
 };
 
-enum tis_defaults {
-       TIS_SHORT_TIMEOUT               = 750,  /* ms */
-       TIS_LONG_TIMEOUT                = 2000, /* ms */
-};
-
 /* expected value for DIDVID register */
 #define TPM_TIS_I2C_DID_VID_9635 0x000b15d1L
 #define TPM_TIS_I2C_DID_VID_9645 0x001a15d1L
@@ -169,7 +165,7 @@ enum tpm_duration {
 /* Extended error numbers from linux (see errno.h) */
 #define ECANCELED      125     /* Operation Canceled */
 
-/* Timer frequency. Corresponds to msec timer resolution*/
+/* Timer frequency. Corresponds to msec timer resolution */
 #define HZ             1000
 
 #define TPM_MAX_ORDINAL                        243