aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4090-drm-amdgpu-add-function-to-check-tmz-capability-v4.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4090-drm-amdgpu-add-function-to-check-tmz-capability-v4.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4090-drm-amdgpu-add-function-to-check-tmz-capability-v4.patch126
1 files changed, 126 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4090-drm-amdgpu-add-function-to-check-tmz-capability-v4.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4090-drm-amdgpu-add-function-to-check-tmz-capability-v4.patch
new file mode 100644
index 00000000..b402915b
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4090-drm-amdgpu-add-function-to-check-tmz-capability-v4.patch
@@ -0,0 +1,126 @@
+From 712ecf0704ca3b2a465027441b729cafb4949e4e Mon Sep 17 00:00:00 2001
+From: Huang Rui <ray.huang@amd.com>
+Date: Mon, 12 Aug 2019 21:06:22 +0800
+Subject: [PATCH 4090/4256] drm/amdgpu: add function to check tmz capability
+ (v4)
+
+Add a function to check tmz capability with kernel parameter and ASIC type.
+
+v2: use a per device tmz variable instead of global amdgpu_tmz.
+v3: refine the comments for the function. (Luben)
+v4: add amdgpu_tmz.c/h for future use.
+
+Signed-off-by: Huang Rui <ray.huang@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/Makefile | 2 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 ++
+ drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.c | 49 ++++++++++++++++++++++
+ drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.h | 3 ++
+ 4 files changed, 56 insertions(+), 1 deletion(-)
+ create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.c
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile b/drivers/gpu/drm/amd/amdgpu/Makefile
+index fa5703505748..d2fa7313c876 100644
+--- a/drivers/gpu/drm/amd/amdgpu/Makefile
++++ b/drivers/gpu/drm/amd/amdgpu/Makefile
+@@ -56,7 +56,7 @@ amdgpu-y += amdgpu_device.o amdgpu_kms.o \
+ amdgpu_gmc.o amdgpu_mmhub.o amdgpu_xgmi.o amdgpu_csa.o amdgpu_sem.o \
+ amdgpu_ras.o amdgpu_vm_cpu.o amdgpu_vm_sdma.o \
+ amdgpu_discovery.o amdgpu_ras_eeprom.o amdgpu_nbio.o amdgpu_umc.o \
+- smu_v11_0_i2c.o
++ smu_v11_0_i2c.o amdgpu_tmz.o
+
+ amdgpu-$(CONFIG_PERF_EVENTS) += amdgpu_pmu.o
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index 4f7b0f0447bf..39ccf6855efb 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -63,6 +63,7 @@
+ #include "amdgpu_xgmi.h"
+ #include "amdgpu_ras.h"
+ #include "amdgpu_pmu.h"
++#include "amdgpu_tmz.h"
+
+ #include <linux/suspend.h>
+
+@@ -1027,6 +1028,8 @@ static int amdgpu_device_check_arguments(struct amdgpu_device *adev)
+ adev->firmware.load_type = amdgpu_ucode_get_load_type(adev, amdgpu_fw_load_type);
+ amdgpu_direct_gma_size = min(amdgpu_direct_gma_size, 96);
+
++ adev->tmz.enabled = amdgpu_is_tmz(adev);
++
+ return ret;
+ }
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.c
+new file mode 100644
+index 000000000000..14a55003dd81
+--- /dev/null
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.c
+@@ -0,0 +1,49 @@
++/*
++ * Copyright 2019 Advanced Micro Devices, Inc.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
++ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
++ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++#include <drm/drmP.h>
++#include "amdgpu.h"
++#include "amdgpu_tmz.h"
++
++
++/**
++ * amdgpu_is_tmz - validate trust memory zone
++ *
++ * @adev: amdgpu_device pointer
++ *
++ * Return true if @dev supports trusted memory zones (TMZ), and return false if
++ * @dev does not support TMZ.
++ */
++bool amdgpu_is_tmz(struct amdgpu_device *adev)
++{
++ if (!amdgpu_tmz)
++ return false;
++
++ 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;
++ }
++
++ dev_info(adev->dev, "TMZ feature is enabled\n");
++
++ return true;
++}
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.h
+index 24bbbc21702a..28e05177fb89 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_tmz.h
+@@ -33,4 +33,7 @@ struct amdgpu_tmz {
+ bool enabled;
+ };
+
++
++extern bool amdgpu_is_tmz(struct amdgpu_device *adev);
++
+ #endif
+--
+2.17.1
+