diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2365-drm-amd-display-fix-default-dithering.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2365-drm-amd-display-fix-default-dithering.patch | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2365-drm-amd-display-fix-default-dithering.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2365-drm-amd-display-fix-default-dithering.patch new file mode 100644 index 00000000..fb094e1f --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2365-drm-amd-display-fix-default-dithering.patch @@ -0,0 +1,105 @@ +From 9ccb564ea3ea2a2d4d8a537683455d54bcdbde7f Mon Sep 17 00:00:00 2001 +From: Tony Cheng <tony.cheng@amd.com> +Date: Fri, 1 Sep 2017 16:14:01 -0400 +Subject: [PATCH 2365/4131] drm/amd/display: fix default dithering + +bug: default is mapped to no dithering. + +default to spatial dithering based on color depth + +Signed-off-by: Tony Cheng <tony.cheng@amd.com> +Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> +Acked-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 | 20 +++----------------- + drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 16 ++++++++++++++++ + .../drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 14 +++++--------- + 3 files changed, 24 insertions(+), 26 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c +index afc8aac..66857b6 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c +@@ -341,23 +341,9 @@ void set_dither_option(struct dc_stream_state *stream, + return; + if (option > DITHER_OPTION_MAX) + return; +- if (option == DITHER_OPTION_DEFAULT) { +- switch (stream->timing.display_color_depth) { +- case COLOR_DEPTH_666: +- stream->dither_option = DITHER_OPTION_SPATIAL6; +- break; +- case COLOR_DEPTH_888: +- stream->dither_option = DITHER_OPTION_SPATIAL8; +- break; +- case COLOR_DEPTH_101010: +- stream->dither_option = DITHER_OPTION_SPATIAL10; +- break; +- default: +- option = DITHER_OPTION_DISABLE; +- } +- } else { +- stream->dither_option = option; +- } ++ ++ stream->dither_option = option; ++ + resource_build_bit_depth_reduction_params(stream, + ¶ms); + stream->bit_depth_params = params; +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +index 8e60e83..3eba2e5 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +@@ -2607,6 +2607,22 @@ void resource_build_bit_depth_reduction_params(struct dc_stream_state *stream, + + memset(fmt_bit_depth, 0, sizeof(*fmt_bit_depth)); + ++ if (option == DITHER_OPTION_DEFAULT) { ++ switch (stream->timing.display_color_depth) { ++ case COLOR_DEPTH_666: ++ option = DITHER_OPTION_SPATIAL6; ++ break; ++ case COLOR_DEPTH_888: ++ option = DITHER_OPTION_SPATIAL8; ++ break; ++ case COLOR_DEPTH_101010: ++ option = DITHER_OPTION_SPATIAL10; ++ break; ++ default: ++ option = DITHER_OPTION_DISABLE; ++ } ++ } ++ + if (option == DITHER_OPTION_DISABLE) + return; + +diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c +index 4c4cede..e5e28cd 100644 +--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c ++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c +@@ -1099,15 +1099,11 @@ static enum dc_status apply_single_controller_ctx_to_hw( + stream->timing.timing_3d_format != TIMING_3D_FORMAT_NONE); + + +-/*vbios crtc_source_selection and encoder_setup will override fmt_C*/ +- if (pipe_ctx->stream->signal != SIGNAL_TYPE_EDP && +- pipe_ctx->stream->signal != SIGNAL_TYPE_LVDS) { +- /*for embedded panel, don't override VBIOS's setting*/ +- pipe_ctx->stream_res.opp->funcs->opp_program_fmt( +- pipe_ctx->stream_res.opp, +- &stream->bit_depth_params, +- &stream->clamping); +- } ++ pipe_ctx->stream_res.opp->funcs->opp_program_fmt( ++ pipe_ctx->stream_res.opp, ++ &stream->bit_depth_params, ++ &stream->clamping); ++ + if (dc_is_dp_signal(pipe_ctx->stream->signal)) + pipe_ctx->stream_res.stream_enc->funcs->dp_set_stream_attribute( + pipe_ctx->stream_res.stream_enc, +-- +2.7.4 + |