On Mon, Mar 15, 2021 at 4:04 AM Nicholas Johnson <nicholas.johnson-opensource@xxxxxxxxxxxxxx> wrote: > > When using some Thunderbolt hosts using BIOS-assisted PCI enumeration > with IO BAR assigned, we get an atombios timeout, such as: > > [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 > > A workaround is to use MMIO to access ATOMBIOS when device is > Thunderbolt / USB4 attached. Missing your signed-off-by. Also, we can just remove the legacy IO callbacks altogether. They are leftover from radeon and not required at all on amdgpu. Alex > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c > index 86add0f4e..5d16ec10d 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c > @@ -1999,11 +1999,15 @@ int amdgpu_atombios_init(struct amdgpu_device *adev) > atom_card_info->reg_read = cail_reg_read; > atom_card_info->reg_write = cail_reg_write; > /* needed for iio ops */ > - if (adev->rio_mem) { > + if (adev->rio_mem && !pci_is_thunderbolt_attached(adev->pdev)) { > atom_card_info->ioreg_read = cail_ioreg_read; > atom_card_info->ioreg_write = cail_ioreg_write; > } else { > - DRM_DEBUG("PCI I/O BAR is not found. Using MMIO to access ATOM BIOS\n"); > + if (pci_is_thunderbolt_attached(adev->pdev)) > + DRM_DEBUG("Device is attached via Thunderbolt / USB4. Using MMIO to access ATOM BIOS\n"); > + else > + DRM_DEBUG("PCI I/O BAR is not found. Using MMIO to access ATOM BIOS\n"); > + > atom_card_info->ioreg_read = cail_reg_read; > atom_card_info->ioreg_write = cail_reg_write; > } > -- > 2.30.2 > > _______________________________________________ > amd-gfx mailing list > amd-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx