[why]
For Navi12 and CHIP_SIENNA_CICHLID SRIOV, TMR is not loaded. Should
also skip tmr unload

Signed-off-by: Tong Liu01 <tong.li...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index 0b9e99c35a05..0a3d9f7e277b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -839,7 +839,15 @@ static void psp_prep_tmr_unload_cmd_buf(struct psp_context 
*psp,
 static int psp_tmr_unload(struct psp_context *psp)
 {
        int ret;
-       struct psp_gfx_cmd_resp *cmd = acquire_psp_cmd_buf(psp);
+       struct psp_gfx_cmd_resp *cmd;
+
+       /* For Navi12 and CHIP_SIENNA_CICHLID SRIOV, do not set up TMR.
+        * Already set up by host driver.
+        */
+       if (amdgpu_sriov_vf(psp->adev) && psp_skip_tmr(psp))
+               return 0;
+
+       cmd = acquire_psp_cmd_buf(psp);
 
        psp_prep_tmr_unload_cmd_buf(psp, cmd);
        dev_dbg(psp->adev->dev, "free PSP TMR buffer\n");
-- 
2.34.1

Reply via email to