| From 432e664e7c98c243fab4c3c95bd463bea3aeed28 Mon Sep 17 00:00:00 2001 |
| From: Alex Deucher <alexander.deucher@amd.com> |
| Date: Tue, 17 Oct 2023 15:40:01 -0400 |
| Subject: drm/amdgpu: don't use ATRM for external devices |
| |
| From: Alex Deucher <alexander.deucher@amd.com> |
| |
| commit 432e664e7c98c243fab4c3c95bd463bea3aeed28 upstream. |
| |
| The ATRM ACPI method is for fetching the dGPU vbios rom |
| image on laptops and all-in-one systems. It should not be |
| used for external add in cards. If the dGPU is thunderbolt |
| connected, don't try ATRM. |
| |
| v2: pci_is_thunderbolt_attached only works for Intel. Use |
| pdev->external_facing instead. |
| v3: dev_is_removable() seems to be what we want |
| |
| Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2925 |
| Reviewed-by: Mario Limonciello <mario.limonciello@amd.com> |
| Signed-off-by: Alex Deucher <alexander.deucher@amd.com> |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c |
| +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c |
| @@ -29,6 +29,7 @@ |
| #include "amdgpu.h" |
| #include "atom.h" |
| |
| +#include <linux/device.h> |
| #include <linux/pci.h> |
| #include <linux/slab.h> |
| #include <linux/acpi.h> |
| @@ -287,6 +288,10 @@ static bool amdgpu_atrm_get_bios(struct |
| if (adev->flags & AMD_IS_APU) |
| return false; |
| |
| + /* ATRM is for on-platform devices only */ |
| + if (dev_is_removable(&adev->pdev->dev)) |
| + return false; |
| + |
| while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev)) != NULL) { |
| dhandle = ACPI_HANDLE(&pdev->dev); |
| if (!dhandle) |