From: George Shen <[email protected]>

[Why]
Dynamic expansion is not needed when outputting 12bpc test patterns.

[How]
Add a debug flag to control disabling dynamic expansion in the case
of 12bpc test patterns.

Reviewed-by: Michael Strauss <[email protected]>
Signed-off-by: George Shen <[email protected]>
Signed-off-by: George Zhang <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/dc.h            |  1 +
 .../drm/amd/display/dc/opp/dcn20/dcn20_opp.c   | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dc/dc.h 
b/drivers/gpu/drm/amd/display/dc/dc.h
index b21fdea5fca3..c2a1f75ae9ae 100644
--- a/drivers/gpu/drm/amd/display/dc/dc.h
+++ b/drivers/gpu/drm/amd/display/dc/dc.h
@@ -1288,6 +1288,7 @@ struct dc_debug_options {
        unsigned int force_odm2to1_for_edp_pixclk_mhz;
        bool enable_replay_esd_recovery;
        uint8_t iommu_mismatch_temp_wka;
+       bool disable_dynamic_expansion_for_test_pattern;
 };


diff --git a/drivers/gpu/drm/amd/display/dc/opp/dcn20/dcn20_opp.c 
b/drivers/gpu/drm/amd/display/dc/opp/dcn20/dcn20_opp.c
index 50b6973ef123..881b8da656b2 100644
--- a/drivers/gpu/drm/amd/display/dc/opp/dcn20/dcn20_opp.c
+++ b/drivers/gpu/drm/amd/display/dc/opp/dcn20/dcn20_opp.c
@@ -89,6 +89,24 @@ void opp2_set_disp_pattern_generator(
        break;
        }

+       if (opp->ctx->dc->debug.disable_dynamic_expansion_for_test_pattern) {
+               switch (test_pattern) {
+               case CONTROLLER_DP_TEST_PATTERN_COLORSQUARES:
+               case CONTROLLER_DP_TEST_PATTERN_COLORSQUARES_CEA:
+               case CONTROLLER_DP_TEST_PATTERN_VERTICALBARS:
+               case CONTROLLER_DP_TEST_PATTERN_HORIZONTALBARS:
+               case CONTROLLER_DP_TEST_PATTERN_COLORRAMP:
+                       if (color_depth == COLOR_DEPTH_121212)
+                               REG_UPDATE(FMT_DYNAMIC_EXP_CNTL, 
FMT_DYNAMIC_EXP_EN, 0);
+               break;
+               case CONTROLLER_DP_TEST_PATTERN_VIDEOMODE:
+                       REG_UPDATE(FMT_DYNAMIC_EXP_CNTL, FMT_DYNAMIC_EXP_EN, 1);
+               break;
+               default:
+               break;
+               }
+       }
+
        /* set DPG dimentions */
        REG_SET_2(DPG_DIMENSIONS, 0,
                DPG_ACTIVE_WIDTH, width,
--
2.54.0

Reply via email to