TPM2: Fill in empty tlcl_resume function in TPM2 tlcl

On resume, TPM2_Starup(STATE) command needs to be sent to the TPM. This
ensures that TPM restores the state saved at last Shutdown(STATE).

Since tlcl_resume and tlcl_startup both use the same sequence for
sending startup command with different arguments, add a common function
that can be used by both.

BUG=chrome-os-partner:58043
BRANCH=None
TEST=Verified that on resume coreboot no longer complains about index
read for 0x1007. Return value is 0 as expected.

Change-Id: Ib8640acc9cc9cdb3ba5d40e0ccee5ca7d67fa645
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: https://review.coreboot.org/16832
Tested-by: build bot (Jenkins)
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
diff --git a/src/lib/tpm2_tlcl.c b/src/lib/tpm2_tlcl.c
index b6017a2..ecf0db6 100644
--- a/src/lib/tpm2_tlcl.c
+++ b/src/lib/tpm2_tlcl.c
@@ -54,10 +54,27 @@
 	return TPM_SUCCESS;
 }
 
+static uint32_t tlcl_send_startup(TPM_SU type)
+{
+	struct tpm2_startup startup;
+	struct tpm2_response *response;
+
+	startup.startup_type = type;
+	response = tpm_process_command(TPM2_Startup, &startup);
+
+	if (response && response->hdr.tpm_code &&
+	    (response->hdr.tpm_code != TPM_RC_INITIALIZE)) {
+		printk(BIOS_INFO, "%s: Startup return code is %x\n",
+		       __func__, response->hdr.tpm_code);
+		return TPM_E_IOERROR;
+	}
+	return TPM_SUCCESS;
+
+}
+
 uint32_t tlcl_resume(void)
 {
-	printk(BIOS_INFO, "%s:%s:%d\n", __FILE__, __func__, __LINE__);
-	return TPM_SUCCESS;
+	return tlcl_send_startup(TPM_SU_STATE);
 }
 
 uint32_t tlcl_assert_physical_presence(void)
@@ -245,18 +262,7 @@
 
 uint32_t tlcl_startup(void)
 {
-	struct tpm2_startup startup;
-	struct tpm2_response *response;
-
-	startup.startup_type = TPM_SU_CLEAR;
-	response = tpm_process_command(TPM2_Startup, &startup);
-	if (response && response->hdr.tpm_code &&
-	    (response->hdr.tpm_code != TPM_RC_INITIALIZE)) {
-		printk(BIOS_INFO, "startup return code is %x\n",
-		       response->hdr.tpm_code);
-		return TPM_E_IOERROR;
-	}
-	return TPM_SUCCESS;
+	return tlcl_send_startup(TPM_SU_CLEAR);
 }
 
 uint32_t tlcl_write(uint32_t index, const void *data, uint32_t length)