mirror-linux/drivers/gpu/drm
Kai-Heng Feng 887f75cfd0 drm/amdgpu: Ensure HDA function is suspended before ASIC reset
DP/HDMI audio on AMD PRO VII stops working after S3:
[  149.450391] amdgpu 0000:63:00.0: amdgpu: MODE1 reset
[  149.450395] amdgpu 0000:63:00.0: amdgpu: GPU mode1 reset
[  149.450494] amdgpu 0000:63:00.0: amdgpu: GPU psp mode1 reset
[  149.983693] snd_hda_intel 0000:63:00.1: refused to change power state from D0 to D3hot
[  150.003439] amdgpu 0000:63:00.0: refused to change power state from D0 to D3hot
...
[  155.432975] snd_hda_intel 0000:63:00.1: CORB reset timeout#2, CORBRP = 65535

The offending commit is daf8de0874 ("drm/amdgpu: always reset the asic in
suspend (v2)"). Commit 34452ac303 ("drm/amdgpu: don't use BACO for
reset in S3 ") doesn't help, so the issue is something different.

Assuming that to make HDA resume to D0 fully realized, it needs to be
successfully put to D3 first. And this guesswork proves working, by
moving amdgpu_asic_reset() to noirq callback, so it's called after HDA
function is in D3.

Fixes: daf8de0874 ("drm/amdgpu: always reset the asic in suspend (v2)")
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
2022-04-13 22:21:58 -04:00
..
amd drm/amdgpu: Ensure HDA function is suspended before ASIC reset 2022-04-13 22:21:58 -04:00
arm Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
armada Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
aspeed drm/aspeed: Add AST2600 chip support 2022-03-03 09:08:35 +10:30
ast drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
atmel-hlcdc
bridge drm for 5.18-rc1 2022-03-24 16:19:43 -07:00
dp drm-misc-next for v5.18: 2022-03-04 13:41:57 +10:00
etnaviv Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
exynos Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
fsl-dcu
gma500
gud dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
hisilicon Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
hyperv drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
i2c
i810
i915 drm fixes for 5.18-rc1 2022-03-25 14:57:47 -07:00
imx drm/imx: dw_hdmi-imx: Fix bailout in error cases of probe 2022-04-04 09:37:42 +02:00
ingenic Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
kmb drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
lib drm/selftests: add drm buddy alloc range testcase 2022-02-23 10:44:43 +01:00
lima drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
mcde Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
mediatek Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
meson Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
mga
mgag200 drm for 5.18-rc1 2022-03-24 16:19:43 -07:00
msm Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
mxsfb drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
nouveau Merge drm/drm-fixes into drm-misc-fixes 2022-04-05 11:37:03 +02:00
omapdrm Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
panel * drm/panel/ili9341: Fix optional regulator handling 2022-04-07 10:22:43 +10:00
panfrost drm-misc-next for v5.18: 2022-03-04 13:41:57 +10:00
pl111
qxl drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
r128
radeon drm/radeon: Use drm_mode_copy() 2022-03-15 15:01:12 -04:00
rcar-du drm-misc-next for v5.18: 2022-03-04 13:41:57 +10:00
rockchip Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
savage
scheduler drm/sched: Add device pointer to drm_gpu_scheduler 2022-02-23 10:04:14 +01:00
selftests drm/selftest: plane_helper: Put test structures in static storage 2022-03-21 11:05:05 +01:00
shmobile
sis
solomon drm-misc-next for v5.18: 2022-03-04 13:41:57 +10:00
sprd Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
sti Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
stm drm/stm: ltdc: add support for CRC hashing feature 2022-02-25 14:14:28 +01:00
sun4i Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
tdfx
tegra drm-misc-next for v5.18: 2022-03-04 13:41:57 +10:00
tidss
tilcdc
tiny drm for 5.18-rc1 2022-03-24 16:19:43 -07:00
ttm drm/ttm: Fix a kernel oops due to an invalid read 2022-03-21 10:46:57 +01:00
tve200
udl dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
v3d drm/v3d: centralize error handling when init scheduler fails 2022-03-01 22:37:13 -01:00
vboxvideo drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
vc4 Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
vgem
via
virtio drm/gem-shmem: Set vm_ops in static initializer 2022-02-14 09:42:01 +01:00
vkms Merge tag 'drm-intel-gt-next-2022-02-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next 2022-02-23 15:03:51 -05:00
vmwgfx Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2022-02-07 17:03:24 +01:00
xen xen: branch for v5.18-rc1 2022-03-28 14:32:39 -07:00
xlnx Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2022-02-07 17:03:24 +01:00
Kconfig drm/selftests: Move i915 buddy selftests into drm 2022-02-23 10:43:25 +01:00
Makefile drm: Add driver for Solomon SSD130x OLED displays 2022-02-16 13:29:04 +01:00
drm_agpsupport.c
drm_aperture.c
drm_atomic.c
drm_atomic_helper.c
drm_atomic_state_helper.c drm/object: Add default color encoding and range value at reset 2022-02-25 17:57:14 +01:00
drm_atomic_uapi.c drm/atomic: Don't pollute crtc_state->mode_blob with error pointers 2022-02-16 12:32:07 +02:00
drm_auth.c
drm_blend.c
drm_bridge.c
drm_bridge_connector.c drm: Plumb debugfs_init through to panels 2022-02-15 15:25:18 -08:00
drm_buddy.c drm/selftests: add drm buddy alloc range testcase 2022-02-23 10:44:43 +01:00
drm_bufs.c
drm_cache.c drm for 5.18-rc1 2022-03-24 16:19:43 -07:00
drm_client.c dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_client_modeset.c drm: Convert open-coded yes/no strings to yesno() 2022-02-07 13:04:25 -08:00
drm_color_mgmt.c
drm_connector.c drm/vrr: Set VRR capable prop only if it is attached to connector 2022-03-01 11:37:21 -08:00
drm_context.c
drm_crtc.c
drm_crtc_helper.c
drm_crtc_helper_internal.h
drm_crtc_internal.h
drm_damage_helper.c
drm_debugfs.c drm: Plumb debugfs_init through to panels 2022-02-15 15:25:18 -08:00
drm_debugfs_crc.c
drm_displayid.c
drm_dma.c
drm_drv.c
drm_dsc.c
drm_dumb_buffers.c
drm_edid.c drm/edid: fix CEA extension byte #3 parsing 2022-03-24 11:41:14 +02:00
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c
drm_fb_cma_helper.c
drm_fb_helper.c drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
drm_file.c
drm_flip_work.c
drm_format_helper.c drm/format-helper: Add drm_fb_xrgb8888_to_mono_reversed() 2022-02-16 13:29:04 +01:00
drm_fourcc.c
drm_framebuffer.c
drm_gem.c drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
drm_gem_atomic_helper.c
drm_gem_cma_helper.c Linux 5.17-rc6 2022-02-28 14:57:14 +10:00
drm_gem_framebuffer_helper.c dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_gem_shmem_helper.c drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
drm_gem_ttm_helper.c dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_gem_vram_helper.c dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_hashtab.c
drm_hdcp.c
drm_internal.h dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_ioc32.c
drm_ioctl.c
drm_irq.c
drm_kms_helper_common.c
drm_lease.c
drm_legacy.h
drm_legacy_misc.c
drm_lock.c
drm_managed.c
drm_memory.c
drm_mipi_dbi.c dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c
drm_mode_object.c drm/object: Add drm_object_property_get_default_value() function 2022-02-25 17:55:42 +01:00
drm_modes.c drm/modes: Add of_get_drm_panel_display_mode() 2022-02-28 10:29:33 +01:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_nomodeset.c
drm_of.c drm-misc-next-fixes for v5.18-rc2: 2022-04-08 09:13:38 +10:00
drm_panel.c
drm_panel_orientation_quirks.c
drm_pci.c
drm_plane.c
drm_plane_helper.c
drm_prime.c dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_print.c
drm_privacy_screen.c drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
drm_privacy_screen_x86.c
drm_probe_helper.c
drm_property.c
drm_rect.c
drm_scatter.c
drm_scdc_helper.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c
drm_syncobj.c drm/syncobj: flatten dma_fence_chains on transfer 2022-02-11 11:30:01 +01:00
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vblank.c
drm_vblank_work.c
drm_vm.c
drm_vma_manager.c
drm_writeback.c