aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3562-drm-amd-display-Expose-dither-setting-functionality-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3562-drm-amd-display-Expose-dither-setting-functionality-.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3562-drm-amd-display-Expose-dither-setting-functionality-.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3562-drm-amd-display-Expose-dither-setting-functionality-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3562-drm-amd-display-Expose-dither-setting-functionality-.patch
new file mode 100644
index 00000000..62aff3dc
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3562-drm-amd-display-Expose-dither-setting-functionality-.patch
@@ -0,0 +1,75 @@
+From f9e34397945de1a5238bf409a9fb192b31ebf39b Mon Sep 17 00:00:00 2001
+From: "Leo (Sunpeng) Li" <sunpeng.li@amd.com>
+Date: Tue, 6 Feb 2018 09:50:49 -0500
+Subject: [PATCH 3562/4131] drm/amd/display: Expose dither setting
+ functionality to Linux
+
+We will need this to disable dither for CRC capture.
+
+Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com>
+Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc.c | 31 ++++++++++++++++++++++++++++++
+ drivers/gpu/drm/amd/display/dc/dc_stream.h | 3 +++
+ 2 files changed, 34 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
+index 11f90dd..3bb23a7 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
+@@ -300,6 +300,37 @@ bool dc_stream_get_crc(struct dc *dc, struct dc_stream_state *stream,
+ return false;
+ }
+
++void dc_stream_set_dither_option(struct dc_stream_state *stream,
++ enum dc_dither_option option)
++{
++ struct bit_depth_reduction_params params;
++ struct dc_link *link = stream->status.link;
++ struct pipe_ctx *pipes = NULL;
++ int i;
++
++ for (i = 0; i < MAX_PIPES; i++) {
++ if (link->dc->current_state->res_ctx.pipe_ctx[i].stream ==
++ stream) {
++ pipes = &link->dc->current_state->res_ctx.pipe_ctx[i];
++ break;
++ }
++ }
++
++ memset(&params, 0, sizeof(params));
++ if (!pipes)
++ return;
++ if (option > DITHER_OPTION_MAX)
++ return;
++
++ stream->dither_option = option;
++
++ resource_build_bit_depth_reduction_params(stream,
++ &params);
++ stream->bit_depth_params = params;
++ pipes->stream_res.opp->funcs->
++ opp_program_bit_depth_reduction(pipes->stream_res.opp, &params);
++}
++
+ void dc_stream_set_static_screen_events(struct dc *dc,
+ struct dc_stream_state **streams,
+ int num_streams,
+diff --git a/drivers/gpu/drm/amd/display/dc/dc_stream.h b/drivers/gpu/drm/amd/display/dc/dc_stream.h
+index 2d2472b..78a2bbe 100644
+--- a/drivers/gpu/drm/amd/display/dc/dc_stream.h
++++ b/drivers/gpu/drm/amd/display/dc/dc_stream.h
+@@ -287,6 +287,9 @@ void dc_stream_set_static_screen_events(struct dc *dc,
+ int num_streams,
+ const struct dc_static_screen_events *events);
+
++void dc_stream_set_dither_option(struct dc_stream_state *stream,
++ enum dc_dither_option option);
++
+
+ bool dc_stream_adjust_vmin_vmax(struct dc *dc,
+ struct dc_stream_state **stream,
+--
+2.7.4
+