[PATCH] drm/amdgpu: implement TMZ accessor
Christian König
ckoenig.leichtzumerken at gmail.com
Thu Oct 31 07:29:09 UTC 2019
Am 31.10.19 um 00:43 schrieb Tuikov, Luben:
> 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.
Actually I would rather completely remove the amdgpu_tmz.[hc] files. See
TMZ is a feature and not a hardware block.
All that stuff should probably moved into the PSP handling, since the
control of TMZ is enabled or disabled in the hardware is there.
Regards,
Christian.
>
> 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
More information about the amd-gfx
mailing list