From fc257c09701acb54a16c3f81f349dd8346b6bf11 Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Mon, 27 Mar 2017 17:25:06 -0500 Subject: [PATCH] UPSTREAM: drivers/spi/tpm: de-assert chip select on transaction error In the case of start_transaction() failing the chip select is never deasserted. Correct that by deasserting the chip select when start_transaction() fails. BUG=b:36598499 Change-Id: I91866a30fca8c9efae15a900722eb0fc3bebbfc3 Signed-off-by: Patrick Georgi Original-Commit-Id: 5cf1fadeca706f8d3016ea44c3e482c2428d6b3f Original-Change-Id: I2c5200085eb357259edab39c1a0fa7b1d81ba7b2 Original-Signed-off-by: Aaron Durbin Original-Reviewed-on: https://review.coreboot.org/19056 Original-Tested-by: build bot (Jenkins) Original-Reviewed-by: Furquan Shaikh Reviewed-on: https://chromium-review.googlesource.com/466051 --- src/drivers/spi/tpm/tpm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/drivers/spi/tpm/tpm.c b/src/drivers/spi/tpm/tpm.c index 3cb3994c86..09c1346ec7 100644 --- a/src/drivers/spi/tpm/tpm.c +++ b/src/drivers/spi/tpm/tpm.c @@ -212,6 +212,7 @@ static int start_transaction(int read_write, size_t bytes, unsigned addr) do { if (stopwatch_expired(&sw)) { printk(BIOS_ERR, "TPM flow control failure\n"); + tpm_if.cs_deassert(&tpm_if.slave); return 0; } tpm_if.xfer(&tpm_if.slave, NULL, 0, &byte, 1);