Index: lib/chromeos/tlcl_stub.c |
diff --git a/lib/chromeos/tlcl_stub.c b/lib/chromeos/tlcl_stub.c |
index c2136456a549b0de64ad5269f68de398634ea162..edc63bab0f817fdd2d539fc21af48e7b352635b4 100644 |
--- a/lib/chromeos/tlcl_stub.c |
+++ b/lib/chromeos/tlcl_stub.c |
@@ -18,19 +18,34 @@ |
uint32_t TlclStubInit(void) |
{ |
#ifdef CONFIG_HARDWARE_TPM |
- return tpm_init(); |
-#else |
- return TPM_SUCCESS; |
+ int ret = tis_init(); |
+ if (ret) |
+ return TPM_E_IOERROR; |
+ /* tpm-lite lib doesn't call TlclOpenDevice after TlclStubInit */ |
+ ret = tis_open(); |
+ if (ret) |
+ return TPM_E_IOERROR; |
#endif |
+ return TPM_SUCCESS; |
} |
uint32_t TlclCloseDevice(void) |
{ |
+#ifdef CONFIG_HARDWARE_TPM |
+ int ret = tis_close(); |
+ if (ret) |
+ return TPM_E_IOERROR; |
+#endif |
return TPM_SUCCESS; |
} |
uint32_t TlclOpenDevice(void) |
{ |
+#ifdef CONFIG_HARDWARE_TPM |
+ int ret = tis_open(); |
+ if (ret) |
+ return TPM_E_IOERROR; |
+#endif |
return TPM_SUCCESS; |
} |
@@ -38,16 +53,12 @@ uint32_t TlclStubSendReceive(const uint8_t* request, int request_length, |
uint8_t* response, int max_length) |
{ |
#ifdef CONFIG_HARDWARE_TPM |
- int ret_code; |
- ret_code = tpm_send(request, request_length); |
- if (ret_code) |
- return TPM_E_IOERROR; |
- ret_code = tpm_receive(response, max_length); |
- if (ret_code) |
+ int ret; |
+ size_t recv_len = (size_t) max_length; |
+ ret= tis_sendrecv(request, request_length, response, &recv_len); |
+ if (ret) |
return TPM_E_IOERROR; |
- return TPM_SUCCESS; |
-#else |
- return TPM_SUCCESS; |
#endif |
+ return TPM_SUCCESS; |
} |