drm/amd/display: Revert HUBP blank behaviour for now
authorJoshua Aberback <joshua.aberback@amd.com>
Wed, 21 Oct 2020 22:44:51 +0000 (18:44 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 2 Nov 2020 20:31:57 +0000 (15:31 -0500)
[Why]
Commit "Blank HUBP during pixel data blank for DCN30 v2"
modifies HW behaviour during blank, which might have OS
dependencies. We need to assess the impact on amdgpu_dm
and only re-enable HUBP blanking when all necessary
changes are understood.

[How]
 - revert functional changes
 - leave architectural changes intact

Signed-off-by: Joshua Aberback <joshua.aberback@amd.com>
Reviewed-by: Jun Lei <Jun.Lei@amd.com>
Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c

index 25dc50f..e76d6ab 100644 (file)
@@ -824,29 +824,6 @@ void dcn30_set_disp_pattern_generator(const struct dc *dc,
                const struct tg_color *solid_color,
                int width, int height, int offset)
 {
-       struct stream_resource *stream_res = &pipe_ctx->stream_res;
-       struct pipe_ctx *mpcc_pipe;
-
-       if (test_pattern != CONTROLLER_DP_TEST_PATTERN_VIDEOMODE) {
-               /* turning on DPG */
-               stream_res->opp->funcs->opp_set_disp_pattern_generator(stream_res->opp, test_pattern, color_space,
-                               color_depth, solid_color, width, height, 0);
-
-               /* wait for the next frame when enabling DPG */
-               if (stream_res->tg->funcs->is_tg_enabled(stream_res->tg))
-                       dc->hwseq->funcs.wait_for_blank_complete(stream_res->opp);
-
-               /* Blank HUBP to allow p-state during blank on all timings */
-               pipe_ctx->plane_res.hubp->funcs->set_blank(pipe_ctx->plane_res.hubp, true);
-               for (mpcc_pipe = pipe_ctx->bottom_pipe; mpcc_pipe; mpcc_pipe = mpcc_pipe->bottom_pipe)
-                       mpcc_pipe->plane_res.hubp->funcs->set_blank(mpcc_pipe->plane_res.hubp, true);
-       } else {
-               /* turning off DPG */
-               pipe_ctx->plane_res.hubp->funcs->set_blank(pipe_ctx->plane_res.hubp, false);
-               for (mpcc_pipe = pipe_ctx->bottom_pipe; mpcc_pipe; mpcc_pipe = mpcc_pipe->bottom_pipe)
-                       mpcc_pipe->plane_res.hubp->funcs->set_blank(mpcc_pipe->plane_res.hubp, false);
-
-               stream_res->opp->funcs->opp_set_disp_pattern_generator(stream_res->opp, test_pattern, color_space,
-                               color_depth, solid_color, width, height, 0);
-       }
+       pipe_ctx->stream_res.opp->funcs->opp_set_disp_pattern_generator(pipe_ctx->stream_res.opp, test_pattern,
+                       color_space, color_depth, solid_color, width, height, 0);
 }
index 3f83bcb..0f66869 100644 (file)
@@ -5558,7 +5558,7 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
                }
        }
 
-       if (mode_lib->vba.MinActiveDRAMClockChangeMargin > 0) {
+       if (mode_lib->vba.MinActiveDRAMClockChangeMargin > 0 && PrefetchMode == 0) {
                *DRAMClockChangeSupport = dm_dram_clock_change_vactive;
        } else if (((mode_lib->vba.SynchronizedVBlank == true || mode_lib->vba.TotalNumberOfActiveOTG == 1 || SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank > 0) && PrefetchMode == 0)) {
                *DRAMClockChangeSupport = dm_dram_clock_change_vblank;