Commit 79a57f94 authored by George Shen's avatar George Shen Committed by Alex Deucher
Browse files

drm/amd/display: Add 6bpc RGB case for dcn32 output bpp calculations



[Why]
Current DCN32 calculation doesn't consider RGB 6bpc for the DP case.
This results in an invalid output bpp being calculated when DSC is not
enabled in the configuration, failing the mode validation.

[How]
Add special case to handle 6bpc RGB in the output bpp calculation.

Reviewed-by: default avatarAlvin Lee <alvin.lee2@amd.com>
Signed-off-by: default avatarGeorge Shen <george.shen@amd.com>
Signed-off-by: default avatarRoman Li <roman.li@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent d7879340
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1595,6 +1595,7 @@ double dml32_TruncToValidBPP(
	unsigned int   NonDSCBPP0;
	unsigned int   NonDSCBPP1;
	unsigned int   NonDSCBPP2;
	unsigned int   NonDSCBPP3 = BPP_INVALID;

	if (Format == dm_420) {
		NonDSCBPP0 = 12;
@@ -1603,6 +1604,7 @@ double dml32_TruncToValidBPP(
		MinDSCBPP = 6;
		MaxDSCBPP = 1.5 * DSCInputBitPerComponent - 1.0 / 16;
	} else if (Format == dm_444) {
		NonDSCBPP3 = 18;
		NonDSCBPP0 = 24;
		NonDSCBPP1 = 30;
		NonDSCBPP2 = 36;
@@ -1667,6 +1669,8 @@ double dml32_TruncToValidBPP(
				return NonDSCBPP1;
			else if (MaxLinkBPP >= NonDSCBPP0)
				return 16.0;
			else if ((Output == dm_dp2p0 || Output == dm_dp) && NonDSCBPP3 != BPP_INVALID &&  MaxLinkBPP >= NonDSCBPP3)
				return NonDSCBPP3; // Special case to allow 6bpc RGB for DP connections.
			else
				return BPP_INVALID;
		}