[PATCH 0/1] Init atombios timeout when amdgpu is Thunderbolt / USB4 when IO BAR is assigned

From: Nicholas Johnson
Date: Sun Mar 14 2021 - 01:20:34 EST


Hi all,

I am not certain why this happens, but when IO bar is assigned on
Thunderbolt, the amdgpu init fails:

[drm:atom_op_jump [amdgpu]] *ERROR* atombios stuck in loop for more than 20secs aborting
[drm:amdgpu_atom_execute_table_locked [amdgpu]] *ERROR* atombios stuck executing B456 (len 304, WS 4, PS 0) @ 0xB51B
[drm:amdgpu_atom_execute_table_locked [amdgpu]] *ERROR* atombios stuck executing B104 (len 183, WS 0, PS 8) @ 0xB17E
amdgpu 0000:08:00.0: amdgpu: gpu post error!
amdgpu 0000:08:00.0: amdgpu: Fatal error during GPU init
amdgpu: probe of 0000:08:00.0 failed with error -22

It seems to happen mostly when BIOS-assisted PCI enumeration is used
(older Thunderbolt systems). I cannot rule it out with native
enumeration, but generally native enumeration works, as the IO BAR is
not assigned, due to limited IO resources.

This patch is a simple fix against v5.12-rc2. I have experienced this
issue for a long time, and have finally decided to do something about
it. I do not see a downside to using MMIO, which is required to be
assigned.

Kind regards,
Nicholas Johnson

Nicholas Johnson (1):
amdgpu: use MMIO to init atombios if device is Thunderbolt / USB4
attached

drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

--
2.30.2