tpm: generalize init_timeout()
It seems both TIS & CRB devices share the same timeout. Make
initialization function generic now.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Tested-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
diff --git a/src/hw/tpm_drivers.c b/src/hw/tpm_drivers.c
index a137e62..0daaef2 100644
--- a/src/hw/tpm_drivers.c
+++ b/src/hw/tpm_drivers.c
@@ -102,6 +102,23 @@
return TPM_VERSION_1_2;
}
+static void init_timeout(int driver)
+{
+ if (tpm_drivers[driver].durations == NULL) {
+ u32 *durations = tpm_default_dur;
+ memcpy(durations, tpm_default_durations,
+ sizeof(tpm_default_durations));
+ tpm_drivers[driver].durations = durations;
+ }
+
+ if (tpm_drivers[driver].timeouts == NULL) {
+ u32 *timeouts = tpm_default_to;
+ memcpy(timeouts, tis_default_timeouts,
+ sizeof(tis_default_timeouts));
+ tpm_drivers[driver].timeouts = timeouts;
+ }
+}
+
static u32 tis_init(void)
{
if (!CONFIG_TCGBIOS)
@@ -109,19 +126,7 @@
writeb(TIS_REG(0, TIS_REG_INT_ENABLE), 0);
- if (tpm_drivers[TIS_DRIVER_IDX].durations == NULL) {
- u32 *durations = tpm_default_dur;
- memcpy(durations, tpm_default_durations,
- sizeof(tpm_default_durations));
- tpm_drivers[TIS_DRIVER_IDX].durations = durations;
- }
-
- if (tpm_drivers[TIS_DRIVER_IDX].timeouts == NULL) {
- u32 *timeouts = tpm_default_to;
- memcpy(timeouts, tis_default_timeouts,
- sizeof(tis_default_timeouts));
- tpm_drivers[TIS_DRIVER_IDX].timeouts = timeouts;
- }
+ init_timeout(TIS_DRIVER_IDX);
return 1;
}