Commit 5af50b0b authored by Bindu Ramamurthy's avatar Bindu Ramamurthy Committed by Alex Deucher
Browse files

drm/amd/display: Allow idle optimization based on vblank.



[Why]
idle optimization was being disabled after commit.

[How]
check vblank count for display off and enable idle optimization based on this count.
Also,check added to ensure vblank count does not decrement, when count reaches 0.

Reviewed-by: default avatarKenneth Feng <kenneth.feng@amd.com>
Signed-off-by: default avatarBindu Ramamurthy <bindu.r@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 5bf314ab
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1013,7 +1013,7 @@ static void event_mall_stutter(struct work_struct *work)

	if (vblank_work->enable)
		dm->active_vblank_irq_count++;
	else
	else if(dm->active_vblank_irq_count)
		dm->active_vblank_irq_count--;

	dc_allow_idle_optimizations(dm->dc, dm->active_vblank_irq_count == 0);
@@ -8678,6 +8678,11 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
		dm_enable_per_frame_crtc_master_sync(dc_state);
		mutex_lock(&dm->dc_lock);
		WARN_ON(!dc_commit_state(dm->dc, dc_state));
#if defined(CONFIG_DRM_AMD_DC_DCN)
               /* Allow idle optimization when vblank count is 0 for display off */
               if (dm->active_vblank_irq_count == 0)
                   dc_allow_idle_optimizations(dm->dc,true);
#endif
		mutex_unlock(&dm->dc_lock);
	}