diff options
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-.patch | 75 |
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(¶ms, 0, sizeof(params)); ++ if (!pipes) ++ return; ++ if (option > DITHER_OPTION_MAX) ++ return; ++ ++ stream->dither_option = option; ++ ++ resource_build_bit_depth_reduction_params(stream, ++ ¶ms); ++ stream->bit_depth_params = params; ++ pipes->stream_res.opp->funcs-> ++ opp_program_bit_depth_reduction(pipes->stream_res.opp, ¶ms); ++} ++ + 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 + |