]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/amd/display: fix default dithering
authorTony Cheng <tony.cheng@amd.com>
Fri, 1 Sep 2017 20:14:01 +0000 (16:14 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 26 Sep 2017 22:17:31 +0000 (18:17 -0400)
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
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c

index ab6ad946231e941eedbfcd108eeb016d84693060..d5320f7162b43fc5bca0025262de8c219df0cd90 100644 (file)
@@ -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,
                                &params);
        stream->bit_depth_params = params;
index fbf7747424a90a3c30ac0d7c12b4040d3ab5b352..ce721b77c1bc1b7a2135a32ef12f15db2105e107 100644 (file)
@@ -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;
 
index 47e8b582445ea3a20fafa549c0366a7aa5562943..b36220bc619d3506b02630c935b2033f6ad304b0 100644 (file)
@@ -1104,15 +1104,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,