Commit 2b2b3a75 authored by Rodrigo Siqueira's avatar Rodrigo Siqueira Committed by Alex Deucher
Browse files

drm/amd/display: Use two pixel per container for k1/k2 div



Currently, we check if pixel_encoding is equal to
PIXEL_ENCODING_YCBCR422 to get the k1/k2 div parameters. This commit
changes this logic slightly by checking if two pixels per container are
used.

Signed-off-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 88ef4c5b
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1084,6 +1084,7 @@ unsigned int dcn32_calculate_dccg_k1_k2_values(struct pipe_ctx *pipe_ctx, unsign
	struct dc_stream_state *stream = pipe_ctx->stream;
	unsigned int odm_combine_factor = 0;
	struct dc *dc = pipe_ctx->stream->ctx->dc;
	bool two_pix_per_container = optc2_is_two_pixels_per_containter(&stream->timing);

	odm_combine_factor = get_odm_config(pipe_ctx, NULL);

@@ -1096,13 +1097,12 @@ unsigned int dcn32_calculate_dccg_k1_k2_values(struct pipe_ctx *pipe_ctx, unsign
		else
			*k2_div = PIXEL_RATE_DIV_BY_4;
	} else if (dc_is_dp_signal(pipe_ctx->stream->signal)) {
		if (stream->timing.pixel_encoding == PIXEL_ENCODING_YCBCR420) {
		if (two_pix_per_container) {
			*k1_div = PIXEL_RATE_DIV_BY_1;
			*k2_div = PIXEL_RATE_DIV_BY_2;
		} else if (stream->timing.pixel_encoding == PIXEL_ENCODING_YCBCR422) {
			*k1_div = PIXEL_RATE_DIV_BY_2;
			*k2_div = PIXEL_RATE_DIV_BY_2;
		} else {
			*k1_div = PIXEL_RATE_DIV_BY_1;
			*k2_div = PIXEL_RATE_DIV_BY_4;
			if ((odm_combine_factor == 2) || dc->debug.enable_dp_dig_pixel_rate_div_policy)
				*k2_div = PIXEL_RATE_DIV_BY_2;
		}