drm/amd/display: Add debug option to force 1-tap chroma subsampling
authorGeorge Shen <george.shen@amd.com>
Wed, 29 Mar 2023 19:33:35 +0000 (15:33 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 7 Feb 2024 17:26:22 +0000 (12:26 -0500)
[Why]
Default driver behaviour is 3-tap subsampling, so we should keep
it the same for test patterns as well. However, it is also useful
to force 1-tap subsampling for testing purposes.

Reviewed-by: Michael Strauss <michael.strauss@amd.com>
Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: George Shen <george.shen@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dc.h
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c

index 10a5f53..2dec250 100644 (file)
@@ -991,6 +991,7 @@ struct dc_debug_options {
        bool disable_timeout;
        bool disable_extblankadj;
        unsigned int static_screen_wait_frames;
+       bool force_chroma_subsampling_1tap;
 };
 
 struct gpu_info_soc_bounding_box_v1_0;
index 0dec576..48a40dc 100644 (file)
@@ -23,6 +23,7 @@
  *
  */
 
+#include "core_types.h"
 #include "dm_services.h"
 #include "dcn10_opp.h"
 #include "reg_helper.h"
@@ -160,6 +161,9 @@ static void opp1_set_pixel_encoding(
        struct dcn10_opp *oppn10,
        const struct clamping_and_pixel_encoding_params *params)
 {
+       bool force_chroma_subsampling_1tap =
+                       oppn10->base.ctx->dc->debug.force_chroma_subsampling_1tap;
+
        switch (params->pixel_encoding) {
 
        case PIXEL_ENCODING_RGB:
@@ -178,6 +182,9 @@ static void opp1_set_pixel_encoding(
        default:
                break;
        }
+
+       if (force_chroma_subsampling_1tap)
+               REG_UPDATE(FMT_CONTROL, FMT_SUBSAMPLING_MODE, 0);
 }
 
 /**