From: Wesley Chalmers <wesley.chalm...@amd.com>

[WHY]
We want to make enabling test pattern a part of the
stream update code path. This change is the first step
towards that goal.

Signed-off-by: Wesley Chalmers <wesley.chalm...@amd.com>
Reviewed-by: Aric Cyr <aric....@amd.com>
Reviewed-by: Tony Cheng <tony.ch...@amd.com>
Acked-by: Anson Jacob <anson.ja...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc.c   | 11 +++++++++++
 drivers/gpu/drm/amd/display/dc/dc_stream.h | 12 ++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c 
b/drivers/gpu/drm/amd/display/dc/core/dc.c
index 12cb95c5a1f9..7a0f5057f0ff 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -2394,6 +2394,8 @@ static void copy_stream_update_to_stream(struct dc *dc,
        if (update->dither_option)
                stream->dither_option = *update->dither_option;
 
+       if (update->pending_test_pattern)
+               stream->test_pattern = *update->pending_test_pattern;
        /* update current stream with writeback info */
        if (update->wb_update) {
                int i;
@@ -2489,6 +2491,15 @@ static void commit_planes_do_stream_update(struct dc *dc,
                                }
                        }
 
+                       if (stream_update->pending_test_pattern) {
+                               dc_link_dp_set_test_pattern(stream->link,
+                                       stream->test_pattern.type,
+                                       stream->test_pattern.color_space,
+                                       stream->test_pattern.p_link_settings,
+                                       stream->test_pattern.p_custom_pattern,
+                                       stream->test_pattern.cust_pattern_size);
+                       }
+
                        /* Full fe update*/
                        if (update_type == UPDATE_TYPE_FAST)
                                continue;
diff --git a/drivers/gpu/drm/amd/display/dc/dc_stream.h 
b/drivers/gpu/drm/amd/display/dc/dc_stream.h
index 2bc057e0b447..b0297f07f9de 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_stream.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_stream.h
@@ -130,6 +130,14 @@ union stream_update_flags {
        uint32_t raw;
 };
 
+struct test_pattern {
+       enum dp_test_pattern type;
+       enum dp_test_pattern_color_space color_space;
+       struct link_training_settings const *p_link_settings;
+       unsigned char const *p_custom_pattern;
+       unsigned int cust_pattern_size;
+};
+
 struct dc_stream_state {
        // sink is deprecated, new code should not reference
        // this pointer
@@ -231,6 +239,8 @@ struct dc_stream_state {
 
        uint32_t stream_id;
        bool is_dsc_enabled;
+
+       struct test_pattern test_pattern;
        union stream_update_flags update_flags;
 
        bool has_non_synchronizable_pclk;
@@ -268,6 +278,8 @@ struct dc_stream_update {
        struct dc_dsc_config *dsc_config;
        struct dc_transfer_func *func_shaper;
        struct dc_3dlut *lut3d_func;
+
+       struct test_pattern *pending_test_pattern;
 };
 
 bool dc_is_stream_unchanged(
-- 
2.25.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to