drm/amdgpu: don't use ATRM for external devices
authorjsg <jsg@openbsd.org>
Thu, 30 Nov 2023 02:52:49 +0000 (02:52 +0000)
committerjsg <jsg@openbsd.org>
Thu, 30 Nov 2023 02:52:49 +0000 (02:52 +0000)
From Alex Deucher
2ab6c1237bd4a961b8d5032671510a028fb9f0f6 in linux-6.1.y/6.1.64
432e664e7c98c243fab4c3c95bd463bea3aeed28 in mainline linux

sys/dev/pci/drm/amd/amdgpu/amdgpu_bios.c

index 742845c..ec1cdc6 100644 (file)
@@ -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>
@@ -406,6 +407,10 @@ static bool amdgpu_atrm_get_bios(struct amdgpu_device *adev)
        if (adev->flags & AMD_IS_APU)
                return false;
 
+       /* ATRM is for on-platform devices only */
+       if (dev_is_removable(&adev->pdev->dev))
+               return false;
+
 #ifdef notyet
        while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev)) != NULL) {
                dhandle = ACPI_HANDLE(&pdev->dev);