drm/amd/display: properly turn autocal off
authorDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Wed, 4 Jul 2018 15:31:40 +0000 (11:31 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 13 Jul 2018 19:52:33 +0000 (14:52 -0500)
[why]
Currently we do not turn off autocal when scaling is in bypass.
In case vbios enalbes auto scale and our first mode set is a non-scaled
mode we have autocal on causing screen corruption.

[how]
moves turning autocal off to be first thing done during scaler setup

Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@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/dcn10/dcn10_dpp_dscl.c

index f862fd148ccaff5190597a9fc34118299c57122e..f0cc97518c499fc3b58ce06f61e5a0d25e199795 100644 (file)
@@ -655,6 +655,12 @@ void dpp1_dscl_set_scaler_manual_scale(
 
        dpp->scl_data = *scl_data;
 
+       /* Autocal off */
+       REG_SET_3(DSCL_AUTOCAL, 0,
+               AUTOCAL_MODE, AUTOCAL_MODE_OFF,
+               AUTOCAL_NUM_PIPE, 0,
+               AUTOCAL_PIPE_ID, 0);
+
        /* Recout */
        dpp1_dscl_set_recout(dpp, &scl_data->recout);
 
@@ -678,12 +684,6 @@ void dpp1_dscl_set_scaler_manual_scale(
        if (dscl_mode == DSCL_MODE_SCALING_444_BYPASS)
                return;
 
-       /* Autocal off */
-       REG_SET_3(DSCL_AUTOCAL, 0,
-               AUTOCAL_MODE, AUTOCAL_MODE_OFF,
-               AUTOCAL_NUM_PIPE, 0,
-               AUTOCAL_PIPE_ID, 0);
-
        /* Black offsets */
        if (ycbcr)
                REG_SET_2(SCL_BLACK_OFFSET, 0,