Commit f8e792dc authored by Wesley Chalmers's avatar Wesley Chalmers Committed by Alex Deucher
Browse files

drm/amd/display: New path for enabling DPG



[WHY]
We want to make enabling test pattern a part of the stream update code
path. This change is the first step towards that goal.

Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarWesley Chalmers <Wesley.Chalmers@amd.com>
Reviewed-by: default avatarAric Cyr <Aric.Cyr@amd.com>
Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent fd1c85d3
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -2265,6 +2265,9 @@ static void copy_stream_update_to_stream(struct dc *dc,

	if (update->dither_option)
		stream->dither_option = *update->dither_option;

	if (update->pending_test_pattern)
		stream->test_pattern = *update->pending_test_pattern;
	/* update current stream with writeback info */
	if (update->wb_update) {
		int i;
@@ -2361,6 +2364,15 @@ static void commit_planes_do_stream_update(struct dc *dc,
				}
			}

			if (stream_update->pending_test_pattern) {
				dc_link_dp_set_test_pattern(stream->link,
					stream->test_pattern.type,
					stream->test_pattern.color_space,
					stream->test_pattern.p_link_settings,
					stream->test_pattern.p_custom_pattern,
					stream->test_pattern.cust_pattern_size);
			}

			/* Full fe update*/
			if (update_type == UPDATE_TYPE_FAST)
				continue;
+11 −0
Original line number Diff line number Diff line
@@ -130,6 +130,14 @@ union stream_update_flags {
	uint32_t raw;
};

struct test_pattern {
	enum dp_test_pattern type;
	enum dp_test_pattern_color_space color_space;
	struct link_training_settings const *p_link_settings;
	unsigned char const *p_custom_pattern;
	unsigned int cust_pattern_size;
};

struct dc_stream_state {
	// sink is deprecated, new code should not reference
	// this pointer
@@ -227,6 +235,8 @@ struct dc_stream_state {

	uint32_t stream_id;
	bool is_dsc_enabled;

	struct test_pattern test_pattern;
	union stream_update_flags update_flags;
};

@@ -261,6 +271,7 @@ struct dc_stream_update {
	struct dc_dsc_config *dsc_config;
	struct dc_transfer_func *func_shaper;
	struct dc_3dlut *lut3d_func;
	struct test_pattern *pending_test_pattern;
};

bool dc_is_stream_unchanged(