gfx and sdma can be initialized before smu.

Signed-off-by: Rex Zhu <rex....@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c  | 11 +++++++++++
 drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c |  8 ++++++++
 2 files changed, 19 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c 
b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index 6b1954e..77e05c1 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -4180,9 +4180,20 @@ static void gfx_v8_0_rlc_start(struct amdgpu_device 
*adev)
 
 static int gfx_v8_0_rlc_resume(struct amdgpu_device *adev)
 {
+       int r;
+
        gfx_v8_0_rlc_stop(adev);
        gfx_v8_0_rlc_reset(adev);
        gfx_v8_0_init_pg(adev);
+
+       if (adev->powerplay.pp_funcs->load_firmware) {
+               r = 
adev->powerplay.pp_funcs->load_firmware(adev->powerplay.pp_handle);
+               if (r) {
+                       pr_err("firmware loading failed\n");
+                       return r;
+               }
+       }
+
        gfx_v8_0_rlc_start(adev);
 
        return 0;
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c 
b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
index 6fb3eda..0bdde7f 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
@@ -788,6 +788,14 @@ static int sdma_v3_0_start(struct amdgpu_device *adev)
 {
        int r;
 
+       if (adev->powerplay.pp_funcs->load_firmware) {
+               r = 
adev->powerplay.pp_funcs->load_firmware(adev->powerplay.pp_handle);
+               if (r) {
+                       pr_err("firmware loading failed\n");
+                       return r;
+               }
+       }
+
        /* disable sdma engine before programing it */
        sdma_v3_0_ctx_switch_enable(adev, false);
        sdma_v3_0_enable(adev, false);
-- 
1.9.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to