drm/amd/powerplay: fix populate dpm level failed when s3 on vega10.
authorRex Zhu <Rex.Zhu@amd.com>
Fri, 2 Jun 2017 12:04:40 +0000 (20:04 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 6 Jun 2017 21:00:42 +0000 (17:00 -0400)
As the min clk may be  large than boot level can support.
in this case, just ignore the min clk.

Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c

index 43812d2..d2998fa 100644 (file)
@@ -3119,11 +3119,10 @@ static int vega10_apply_state_adjust_rules(struct pp_hwmgr *hwmgr,
        vega10_ps->performance_levels[0].gfx_clock = sclk;
        vega10_ps->performance_levels[0].mem_clock = mclk;
 
-       vega10_ps->performance_levels[1].gfx_clock =
-               (vega10_ps->performance_levels[1].gfx_clock >=
-                               vega10_ps->performance_levels[0].gfx_clock) ?
-                                               vega10_ps->performance_levels[1].gfx_clock :
-                                               vega10_ps->performance_levels[0].gfx_clock;
+       if (vega10_ps->performance_levels[1].gfx_clock <
+                       vega10_ps->performance_levels[0].gfx_clock)
+               vega10_ps->performance_levels[0].gfx_clock =
+                               vega10_ps->performance_levels[1].gfx_clock;
 
        if (disable_mclk_switching) {
                /* Set Mclk the max of level 0 and level 1 */
@@ -3146,8 +3145,8 @@ static int vega10_apply_state_adjust_rules(struct pp_hwmgr *hwmgr,
        } else {
                if (vega10_ps->performance_levels[1].mem_clock <
                                vega10_ps->performance_levels[0].mem_clock)
-                       vega10_ps->performance_levels[1].mem_clock =
-                                       vega10_ps->performance_levels[0].mem_clock;
+                       vega10_ps->performance_levels[0].mem_clock =
+                                       vega10_ps->performance_levels[1].mem_clock;
        }
 
        if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,