aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe RICARD <christophe.ricard@gmail.com>2016-02-13 16:15:30 +0100
committerJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>2016-06-25 17:21:42 +0300
commit10460bc1cfdea19dbab2289a63b4be0c874d29f2 (patch)
treed44fbb0fecbebe96104d84425f46321ac131f0ff
parenttpm/st33zp24: Auto-select core module (diff)
downloadlinux-dev-10460bc1cfdea19dbab2289a63b4be0c874d29f2.tar.xz
linux-dev-10460bc1cfdea19dbab2289a63b4be0c874d29f2.zip
tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency
Add check in st33zp24_spi_evaluate_latency helping to diagnose if the chip is present or in a bad state. Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
-rw-r--r--drivers/char/tpm/st33zp24/spi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
index 08e6bf54d7dd..a2ef8ec4ba80 100644
--- a/drivers/char/tpm/st33zp24/spi.c
+++ b/drivers/char/tpm/st33zp24/spi.c
@@ -214,6 +214,11 @@ static int st33zp24_spi_evaluate_latency(void *phy_id)
&data, 1);
latency++;
}
+ if (status < 0)
+ return status;
+ if (latency == MAX_SPI_LATENCY)
+ return -ENODEV;
+
return latency - 1;
} /* evaluate_latency() */