From 7086af68fab9a8c21a52134bac8cc5fc4aa49651 Mon Sep 17 00:00:00 2001 From: Alex Hung Date: Wed, 11 Oct 2023 13:18:24 -0600 Subject: [PATCH] Revert "drm/amd/display: Disable DWB frame capture to emulate oneshot" This reverts commit 77a66faaccc0455fe30e326e9a997aec8d0abed4. [WHY & HOW] The writeback series cause a regression in thunderbolt display. Signed-off-by: Alex Hung Reviewed-by: Harry Wentland Signed-off-by: Alex Deucher --- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 14 +--------- .../gpu/drm/amd/display/dc/core/dc_stream.c | 27 ------------------- drivers/gpu/drm/amd/display/dc/dc_stream.h | 4 --- 3 files changed, 1 insertion(+), 44 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 6e0772316b8c..27f27af2a8a5 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -592,20 +592,8 @@ static void dm_crtc_high_irq(void *interrupt_params) list_entry); spin_unlock_irqrestore(&acrtc->wb_conn->job_lock, flags); - if (job) { - unsigned int v_total, refresh_hz; - struct dc_stream_state *stream = acrtc->dm_irq_params.stream; - - v_total = stream->adjust.v_total_max ? - stream->adjust.v_total_max : stream->timing.v_total; - refresh_hz = div_u64((uint64_t) stream->timing.pix_clk_100hz * - 100LL, (v_total * stream->timing.h_total)); - mdelay(1000 / refresh_hz); - + if (job) drm_writeback_signal_completion(acrtc->wb_conn, 0); - dc_stream_fc_disable_writeback(adev->dm.dc, - acrtc->dm_irq_params.stream, 0); - } } else DRM_ERROR("%s: no amdgpu_crtc wb_conn\n", __func__); acrtc->wb_pending = false; diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c index 8a6a2881be41..aae27330cede 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c @@ -489,33 +489,6 @@ bool dc_stream_add_writeback(struct dc *dc, return true; } -bool dc_stream_fc_disable_writeback(struct dc *dc, - struct dc_stream_state *stream, - uint32_t dwb_pipe_inst) -{ - struct dwbc *dwb = dc->res_pool->dwbc[dwb_pipe_inst]; - - if (stream == NULL) { - dm_error("DC: dc_stream is NULL!\n"); - return false; - } - - if (dwb_pipe_inst >= MAX_DWB_PIPES) { - dm_error("DC: writeback pipe is invalid!\n"); - return false; - } - - if (stream->num_wb_info > MAX_DWB_PIPES) { - dm_error("DC: num_wb_info is invalid!\n"); - return false; - } - - if (dwb->funcs->set_fc_enable) - dwb->funcs->set_fc_enable(dwb, DWB_FRAME_CAPTURE_DISABLE); - - return true; -} - bool dc_stream_remove_writeback(struct dc *dc, struct dc_stream_state *stream, uint32_t dwb_pipe_inst) diff --git a/drivers/gpu/drm/amd/display/dc/dc_stream.h b/drivers/gpu/drm/amd/display/dc/dc_stream.h index 4ac48c346a33..e61eea6db29c 100644 --- a/drivers/gpu/drm/amd/display/dc/dc_stream.h +++ b/drivers/gpu/drm/amd/display/dc/dc_stream.h @@ -454,10 +454,6 @@ bool dc_stream_add_writeback(struct dc *dc, struct dc_stream_state *stream, struct dc_writeback_info *wb_info); -bool dc_stream_fc_disable_writeback(struct dc *dc, - struct dc_stream_state *stream, - uint32_t dwb_pipe_inst); - bool dc_stream_remove_writeback(struct dc *dc, struct dc_stream_state *stream, uint32_t dwb_pipe_inst); -- 2.20.1