tpm: allow 0 as valid i2c bus number
tpm driver uses bus=0 as indication of uninitialized tpm device. this
change allows 0 as a valid i2c bus number.
BUG=None
BRANCH=ToT
TEST=Built cosmos.
Change-Id: Iac55e88db4ef757a292270e7201d8fdd37a90b50
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/226294
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
diff --git a/src/drivers/i2c/tpm/tpm.c b/src/drivers/i2c/tpm/tpm.c
index bc36e35..dc4ab78 100644
--- a/src/drivers/i2c/tpm/tpm.c
+++ b/src/drivers/i2c/tpm/tpm.c
@@ -86,13 +86,14 @@
/* Structure to store I2C TPM specific stuff */
struct tpm_inf_dev {
- unsigned bus;
+ int bus;
unsigned int addr;
uint8_t buf[TPM_BUFSIZE + sizeof(uint8_t)]; // max. buffer size + addr
enum i2c_chip_type chip_type;
};
static struct tpm_inf_dev tpm_dev = {
+ .bus = -1,
.addr = TPM_I2C_ADDR
};
@@ -115,7 +116,7 @@
int rc;
int count;
- if (!tpm_dev.bus)
+ if (tpm_dev.bus < 0)
return -1;
if ((tpm_dev.chip_type == SLB9635) || (tpm_dev.chip_type == UNKNOWN)) {
/* slb9635 protocol should work in both cases */
@@ -186,7 +187,7 @@
tpm_dev.buf[0] = addr;
memcpy(&(tpm_dev.buf[1]), buffer, len);
- if (!tpm_dev.bus)
+ if (tpm_dev.bus < 0)
return -1;
for (count = 0; count < max_count; count++) {
rc = i2c_write_raw(tpm_dev.bus, tpm_dev.addr,