We only need to skip this on modern APUs.  It's required
on older APUs as it's where start_smu gets called from.

Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3502
Fixes: 064d92436b69 ("drm/amd/pm: avoid to load smu firmware for APUs")
Signed-off-by: Alex Deucher <[email protected]>
Cc: Tim Huang <[email protected]>
---
 drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/pm/amdgpu_dpm.c 
b/drivers/gpu/drm/amd/pm/amdgpu_dpm.c
index f78b4f013ed4..62df787d7b28 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_dpm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_dpm.c
@@ -631,7 +631,8 @@ int amdgpu_pm_load_smu_firmware(struct amdgpu_device *adev, 
uint32_t *smu_versio
        const struct amd_pm_funcs *pp_funcs = adev->powerplay.pp_funcs;
        int r = 0;
 
-       if (!pp_funcs || !pp_funcs->load_firmware || adev->flags & AMD_IS_APU)
+       if (!pp_funcs || !pp_funcs->load_firmware ||
+           (is_support_sw_smu(adev) && (adev->flags & AMD_IS_APU)))
                return 0;
 
        mutex_lock(&adev->pm.mutex);
-- 
2.45.2

Reply via email to