OSDN Git Service

drm/amdgpu: query boot config cap before issue psp cmd
authorHawking Zhang <Hawking.Zhang@amd.com>
Thu, 13 May 2021 15:55:49 +0000 (23:55 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 20 May 2021 02:30:17 +0000 (22:30 -0400)
Only send boot_config cmd to ASICs that support dynamic
boot config. Otherwise, the boot_config cmd will fail.

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: John Clements <john.clements@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c

index f7bbb04..56a3c3e 100644 (file)
@@ -38,6 +38,7 @@
 
 #include "amdgpu_ras.h"
 #include "amdgpu_securedisplay.h"
+#include "amdgpu_atomfirmware.h"
 
 static int psp_sysfs_init(struct amdgpu_device *adev);
 static void psp_sysfs_fini(struct amdgpu_device *adev);
@@ -538,7 +539,7 @@ static int psp_boot_config_set(struct amdgpu_device *adev)
        struct psp_context *psp = &adev->psp;
        struct psp_gfx_cmd_resp *cmd = psp->cmd;
 
-       if (adev->asic_type != CHIP_SIENNA_CICHLID || amdgpu_sriov_vf(adev))
+       if (amdgpu_sriov_vf(adev))
                return 0;
 
        memset(cmd, 0, sizeof(struct psp_gfx_cmd_resp));
@@ -1931,9 +1932,10 @@ static int psp_hw_start(struct psp_context *psp)
                return ret;
        }
 
-       ret = psp_boot_config_set(adev);
-       if (ret) {
-               DRM_WARN("PSP set boot config@\n");
+       if (amdgpu_atomfirmware_dynamic_boot_config_supported(adev)) {
+               ret = psp_boot_config_set(adev);
+               if (ret)
+                       dev_warn(adev->dev, "PSP set boot config failed\n");
        }
 
        ret = psp_tmr_init(psp);