Commit f6893fcb authored by Alex Hung's avatar Alex Hung Committed by Alex Deucher
Browse files

drm/amd/display: Add writeback enable field (wb_enabled)



[WHAT]
Add a new field to keep track whether a crtc is previously
writeback-enabled.

Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Hung <alex.hung@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 5b89d2cc
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -418,6 +418,7 @@ struct amdgpu_crtc {
	struct drm_pending_vblank_event *event;

	bool wb_pending;
	bool wb_enabled;
	struct drm_writeback_connector *wb_conn;
};

+8 −0
Original line number Diff line number Diff line
@@ -8732,9 +8732,13 @@ static void amdgpu_dm_commit_streams(struct drm_atomic_state *state,
		if (acrtc)
			old_crtc_state = drm_atomic_get_old_crtc_state(state, &acrtc->base);

		if (!acrtc->wb_enabled)
			continue;

		dm_old_crtc_state = to_dm_crtc_state(old_crtc_state);

		dm_clear_writeback(dm, dm_old_crtc_state);
		acrtc->wb_enabled = false;
	}

	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state,
@@ -9312,9 +9316,13 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
		if (acrtc)
			new_crtc_state = drm_atomic_get_new_crtc_state(state, &acrtc->base);

		if (acrtc->wb_enabled)
			continue;

		dm_new_crtc_state = to_dm_crtc_state(new_crtc_state);

		dm_set_writeback(dm, dm_new_crtc_state, connector, new_con_state);
		acrtc->wb_enabled = true;
	}

	/* Update audio instances for each connector. */