rockchip: rk3328: rock64 - fix gen3 SPL hang
[oweals/u-boot.git] / lib / tpm-v1.c
index f29e62ff7b2928e30787f436313de40b53a964fd..a846fe00dd3ef4cf4a6f74c3b041156982c9e89c 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <common.h>
 #include <dm.h>
+#include <log.h>
 #include <asm/unaligned.h>
 #include <u-boot/sha1.h>
 #include <tpm-common.h>
@@ -79,19 +80,19 @@ u32 tpm_clear_and_reenable(struct udevice *dev)
                return ret;
        }
 
-#if IS_ENABLED(CONFIG_TPM_V1)
-       ret = tpm_physical_enable(dev);
-       if (ret != TPM_SUCCESS) {
-               log_err("TPM: Can't set enabled state\n");
-               return ret;
-       }
+       if (tpm_get_version(dev) == TPM_V1) {
+               ret = tpm_physical_enable(dev);
+               if (ret != TPM_SUCCESS) {
+                       log_err("TPM: Can't set enabled state\n");
+                       return ret;
+               }
 
-       ret = tpm_physical_set_deactivated(dev, 0);
-       if (ret != TPM_SUCCESS) {
-               log_err("TPM: Can't set deactivated state\n");
-               return ret;
+               ret = tpm_physical_set_deactivated(dev, 0);
+               if (ret != TPM_SUCCESS) {
+                       log_err("TPM: Can't set deactivated state\n");
+                       return ret;
+               }
        }
-#endif
 
        return TPM_SUCCESS;
 }
@@ -211,9 +212,7 @@ u32 tpm_nv_write_value(struct udevice *dev, u32 index, const void *data,
 
 uint32_t tpm_set_global_lock(struct udevice *dev)
 {
-       u32 x;
-
-       return tpm_nv_write_value(dev, TPM_NV_INDEX_0, (uint8_t *)&x, 0);
+       return tpm_nv_write_value(dev, TPM_NV_INDEX_0, NULL, 0);
 }
 
 u32 tpm_extend(struct udevice *dev, u32 index, const void *in_digest,