]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
drm/amdgpu: added support for dynamic GECC
authorJohn Clements <john.clements@amd.com>
Wed, 24 Mar 2021 13:13:17 +0000 (21:13 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Apr 2021 20:43:06 +0000 (16:43 -0400)
updated host to send boot config to psp to enable GECC for sienna cichlid

Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-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 c2b7ee693719ad83c8577ce3cc342e1dbafbadb0..c566e56154b0992ecf4fe897c3c5891e579d36c6 100644 (file)
@@ -556,6 +556,24 @@ int psp_get_fw_attestation_records_addr(struct psp_context *psp,
        return ret;
 }
 
+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)
+               return 0;
+
+       memset(cmd, 0, sizeof(struct psp_gfx_cmd_resp));
+
+       cmd->cmd_id = GFX_CMD_ID_BOOT_CFG;
+       cmd->cmd.boot_cfg.sub_cmd = BOOTCFG_CMD_SET;
+       cmd->cmd.boot_cfg.boot_config = BOOT_CONFIG_GECC;
+       cmd->cmd.boot_cfg.boot_config_valid = BOOT_CONFIG_GECC;
+
+       return psp_cmd_submit_buf(psp, NULL, cmd, psp->fence_buf_mc_addr);
+}
+
 static int psp_rl_load(struct amdgpu_device *adev)
 {
        struct psp_context *psp = &adev->psp;
@@ -1912,6 +1930,11 @@ 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");
+       }
+
        ret = psp_tmr_init(psp);
        if (ret) {
                DRM_ERROR("PSP tmr init failed!\n");