struct dmcu *dmcu = core_dc->res_pool->dmcu;
 
                        stream->psr_version = dmcu->dmcu_version.psr_version;
-                       mod_build_vsc_infopacket(stream, &stream->vsc_infopacket);
+                       mod_build_vsc_infopacket(stream,
+                                       &stream->vsc_infopacket,
+                                       &stream->use_vsc_sdp_for_colorimetry);
                }
        }
 finish:
 
                        pipe_ctx->stream_res.stream_enc,
                        &stream->timing,
                        stream->output_color_space,
+                       stream->use_vsc_sdp_for_colorimetry,
                        stream->link->dpcd_caps.dprx_feature.bits.SST_SPLIT_SDP_CAP);
 
        if (dc_is_hdmi_tmds_signal(pipe_ctx->stream->signal))
 
 
        enum view_3d_format view_format;
 
+       bool use_vsc_sdp_for_colorimetry;
        bool ignore_msa_timing_param;
        bool converter_disable_audio;
        uint8_t qs_bit;
 
        struct stream_encoder *enc,
        struct dc_crtc_timing *crtc_timing,
        enum dc_color_space output_color_space,
+       bool use_vsc_sdp_for_colorimetry,
        uint32_t enable_sdp_splitting)
 {
 #if defined(CONFIG_DRM_AMD_DC_DCN1_0)
 
        struct stream_encoder *enc,
        struct dc_crtc_timing *crtc_timing,
        enum dc_color_space output_color_space,
+       bool use_vsc_sdp_for_colorimetry,
        uint32_t enable_sdp_splitting)
 {
        uint32_t h_active_start;
         * Pixel Encoding/Colorimetry Format and that a Sink device shall ignore MISC1, bit 7,
         * and MISC0, bits 7:1 (MISC1, bit 7, and MISC0, bits 7:1, become "don't care").
         */
-       if ((hw_crtc_timing.pixel_encoding == PIXEL_ENCODING_YCBCR420) ||
-                       (output_color_space == COLOR_SPACE_2020_YCBCR) ||
-                       (output_color_space == COLOR_SPACE_2020_RGB_FULLRANGE) ||
-                       (output_color_space == COLOR_SPACE_2020_RGB_LIMITEDRANGE))
+       if (use_vsc_sdp_for_colorimetry)
                misc1 = misc1 | 0x40;
        else
                misc1 = misc1 & ~0x40;
 
        struct stream_encoder *enc,
        struct dc_crtc_timing *crtc_timing,
        enum dc_color_space output_color_space,
+       bool use_vsc_sdp_for_colorimetry,
        uint32_t enable_sdp_splitting);
 
 void enc1_stream_encoder_hdmi_set_stream_attribute(
 
        struct stream_encoder *enc,
        struct dc_crtc_timing *crtc_timing,
        enum dc_color_space output_color_space,
+       bool use_vsc_sdp_for_colorimetry,
        uint32_t enable_sdp_splitting)
 {
        struct dcn10_stream_encoder *enc1 = DCN10STRENC_FROM_STRENC(enc);
 
-       enc1_stream_encoder_dp_set_stream_attribute(enc, crtc_timing, output_color_space, enable_sdp_splitting);
+       enc1_stream_encoder_dp_set_stream_attribute(enc,
+                       crtc_timing,
+                       output_color_space,
+                       use_vsc_sdp_for_colorimetry,
+                       enable_sdp_splitting);
 
        REG_UPDATE(DP_SEC_FRAMING4,
                DP_SST_SDP_SPLITTING, enable_sdp_splitting);
 
        struct stream_encoder *enc,
        struct dc_crtc_timing *crtc_timing,
        enum dc_color_space output_color_space,
+       bool use_vsc_sdp_for_colorimetry,
        uint32_t enable_sdp_splitting);
 
 void enc2_stream_encoder_dp_unblank(
 
                struct stream_encoder *enc,
                struct dc_crtc_timing *crtc_timing,
                enum dc_color_space output_color_space,
+               bool use_vsc_sdp_for_colorimetry,
                uint32_t enable_sdp_splitting);
 
        void (*hdmi_set_stream_attribute)(
 
        struct stream_encoder *enc,
        struct dc_crtc_timing *crtc_timing,
        enum dc_color_space output_color_space,
+       bool use_vsc_sdp_for_colorimetry,
        uint32_t enable_sdp_splitting) {}
 
 static void virtual_stream_encoder_hdmi_set_stream_attribute(
 
 #ifndef MOD_INFO_PACKET_H_
 #define MOD_INFO_PACKET_H_
 
+#include "dm_services.h"
 #include "mod_shared.h"
 //Forward Declarations
 struct dc_stream_state;
 struct mod_vrr_params;
 
 void mod_build_vsc_infopacket(const struct dc_stream_state *stream,
-               struct dc_info_packet *info_packet);
+               struct dc_info_packet *info_packet,
+               bool *use_vsc_sdp_for_colorimetry);
 
 void mod_build_hf_vsif_infopacket(const struct dc_stream_state *stream,
                struct dc_info_packet *info_packet, int ALLMEnabled, int ALLMValue);
 
 #include "mod_freesync.h"
 #include "dc.h"
 
+enum vsc_packet_revision {
+       vsc_packet_undefined = 0,
+       //01h = VSC SDP supports only 3D stereo.
+       vsc_packet_rev1 = 1,
+       //02h = 3D stereo + PSR.
+       vsc_packet_rev2 = 2,
+       //03h = 3D stereo + PSR2.
+       vsc_packet_rev3 = 3,
+       //04h = 3D stereo + PSR/PSR2 + Y-coordinate.
+       vsc_packet_rev4 = 4,
+       //05h = 3D stereo + PSR/PSR2 + Y-coordinate + Pixel Encoding/Colorimetry Format
+       vsc_packet_rev5 = 5,
+};
+
 #define HDMI_INFOFRAME_TYPE_VENDOR 0x81
 #define HF_VSIF_VERSION 1
 
 };
 
 void mod_build_vsc_infopacket(const struct dc_stream_state *stream,
-               struct dc_info_packet *info_packet)
+               struct dc_info_packet *info_packet,
+               bool *use_vsc_sdp_for_colorimetry)
 {
-       unsigned int vscPacketRevision = 0;
+       unsigned int vsc_packet_revision = vsc_packet_undefined;
        unsigned int i;
        unsigned int pixelEncoding = 0;
        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) {
-               vscPacketRevision = 1;
+               vsc_packet_revision = vsc_packet_rev1;
                stereo3dSupport = true;
        }
 
        /*VSC packet set to 2 when DP revision >= 1.2*/
        if (stream->psr_version != 0)
-               vscPacketRevision = 2;
+               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)
-               vscPacketRevision = 5;
+               vsc_packet_revision = vsc_packet_rev5;
 
        /* VSC packet not needed based on the features
         * supported by this DP display
         */
-       if (vscPacketRevision == 0)
+       if (vsc_packet_revision == vsc_packet_undefined)
                return;
 
-       if (vscPacketRevision == 0x2) {
+       if (vsc_packet_revision == vsc_packet_rev2) {
                /* Secondary-data Packet ID = 0*/
                info_packet->hb0 = 0x00;
                /* 07h - Packet Type Value indicating Video
                info_packet->valid = true;
        }
 
-       if (vscPacketRevision == 0x1) {
+       if (vsc_packet_revision == vsc_packet_rev1) {
 
                info_packet->hb0 = 0x00;        // Secondary-data Packet ID = 0
                info_packet->hb1 = 0x07;        // 07h = Packet Type Value indicating Video Stream Configuration packet
         *   the Pixel Encoding/Colorimetry Format and that a Sink device must ignore MISC1, bit 7, and
         *   MISC0, bits 7:1 (MISC1, bit 7. and MISC0, bits 7:1 become "don't care").)
         */
-       if (vscPacketRevision == 0x5) {
+       if (vsc_packet_revision == vsc_packet_rev5) {
                /* Secondary-data Packet ID = 0 */
                info_packet->hb0 = 0x00;
                /* 07h - Packet Type Value indicating Video Stream Configuration packet */
 
                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)
                 */
                info_packet->sb[18] = 0;
        }
-
 }
 
 /**