drm/amdgpu: Ignore the not supported error from psp
authorEmily Deng <Emily.Deng@amd.com>
Wed, 25 Mar 2020 10:58:02 +0000 (18:58 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 1 Apr 2020 18:44:42 +0000 (14:44 -0400)
As the VCN firmware will not use
vf vmr now. And new psp policy won't support set tmr
now.
For driver compatible issue, ignore the not support error.

Signed-off-by: Emily Deng <Emily.Deng@amd.com>
Reviewed-by: Monk Liu <monk.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c

index be50867..dbaeffc 100644 (file)
@@ -201,6 +201,7 @@ psp_cmd_submit_buf(struct psp_context *psp,
        int index;
        int timeout = 2000;
        bool ras_intr = false;
+       bool skip_unsupport = false;
 
        mutex_lock(&psp->mutex);
 
@@ -232,6 +233,9 @@ psp_cmd_submit_buf(struct psp_context *psp,
                amdgpu_asic_invalidate_hdp(psp->adev, NULL);
        }
 
+       /* We allow TEE_ERROR_NOT_SUPPORTED for VMR command in SRIOV */
+       skip_unsupport = (psp->cmd_buf_mem->resp.status == 0xffff000a) && amdgpu_sriov_vf(psp->adev);
+
        /* In some cases, psp response status is not 0 even there is no
         * problem while the command is submitted. Some version of PSP FW
         * doesn't write 0 to that field.
@@ -239,7 +243,7 @@ psp_cmd_submit_buf(struct psp_context *psp,
         * during psp initialization to avoid breaking hw_init and it doesn't
         * return -EINVAL.
         */
-       if ((psp->cmd_buf_mem->resp.status || !timeout) && !ras_intr) {
+       if (!skip_unsupport && (psp->cmd_buf_mem->resp.status || !timeout) && !ras_intr) {
                if (ucode)
                        DRM_WARN("failed to load ucode id (%d) ",
                                  ucode->ucode_id);