]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/amdgpu/psp11: wait for sOS ready for ring creation
authorXiaojie Yuan <xiaojie.yuan@amd.com>
Fri, 18 Oct 2019 10:46:38 +0000 (18:46 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 25 Oct 2019 20:50:07 +0000 (16:50 -0400)
Signed-off-by: Xiaojie Yuan <xiaojie.yuan@amd.com>
Reviewed-by: Feifei Xu <Feifei.Xu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/psp_v11_0.c

index ace6e6c5629ccfe3848e601419722c1b5bb7c844..e307b8d57fa37ae9bc677454f65e439d6660c50b 100644 (file)
@@ -467,6 +467,14 @@ static int psp_v11_0_ring_create(struct psp_context *psp,
                                   0x80000000, 0x8000FFFF, false);
 
        } else {
+               /* Wait for sOS ready for ring creation */
+               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
+                                  0x80000000, 0x80000000, false);
+               if (ret) {
+                       DRM_ERROR("Failed to wait for sOS ready for ring creation\n");
+                       return ret;
+               }
+
                /* Write low address of the ring to C2PMSG_69 */
                psp_ring_reg = lower_32_bits(ring->ring_mem_mc_addr);
                WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_69, psp_ring_reg);