diff options
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.patch | 126 |
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 + |