Revert "drm/amd/display: Disable DWB frame capture to emulate oneshot"
authorAlex Hung <alex.hung@amd.com>
Wed, 11 Oct 2023 19:18:24 +0000 (13:18 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 13 Oct 2023 15:04:30 +0000 (11:04 -0400)
This reverts commit 77a66faaccc0455fe30e326e9a997aec8d0abed4.

[WHY & HOW]
The writeback series cause a regression in thunderbolt display.

Signed-off-by: Alex Hung <alex.hung@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
drivers/gpu/drm/amd/display/dc/dc_stream.h

index 6e07723..27f27af 100644 (file)
@@ -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;
index 8a6a288..aae2733 100644 (file)
@@ -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)
index 4ac48c3..e61eea6 100644 (file)
@@ -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);