[PATCH] drm/amdgpu: implement TMZ accessor

Tuikov, Luben Luben.Tuikov at amd.com
Wed Oct 30 23:43:09 UTC 2019


Implement an accessor of adev->tmz.enabled. Let not
code around access it as "if (adev->tmz.enabled)"
as the organization may change. Instead...

Recruit "bool amdgpu_is_tmz(adev)" to return
exactly this Boolean value. That is, this function
is now an accessor of an already initialized and
set adev and adev->tmz.

Add "void amdgpu_tmz_set(adev)" to check and set
adev->tmz.* at initialization time. After which
one uses "bool amdgpu_is_tmz(adev)" to query
whether adev supports TMZ.

Also, remove circular header file include.

Signed-off-by: Luben Tuikov <luben.tuikov at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu.h        |  5 +++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.c    | 23 +++++++++++-----------
 drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.h    |  7 ++-----
 4 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 7d1e528cc783..23bd81a76570 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1249,5 +1249,10 @@ _name##_show(struct device *dev,					\
 									\
 static struct device_attribute pmu_attr_##_name = __ATTR_RO(_name)
 
+static inline bool amdgpu_is_tmz(struct amdgpu_device *adev)
+{
+	return adev->tmz.enabled;
+}
+
 #endif
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 4eee40b9d0b0..f12b817480bb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -1058,7 +1058,7 @@ static int amdgpu_device_check_arguments(struct amdgpu_device *adev)
 
 	adev->firmware.load_type = amdgpu_ucode_get_load_type(adev, amdgpu_fw_load_type);
 
-	adev->tmz.enabled = amdgpu_is_tmz(adev);
+	amdgpu_tmz_set(adev);
 
 	return ret;
 }
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.c
index 823527a0fa47..518b9d335550 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.c
@@ -27,26 +27,25 @@
 #include "amdgpu.h"
 #include "amdgpu_tmz.h"
 
-
 /**
- * amdgpu_is_tmz - validate trust memory zone
- *
+ * amdgpu_tmz_set -- check and set if a device supports TMZ
  * @adev: amdgpu_device pointer
  *
- * Return true if @dev supports trusted memory zones (TMZ), and return false if
- * @dev does not support TMZ.
+ * Check and set if an the device @adev supports Trusted Memory
+ * Zones (TMZ).
  */
-bool amdgpu_is_tmz(struct amdgpu_device *adev)
+void amdgpu_tmz_set(struct amdgpu_device *adev)
 {
 	if (!amdgpu_tmz)
-		return false;
+		return;
 
-	if (adev->asic_type < CHIP_RAVEN || adev->asic_type == CHIP_ARCTURUS) {
-		dev_warn(adev->dev, "doesn't support trusted memory zones (TMZ)\n");
-		return false;
+	if (adev->asic_type < CHIP_RAVEN ||
+	    adev->asic_type == CHIP_ARCTURUS) {
+		dev_warn(adev->dev, "Trusted Memory Zone (TMZ) feature not supported\n");
+		return;
 	}
 
-	dev_info(adev->dev, "TMZ feature is enabled\n");
+	adev->tmz.enabled = true;
 
-	return true;
+	dev_info(adev->dev, "Trusted Memory Zone (TMZ) feature supported and enabled\n");
 }
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.h
index 28e05177fb89..ad3ad8c011f9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.h
@@ -24,16 +24,13 @@
 #ifndef __AMDGPU_TMZ_H__
 #define __AMDGPU_TMZ_H__
 
-#include "amdgpu.h"
-
 /*
- * Trust memory zone stuff
+ * Trusted Memory Zone particulars
  */
 struct amdgpu_tmz {
 	bool	enabled;
 };
 
-
-extern bool amdgpu_is_tmz(struct amdgpu_device *adev);
+extern void amdgpu_tmz_set(struct amdgpu_device *adev);
 
 #endif
-- 
2.23.0.385.gbc12974a89



More information about the amd-gfx mailing list