diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1333-drm-amd-powerplay-add-fw-load-checking-interface.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1333-drm-amd-powerplay-add-fw-load-checking-interface.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1333-drm-amd-powerplay-add-fw-load-checking-interface.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1333-drm-amd-powerplay-add-fw-load-checking-interface.patch new file mode 100644 index 00000000..e58f99ae --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1333-drm-amd-powerplay-add-fw-load-checking-interface.patch @@ -0,0 +1,83 @@ +From ffd933591211896762b986b1006a45d9b47a2ed6 Mon Sep 17 00:00:00 2001 +From: Huang Rui <ray.huang@amd.com> +Date: Sun, 2 Dec 2018 18:25:00 +0800 +Subject: [PATCH 1333/2940] drm/amd/powerplay: add fw load checking interface + +This patch adds fw load checking interface for smu. + +Signed-off-by: Huang Rui <ray.huang@amd.com> +Acked-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/powerplay/amdgpu_smu.c | 6 ++++++ + drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h | 3 +++ + drivers/gpu/drm/amd/powerplay/smu_v11_0.c | 7 +++++++ + 3 files changed, 16 insertions(+) + +diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +index afdef545fbed..b78125207b67 100644 +--- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c ++++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +@@ -102,6 +102,12 @@ static int smu_hw_init(void *handle) + return ret; + } + ++ ret = smu_check_fw_status(smu); ++ if (ret) { ++ pr_err("SMC firmware status is not correct\n"); ++ return ret; ++ } ++ + mutex_lock(&smu->mutex); + + /* TODO */ +diff --git a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h +index ab1deb52932c..923a923d0050 100644 +--- a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h ++++ b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h +@@ -36,12 +36,15 @@ struct smu_funcs + { + int (*init_microcode)(struct smu_context *smu); + int (*load_microcode)(struct smu_context *smu); ++ int (*check_fw_status)(struct smu_context *smu); + }; + + #define smu_init_microcode(smu) \ + ((smu)->funcs->init_microcode ? (smu)->funcs->init_microcode((smu)) : 0) + #define smu_load_microcode(smu) \ + ((smu)->funcs->load_microcode ? (smu)->funcs->load_microcode((smu)) : 0) ++#define smu_check_fw_status(smu) \ ++ ((smu)->funcs->check_fw_status ? (smu)->funcs->check_fw_status((smu)) : 0) + + extern const struct amd_ip_funcs smu_ip_funcs; + +diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c +index c50c8cb233b0..a4fdc54ea5e2 100644 +--- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c ++++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c +@@ -24,6 +24,7 @@ + #include <linux/firmware.h> + #include "amdgpu.h" + #include "amdgpu_smu.h" ++#include "smu_v11_0.h" + + static int smu_v11_0_init_microcode(struct smu_context *smu) + { +@@ -37,9 +38,15 @@ static int smu_v11_0_load_microcode(struct smu_context *smu) + return 0; + } + ++static int smu_v11_0_check_fw_status(struct smu_context *smu) ++{ ++ return 0; ++} ++ + static const struct smu_funcs smu_v11_0_funcs = { + .init_microcode = smu_v11_0_init_microcode, + .load_microcode = smu_v11_0_load_microcode, ++ .check_fw_status = smu_v11_0_check_fw_status, + }; + + void smu_v11_0_set_smu_funcs(struct smu_context *smu) +-- +2.17.1 + |