diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5178-drm-amd-display-Program-csc-matrix-as-part-of-stream.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/5178-drm-amd-display-Program-csc-matrix-as-part-of-stream.patch | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5178-drm-amd-display-Program-csc-matrix-as-part-of-stream.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5178-drm-amd-display-Program-csc-matrix-as-part-of-stream.patch new file mode 100644 index 00000000..1dc0d962 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5178-drm-amd-display-Program-csc-matrix-as-part-of-stream.patch @@ -0,0 +1,85 @@ +From 4a753992838c0e896320a503ebc6f841187d5f8d Mon Sep 17 00:00:00 2001 +From: SivapiriyanKumarasamy <sivapiriyan.kumarasamy@amd.com> +Date: Thu, 26 Jul 2018 14:58:35 -0400 +Subject: [PATCH 5178/5725] drm/amd/display: Program csc matrix as part of + stream update + +Add csc_transform struct to dc_stream_update, and program if set when +updating streams + +Signed-off-by: SivapiriyanKumarasamy <sivapiriyan.kumarasamy@amd.com> +Reviewed-by: Anthony Koo <Anthony.Koo@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc.c | 24 ++++++++++++++++++++++++ + drivers/gpu/drm/amd/display/dc/dc_stream.h | 4 ++++ + 2 files changed, 28 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c +index 152c7dd..18632db 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c +@@ -379,6 +379,27 @@ bool dc_stream_set_gamut_remap(struct dc *dc, const struct dc_stream_state *stre + return ret; + } + ++bool dc_stream_program_csc_matrix(struct dc *dc, struct dc_stream_state *stream) ++{ ++ int i = 0; ++ bool ret = false; ++ struct pipe_ctx *pipes; ++ ++ for (i = 0; i < MAX_PIPES; i++) { ++ if (dc->current_state->res_ctx.pipe_ctx[i].stream ++ == stream) { ++ ++ pipes = &dc->current_state->res_ctx.pipe_ctx[i]; ++ dc->hwss.program_csc_matrix(pipes, ++ stream->output_color_space, ++ stream->csc_color_matrix.matrix); ++ ret = true; ++ } ++ } ++ ++ return ret; ++} ++ + void dc_stream_set_static_screen_events(struct dc *dc, + struct dc_stream_state **streams, + int num_streams, +@@ -1413,6 +1434,9 @@ static void commit_planes_do_stream_update(struct dc *dc, + if (stream_update->gamut_remap) + dc_stream_set_gamut_remap(dc, stream); + ++ if (stream_update->output_csc_transform) ++ dc_stream_program_csc_matrix(dc, stream); ++ + /* 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 c531d80..069c2fc 100644 +--- a/drivers/gpu/drm/amd/display/dc/dc_stream.h ++++ b/drivers/gpu/drm/amd/display/dc/dc_stream.h +@@ -137,6 +137,7 @@ struct dc_stream_update { + struct colorspace_transform *gamut_remap; + enum dc_color_space *output_color_space; + ++ struct dc_csc_transform *output_csc_transform; + + }; + +@@ -306,6 +307,9 @@ void dc_stream_set_dither_option(struct dc_stream_state *stream, + bool dc_stream_set_gamut_remap(struct dc *dc, + const struct dc_stream_state *stream); + ++bool dc_stream_program_csc_matrix(struct dc *dc, ++ struct dc_stream_state *stream); ++ + bool dc_stream_get_crtc_position(struct dc *dc, + struct dc_stream_state **stream, + int num_streams, +-- +2.7.4 + |