drm/amd/display: Insert pulling smu busy status before sending another request
authorOliver Logush <oliver.logush@amd.com>
Tue, 22 Mar 2022 14:26:19 +0000 (10:26 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 12 Apr 2022 18:18:18 +0000 (14:18 -0400)
[why]
Make sure smu is not busy before sending another request, this is to
prevent stress failures from MS.

[how]
Check to make sure the SMU fw busy signal is cleared before sending
another request

Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Acked-by: Pavle Kotarac <Pavle.Kotarac@amd.com>
Signed-off-by: Oliver Logush <oliver.logush@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c

index 8161a6a..30c6f9c 100644 (file)
@@ -94,6 +94,9 @@ static int rn_vbios_smu_send_msg_with_param(struct clk_mgr_internal *clk_mgr,
 {
        uint32_t result;
 
+       result = rn_smu_wait_for_response(clk_mgr, 10, 200000);
+       ASSERT(result == VBIOSSMC_Result_OK);
+
        /* First clear response register */
        REG_WRITE(MP1_SMN_C2PMSG_91, VBIOSSMC_Status_BUSY);