This commit fixes some instability on Tahiti.

Sometimes UVD initialization would fail when using DC.
I suspect this is because DC doesn't immediately turn on the
display clock, so it changes how DPM behaves.

Fixes: 841686df9f7d ("drm/amdgpu: add SI DPM support (v4)")
Signed-off-by: Timur Kristóf <timur.kris...@gmail.com>
---
 drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c 
b/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
index 52e732be59e3..33b9d4beec84 100644
--- a/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
+++ b/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
@@ -5639,10 +5639,13 @@ static int si_disable_ulv(struct amdgpu_device *adev)
 {
        struct si_power_info *si_pi = si_get_pi(adev);
        struct si_ulv_param *ulv = &si_pi->ulv;
+       PPSMC_Result r;
 
+       r = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_DisableULV);
+
+       /* Only care about SMC reply when ULV is supported. */
        if (ulv->supported)
-               return (amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_DisableULV) 
== PPSMC_Result_OK) ?
-                       0 : -EINVAL;
+               return (r == PPSMC_Result_OK) ? 0 : -EINVAL;
 
        return 0;
 }
-- 
2.50.1

Reply via email to