linux/drivers/gpu/drm/amd/pm
Mario Limonciello 75c8746b9d drm/amd: Create a device link between APU display and XHCI devices
Some AMD APU multi-function devices expose an integrated USB xHCI
controller. In some circumstances (such as larger VRAM), the PM core
can resume can fail when the xHCI controller is resuming in parallel
with the GPU/display function.

On affected systems, the xHCI controller can complete pci_pm_resume
and start resuming USB devices while the GPU is still in its much
longer resume path. This race condition leads to USB device resume
failures followed by:

  xhci_hcd ...: xHCI host not responding to stop endpoint command
  xhci_hcd ...: HC died; cleaning up

Create a device link from any xHCI controller sharing the same PCIe
root port as the APU display function. The link uses DL_FLAG_STATELESS
and DL_FLAG_PM_RUNTIME to ensure the GPU completes its resume before
the xHCI controller begins resuming USB devices.

This device link is done specifically in amdgpu so that if the
platform firmware has been modified such that this issue doesn't happen
the version can be detected and the workaround skipped.

Suggested-by: Aaron Ma <aaron.ma@canonical.com>
Reported-by: mrh@frame.work
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221073
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Tested-by: Mark Pearson <mpearson-lenovo@squebb.ca>
Tested-by: Alexander F <superveridical@gmail.com>
Tested-by: Francis DB <francisdb@gmail.com>
Link: https://patch.msgid.link/20260713195313.1739762-1-mario.limonciello@amd.com
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 07c93d7eeb0d990bc1b8e3b1eafa464bc9feee97)
Cc: stable@vger.kernel.org
2026-07-17 17:41:39 -04:00
..
inc drm/amd/pm: add smu ras driver framework 2025-11-04 11:53:58 -05:00
legacy-dpm drm/amd/pm/si: Fix AC/DC switch notification 2026-07-17 17:40:16 -04:00
powerplay drm/amd/pm/smu7: Fix AC/DC switch notification 2026-07-17 17:40:43 -04:00
swsmu drm/amd: Create a device link between APU display and XHCI devices 2026-07-17 17:41:39 -04:00
amdgpu_dpm_internal.c drm/amd/pm: Remove unneeded legacy DPM related code. 2025-09-15 16:52:50 -04:00
amdgpu_dpm.c drm/amd/pm: Rename enable_bapm() to notify_ac_dc() 2026-05-27 10:48:11 -04:00
amdgpu_pm.c drm/amd/pm: fix amdgpu_pm_info power display units 2026-07-01 12:58:16 -04:00
Makefile drm/amd: Enable SMU 15_0_0 support 2026-01-08 11:41:42 -05:00