Commit cf65ebeb authored by Eric Yang's avatar Eric Yang Committed by Alex Deucher
Browse files

drm/amd/display: fix link bw calculation for 422 and 420 encoding



Link bw required is reduced when we have chroma subsampling.

Signed-off-by: default avatarEric Yang <Eric.Yang2@amd.com>
Reviewed-by: default avatarCharlene Liu <Charlene.Liu@amd.com>
Acked-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 3dc8acad
Loading
Loading
Loading
Loading
+32 −21
Original line number Diff line number Diff line
@@ -1378,6 +1378,11 @@ static uint32_t bandwidth_in_kbps_from_timing(
{
	uint32_t bits_per_channel = 0;
	uint32_t kbps;

	if (timing->pixel_encoding == PIXEL_ENCODING_YCBCR422)
		bits_per_channel = 12;
	else{

		switch (timing->display_color_depth) {

		case COLOR_DEPTH_666:
@@ -1401,14 +1406,20 @@ static uint32_t bandwidth_in_kbps_from_timing(
		default:
			break;
		}
	}
	ASSERT(bits_per_channel != 0);

	kbps = timing->pix_clk_khz;
	kbps *= bits_per_channel;

	if (timing->flags.Y_ONLY != 1)
	if (timing->flags.Y_ONLY != 1) {
		/*Only YOnly make reduce bandwidth by 1/3 compares to RGB*/
		kbps *= 3;
		if (timing->pixel_encoding == PIXEL_ENCODING_YCBCR420)
			kbps /= 2;
		else if (timing->pixel_encoding == PIXEL_ENCODING_YCBCR422)
			kbps = kbps * 2 / 3;
	}

	return kbps;