[Skiboot] [PATCH 06/14] tpm_i2c_nuvoton: return burst_count in tpm_read_burst_count()
Claudio Carvalho
cclaudio at linux.vnet.ibm.com
Mon Nov 28 14:08:06 AEDT 2016
This returns burst_count as opposed to pass it as a parameter.
Signed-off-by: Claudio Carvalho <cclaudio at linux.vnet.ibm.com>
---
libstb/drivers/tpm_i2c_nuvoton.c | 40 +++++++++++++++++++---------------------
1 file changed, 19 insertions(+), 21 deletions(-)
diff --git a/libstb/drivers/tpm_i2c_nuvoton.c b/libstb/drivers/tpm_i2c_nuvoton.c
index eb96f5e..0c99431 100644
--- a/libstb/drivers/tpm_i2c_nuvoton.c
+++ b/libstb/drivers/tpm_i2c_nuvoton.c
@@ -215,22 +215,20 @@ static int tpm_poll_for_data_avail(void)
return STB_TPM_TIMEOUT;
}
-static int tpm_read_burst_count(uint8_t* burst_count)
+static int tpm_read_burst_count(void)
{
int rc, delay;
- uint8_t bc;
+ uint8_t burst_count;
+ burst_count = 0;
delay = 0;
- *burst_count = 0;
-
do {
/* In i2C, burstCount is 1 byte */
- rc = tpm_status_read_byte(TPM_BURST_COUNT, &bc);
- if (rc == 0 && bc > 0) {
- DBG("---- burst_count=%d, delay=%d/%d\n",
+ rc = tpm_status_read_byte(TPM_BURST_COUNT, &burst_count);
+ if (rc == 0 && burst_count > 0) {
+ DBG("---- burst_count=%d, delay=%d/%d\n", burst_count,
delay, TPM_TIMEOUT_D);
- *burst_count = bc;
- return 0;
+ return (int) burst_count;
}
if (rc < 0) {
/**
@@ -261,8 +259,7 @@ static int tpm_read_burst_count(uint8_t* burst_count)
static int tpm_write_fifo(uint8_t* buf, size_t buflen)
{
- uint8_t burst_count = 0;
- int rc;
+ int rc, burst_count;
size_t curByte = 0;
uint8_t* bytePtr = buf;
uint8_t* curBytePtr = NULL;
@@ -275,9 +272,9 @@ static int tpm_write_fifo(uint8_t* buf, size_t buflen)
size_t tx_len = 0;
do {
- rc = tpm_read_burst_count(&burst_count);
- if (rc < 0)
- return rc;
+ burst_count = tpm_read_burst_count();
+ if (burst_count < 0)
+ return burst_count;
/*
* Send in some data
*/
@@ -309,9 +306,9 @@ static int tpm_write_fifo(uint8_t* buf, size_t buflen)
/*
* Send the final byte
*/
- rc = tpm_read_burst_count(&burst_count);
- if (rc < 0)
- return rc;
+ burst_count = tpm_read_burst_count();
+ if (burst_count < 0)
+ return burst_count;
curBytePtr = &(bytePtr[curByte]);
rc = tpm_i2c_request_send(tpm_device->bus_id,
tpm_device->xscom_base,
@@ -339,8 +336,7 @@ static int tpm_write_fifo(uint8_t* buf, size_t buflen)
static int tpm_read_fifo(uint8_t* buf, size_t* buflen)
{
- int rc;
- uint8_t burst_count;
+ int rc, burst_count;
size_t curByte = 0;
uint8_t* bytePtr = (uint8_t*)buf;
uint8_t* curBytePtr = NULL;
@@ -350,9 +346,11 @@ static int tpm_read_fifo(uint8_t* buf, size_t* buflen)
goto error;
do {
- rc = tpm_read_burst_count(&burst_count);
- if (rc < 0)
+ burst_count = tpm_read_burst_count();
+ if (burst_count < 0) {
+ rc = burst_count;
goto error;
+ }
/* Buffer overflow check */
if (curByte + burst_count > *buflen)
{
--
1.9.1
More information about the Skiboot
mailing list