}
 }
 
+void dcn10_link_encoder_enable_tmds_output_with_clk_pattern_wa(
+       struct link_encoder *enc,
+       enum clock_source_id clock_source,
+       enum dc_color_depth color_depth,
+       enum signal_type signal,
+       uint32_t pixel_clock)
+{
+       struct dcn10_link_encoder *enc10 = TO_DCN10_LINK_ENC(enc);
+
+       dcn10_link_encoder_enable_tmds_output(
+               enc, clock_source, color_depth, signal, pixel_clock);
+
+       REG_UPDATE(DIG_CLOCK_PATTERN, DIG_CLOCK_PATTERN, 0x1F);
+}
+
 /* enables DP PHY output */
 void dcn10_link_encoder_enable_dp_output(
        struct link_encoder *enc,
 
 #define LE_DCN_COMMON_REG_LIST(id) \
        SRI(DIG_BE_CNTL, DIG, id), \
        SRI(DIG_BE_EN_CNTL, DIG, id), \
+       SRI(DIG_CLOCK_PATTERN, DIG, id), \
        SRI(TMDS_CTL_BITS, DIG, id), \
        SRI(DP_CONFIG, DP, id), \
        SRI(DP_DPHY_CNTL, DP, id), \
 struct dcn10_link_enc_registers {
        uint32_t DIG_BE_CNTL;
        uint32_t DIG_BE_EN_CNTL;
+       uint32_t DIG_CLOCK_PATTERN;
        uint32_t DP_CONFIG;
        uint32_t DP_DPHY_CNTL;
        uint32_t DP_DPHY_INTERNAL_CTRL;
        LE_SF(DIG0_DIG_BE_CNTL, DIG_HPD_SELECT, mask_sh),\
        LE_SF(DIG0_DIG_BE_CNTL, DIG_MODE, mask_sh),\
        LE_SF(DIG0_DIG_BE_CNTL, DIG_FE_SOURCE_SELECT, mask_sh),\
+       LE_SF(DIG0_DIG_CLOCK_PATTERN, DIG_CLOCK_PATTERN, mask_sh),\
        LE_SF(DIG0_TMDS_CTL_BITS, TMDS_CTL0, mask_sh), \
        LE_SF(DP0_DP_DPHY_CNTL, DPHY_BYPASS, mask_sh),\
        LE_SF(DP0_DP_DPHY_CNTL, DPHY_ATEST_SEL_LANE0, mask_sh),\
        type DIG_HPD_SELECT;\
        type DIG_MODE;\
        type DIG_FE_SOURCE_SELECT;\
+       type DIG_CLOCK_PATTERN;\
        type DPHY_BYPASS;\
        type DPHY_ATEST_SEL_LANE0;\
        type DPHY_ATEST_SEL_LANE1;\
        enum signal_type signal,
        uint32_t pixel_clock);
 
+void dcn10_link_encoder_enable_tmds_output_with_clk_pattern_wa(
+       struct link_encoder *enc,
+       enum clock_source_id clock_source,
+       enum dc_color_depth color_depth,
+       enum signal_type signal,
+       uint32_t pixel_clock);
+
 /* enables DP PHY output */
 void dcn10_link_encoder_enable_dp_output(
        struct link_encoder *enc,
 
                dcn10_link_encoder_validate_output_with_stream,
        .hw_init = enc2_hw_init,
        .setup = dcn10_link_encoder_setup,
-       .enable_tmds_output = dcn10_link_encoder_enable_tmds_output,
+       .enable_tmds_output = dcn10_link_encoder_enable_tmds_output_with_clk_pattern_wa,
        .enable_dp_output = dcn20_link_encoder_enable_dp_output,
        .enable_dp_mst_output = dcn10_link_encoder_enable_dp_mst_output,
        .disable_output = dcn10_link_encoder_disable_output,