Commit 54980f3c authored by Dillon Varone's avatar Dillon Varone Committed by Alex Deucher
Browse files

drm/amd/display: Add missing post flip calls



[WHY&HOW]
dc_post_update_surfaces_to_stream needs to be called after a full update
completes in order to optimize clocks and watermarks for power. Add
missing calls before idle entry is requested to ensure optimal power.

Reviewed-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: default avatarDillon Varone <Dillon.Varone@amd.com>
Signed-off-by: default avatarIvan Lipski <ivan.lipski@amd.com>
Tested-by: default avatarDan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent c82b8f96
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -417,7 +417,6 @@ static inline bool update_planes_and_stream_adapter(struct dc *dc,
	/*
	 * Previous frame finished and HW is ready for optimization.
	 */
	if (update_type == UPDATE_TYPE_FAST)
	dc_post_update_surfaces_to_stream(dc);

	return dc_update_planes_and_stream(dc,
+6 −2
Original line number Diff line number Diff line
@@ -218,8 +218,10 @@ static void amdgpu_dm_idle_worker(struct work_struct *work)
			break;
		}

		if (idle_work->enable)
		if (idle_work->enable) {
			dc_post_update_surfaces_to_stream(idle_work->dm->dc);
			dc_allow_idle_optimizations(idle_work->dm->dc, true);
		}
		mutex_unlock(&idle_work->dm->dc_lock);
	}
	idle_work->dm->idle_workqueue->running = false;
@@ -273,8 +275,10 @@ static void amdgpu_dm_crtc_vblank_control_worker(struct work_struct *work)
			vblank_work->acrtc->dm_irq_params.allow_sr_entry);
	}

	if (dm->active_vblank_irq_count == 0)
	if (dm->active_vblank_irq_count == 0) {
		dc_post_update_surfaces_to_stream(dm->dc);
		dc_allow_idle_optimizations(dm->dc, true);
	}

	mutex_unlock(&dm->dc_lock);