Skip to content

Commit 60f71f0

Browse files
superm1alexdeucher
authored andcommitted
drm/amd/display: Drop dm_prepare_suspend() and dm_complete()
[Why] dm_prepare_suspend() was added in commit 50e0bae ("drm/amd/display: Add and use new dm_prepare_suspend() callback") to allow display to turn off earlier in the suspend sequence. This caused a regression that HDMI audio sometimes didn't work properly after resume unless audio was playing during suspend. [How] Drop dm_prepare_suspend() callback. All code in it will still run during dm_suspend(). Also drop unnecessary dm_complete() callback. dm_complete() was used for failed prepare and also for any case of successful resume. The code in it already runs in dm_resume(). This change will introduce more time that the display is turned on during suspend sequence. The compositor can turn it off sooner if desired. Cc: Harry Wentland <harry.wentland@amd.com> Reported-by: Przemysław Kopa <prz.kopa@gmail.com> Closes: https://lore.kernel.org/amd-gfx/1cea0d56-7739-4ad9-bf8e-c9330faea2bb@kernel.org/T/#m383d9c08397043a271b36c32b64bb80e524e4b0f Reported-by: Kalvin <hikaph+oss@gmail.com> Closes: alsa-project/alsa-lib#465 Closes: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4809 Fixes: 50e0bae ("drm/amd/display: Add and use new dm_prepare_suspend() callback") Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit 2fd653b) Cc: stable@vger.kernel.org
1 parent 70f0b05 commit 60f71f0

1 file changed

Lines changed: 0 additions & 21 deletions

File tree

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

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3127,25 +3127,6 @@ static void dm_destroy_cached_state(struct amdgpu_device *adev)
31273127
dm->cached_state = NULL;
31283128
}
31293129

3130-
static void dm_complete(struct amdgpu_ip_block *ip_block)
3131-
{
3132-
struct amdgpu_device *adev = ip_block->adev;
3133-
3134-
dm_destroy_cached_state(adev);
3135-
}
3136-
3137-
static int dm_prepare_suspend(struct amdgpu_ip_block *ip_block)
3138-
{
3139-
struct amdgpu_device *adev = ip_block->adev;
3140-
3141-
if (amdgpu_in_reset(adev))
3142-
return 0;
3143-
3144-
WARN_ON(adev->dm.cached_state);
3145-
3146-
return dm_cache_state(adev);
3147-
}
3148-
31493130
static int dm_suspend(struct amdgpu_ip_block *ip_block)
31503131
{
31513132
struct amdgpu_device *adev = ip_block->adev;
@@ -3571,10 +3552,8 @@ static const struct amd_ip_funcs amdgpu_dm_funcs = {
35713552
.early_fini = amdgpu_dm_early_fini,
35723553
.hw_init = dm_hw_init,
35733554
.hw_fini = dm_hw_fini,
3574-
.prepare_suspend = dm_prepare_suspend,
35753555
.suspend = dm_suspend,
35763556
.resume = dm_resume,
3577-
.complete = dm_complete,
35783557
.is_idle = dm_is_idle,
35793558
.wait_for_idle = dm_wait_for_idle,
35803559
.check_soft_reset = dm_check_soft_reset,

0 commit comments

Comments
 (0)