drm/amd/display: differentiate vsc sdp colorimetry use criteria between MST and SST
[Why] We should check MST BU support capability on output port before building vsc info packet. [How] Add a new definition for port and sink capability check. Signed-off-by: Martin Tsai <martin.tsai@amd.com> Reviewed-by: Wenjing Liu <Wenjing.Liu@amd.com> Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:

committed by
Alex Deucher

parent
a19620ea91
commit
c38cc6770f
@@ -34,8 +34,7 @@ struct dc_info_packet;
|
||||
struct mod_vrr_params;
|
||||
|
||||
void mod_build_vsc_infopacket(const struct dc_stream_state *stream,
|
||||
struct dc_info_packet *info_packet,
|
||||
bool *use_vsc_sdp_for_colorimetry);
|
||||
struct dc_info_packet *info_packet);
|
||||
|
||||
void mod_build_hf_vsif_infopacket(const struct dc_stream_state *stream,
|
||||
struct dc_info_packet *info_packet, int ALLMEnabled, int ALLMValue);
|
||||
|
@@ -130,8 +130,7 @@ enum ColorimetryYCCDP {
|
||||
};
|
||||
|
||||
void mod_build_vsc_infopacket(const struct dc_stream_state *stream,
|
||||
struct dc_info_packet *info_packet,
|
||||
bool *use_vsc_sdp_for_colorimetry)
|
||||
struct dc_info_packet *info_packet)
|
||||
{
|
||||
unsigned int vsc_packet_revision = vsc_packet_undefined;
|
||||
unsigned int i;
|
||||
@@ -139,11 +138,6 @@ void mod_build_vsc_infopacket(const struct dc_stream_state *stream,
|
||||
unsigned int colorimetryFormat = 0;
|
||||
bool stereo3dSupport = false;
|
||||
|
||||
/* Initialize first, later if infopacket is valid determine if VSC SDP
|
||||
* should be used to signal colorimetry format and pixel encoding.
|
||||
*/
|
||||
*use_vsc_sdp_for_colorimetry = false;
|
||||
|
||||
if (stream->timing.timing_3d_format != TIMING_3D_FORMAT_NONE && stream->view_format != VIEW_3D_FORMAT_NONE) {
|
||||
vsc_packet_revision = vsc_packet_rev1;
|
||||
stereo3dSupport = true;
|
||||
@@ -153,9 +147,8 @@ void mod_build_vsc_infopacket(const struct dc_stream_state *stream,
|
||||
if (stream->psr_version != 0)
|
||||
vsc_packet_revision = vsc_packet_rev2;
|
||||
|
||||
/* Update to revision 5 for extended colorimetry support for DPCD 1.4+ */
|
||||
if (stream->link->dpcd_caps.dpcd_rev.raw >= 0x14 &&
|
||||
stream->link->dpcd_caps.dprx_feature.bits.VSC_SDP_COLORIMETRY_SUPPORTED)
|
||||
/* Update to revision 5 for extended colorimetry support */
|
||||
if (stream->use_vsc_sdp_for_colorimetry)
|
||||
vsc_packet_revision = vsc_packet_rev5;
|
||||
|
||||
/* VSC packet not needed based on the features
|
||||
@@ -269,13 +262,6 @@ void mod_build_vsc_infopacket(const struct dc_stream_state *stream,
|
||||
|
||||
info_packet->valid = true;
|
||||
|
||||
/* If we are using VSC SDP revision 05h, use this to signal for
|
||||
* colorimetry format and pixel encoding. HW should later be
|
||||
* programmed to set MSA MISC1 bit 6 to indicate ignore
|
||||
* colorimetry format and pixel encoding in the MSA.
|
||||
*/
|
||||
*use_vsc_sdp_for_colorimetry = true;
|
||||
|
||||
/* Set VSC SDP fields for pixel encoding and colorimetry format from DP 1.3 specs
|
||||
* Data Bytes DB 18~16
|
||||
* Bits 3:0 (Colorimetry Format) | Bits 7:4 (Pixel Encoding)
|
||||
|
Reference in New Issue
Block a user