From 85a372c53bfff4533a4fa34883c1a3f09757f051 Mon Sep 17 00:00:00 2001 From: Stewart Smith Date: Wed, 23 Nov 2016 16:46:00 +1100 Subject: [PATCH] tpm_i2c_interface: set timeout before each request The i2c code manipulates req->timeout, so it has to be reset before re-sending. Signed-off-by: Stewart Smith Tested-by: Claudio Carvalho Signed-off-by: Stewart Smith (cherry picked from commit dab67b5d19b0e004249d5a850e283823a0e60d40) Signed-off-by: Stewart Smith --- libstb/drivers/tpm_i2c_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libstb/drivers/tpm_i2c_interface.c b/libstb/drivers/tpm_i2c_interface.c index 4d136fdeae2f..89f5ba6bccbe 100644 --- a/libstb/drivers/tpm_i2c_interface.c +++ b/libstb/drivers/tpm_i2c_interface.c @@ -99,11 +99,11 @@ int tpm_i2c_request_send(int tpm_bus_id, int tpm_dev_addr, int read_write, * since the I2C master's timeout is too short (1ms per byte). */ timeout = (buflen + offset_bytes + 2) * I2C_BYTE_TIMEOUT_MS; - i2c_set_req_timeout(req, timeout); for (retries = 0; retries <= TPM_MAX_NACK_RETRIES; retries++) { rc = 1; waited = 0; + i2c_set_req_timeout(req, timeout); i2c_queue_req(req); do {