aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0474-drm-amd-pp-Implement-load_firmware-interface.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0474-drm-amd-pp-Implement-load_firmware-interface.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0474-drm-amd-pp-Implement-load_firmware-interface.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0474-drm-amd-pp-Implement-load_firmware-interface.patch b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0474-drm-amd-pp-Implement-load_firmware-interface.patch
new file mode 100644
index 00000000..10acda8e
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0474-drm-amd-pp-Implement-load_firmware-interface.patch
@@ -0,0 +1,45 @@
+From 01a5fbe3d6b0f7bf430a43d5b9ab26cf538acb1a Mon Sep 17 00:00:00 2001
+From: Rex Zhu <Rex.Zhu@amd.com>
+Date: Sat, 29 Sep 2018 20:28:14 +0800
+Subject: [PATCH 0474/2940] drm/amd/pp: Implement load_firmware interface
+
+with this interface, gfx/sdma can be initialized
+before smu.
+
+Reviewed-by: Evan Quan <evan.quan@amd.com>
+Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
+---
+ drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
+index b2ebcb1457b5..6bc8e9c08b0c 100644
+--- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
++++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
+@@ -270,8 +270,23 @@ const struct amdgpu_ip_block_version pp_smu_ip_block =
+ .funcs = &pp_ip_funcs,
+ };
+
++/* This interface only be supported On Vi,
++ * because only smu7/8 can help to load gfx/sdma fw,
++ * smu need to be enabled before load other ip's fw.
++ * so call start smu to load smu7 fw and other ip's fw
++ */
+ static int pp_dpm_load_fw(void *handle)
+ {
++ struct pp_hwmgr *hwmgr = handle;
++
++ if (!hwmgr || !hwmgr->smumgr_funcs || !hwmgr->smumgr_funcs->start_smu)
++ return -EINVAL;
++
++ if (hwmgr->smumgr_funcs->start_smu(hwmgr)) {
++ pr_err("fw load failed\n");
++ return -EINVAL;
++ }
++
+ return 0;
+ }
+
+--
+2.17.1
+