aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/5178-drm-amd-display-Program-csc-matrix-as-part-of-stream.patch
diff options
context:
space:
mode:
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.patch85
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
+