Skip to content

Commit f377ea0

Browse files
committed
Revert "drm/amd/display: pause the workload setting in dm"
This reverts commit bc6d54a. The workload profile needs to be in the default state when the dc idle optimizaion state is entered. However, when jobs come in for video or GFX or compute, the profile may be set to a non-default profile resulting in the dc idle optimizations not taking affect and resulting in higher power usage. As such we need to pause the workload profile changes during this transition. When this patch was originally committed, it caused a regression with a Dell U3224KB display, but no other problems were reported at the time. When it was reapplied (this patch) to address increased power usage, it seems to have caused additional regressions. This change seems to have a number of side affects (audio issues, stuttering, etc.). I suspect the pause should only happen when all displays are off or in static screen mode, but I think this call site gets called more often than that which results in idle state entry more often than intended. For now revert. Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4894 Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4717 Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4725 Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4517 Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4806 Cc: Yang Wang <kevinyang.wang@amd.com> Cc: Kenneth Feng <kenneth.feng@amd.com> Cc: Roman Li <Roman.Li@amd.com> Reviewed-by: Yang Wang <kevinyang.wang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit 1412482)
1 parent 095ca81 commit f377ea0

1 file changed

Lines changed: 0 additions & 11 deletions

File tree

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,6 @@ static void amdgpu_dm_crtc_vblank_control_worker(struct work_struct *work)
248248
struct vblank_control_work *vblank_work =
249249
container_of(work, struct vblank_control_work, work);
250250
struct amdgpu_display_manager *dm = vblank_work->dm;
251-
struct amdgpu_device *adev = drm_to_adev(dm->ddev);
252-
int r;
253251

254252
mutex_lock(&dm->dc_lock);
255253

@@ -279,16 +277,7 @@ static void amdgpu_dm_crtc_vblank_control_worker(struct work_struct *work)
279277

280278
if (dm->active_vblank_irq_count == 0) {
281279
dc_post_update_surfaces_to_stream(dm->dc);
282-
283-
r = amdgpu_dpm_pause_power_profile(adev, true);
284-
if (r)
285-
dev_warn(adev->dev, "failed to set default power profile mode\n");
286-
287280
dc_allow_idle_optimizations(dm->dc, true);
288-
289-
r = amdgpu_dpm_pause_power_profile(adev, false);
290-
if (r)
291-
dev_warn(adev->dev, "failed to restore the power profile mode\n");
292281
}
293282

294283
mutex_unlock(&dm->dc_lock);

0 commit comments

Comments
 (0)