]> git.itanic.dy.fi Git - linux-stable/commitdiff
drm/amdgpu: don't use pci_is_thunderbolt_attached()
authorAlex Deucher <alexander.deucher@amd.com>
Tue, 17 Oct 2023 20:30:00 +0000 (16:30 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 3 Nov 2023 15:59:44 +0000 (11:59 -0400)
It's only valid on Intel systems with the Intel VSEC.
Use dev_is_removable() instead.  This should do the right
thing regardless of the platform.

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
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c

index 436bd845557310447d1960fe101ae57b4e9e5c13..920f52fc91f0ab1c83d25d0fe88d50dbb04f0b1e 100644 (file)
@@ -41,6 +41,7 @@
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_probe_helper.h>
 #include <drm/amdgpu_drm.h>
+#include <linux/device.h>
 #include <linux/vgaarb.h>
 #include <linux/vga_switcheroo.h>
 #include <linux/efi.h>
@@ -2223,7 +2224,6 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev)
  */
 static int amdgpu_device_ip_early_init(struct amdgpu_device *adev)
 {
-       struct drm_device *dev = adev_to_drm(adev);
        struct pci_dev *parent;
        int i, r;
        bool total;
@@ -2294,7 +2294,7 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev)
            (amdgpu_is_atpx_hybrid() ||
             amdgpu_has_atpx_dgpu_power_cntl()) &&
            ((adev->flags & AMD_IS_APU) == 0) &&
-           !pci_is_thunderbolt_attached(to_pci_dev(dev->dev)))
+           !dev_is_removable(&adev->pdev->dev))
                adev->flags |= AMD_IS_PX;
 
        if (!(adev->flags & AMD_IS_APU)) {
@@ -4142,7 +4142,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
 
        px = amdgpu_device_supports_px(ddev);
 
-       if (px || (!pci_is_thunderbolt_attached(adev->pdev) &&
+       if (px || (!dev_is_removable(&adev->pdev->dev) &&
                                apple_gmux_detect(NULL, NULL)))
                vga_switcheroo_register_client(adev->pdev,
                                               &amdgpu_switcheroo_ops, px);
@@ -4292,7 +4292,7 @@ void amdgpu_device_fini_sw(struct amdgpu_device *adev)
 
        px = amdgpu_device_supports_px(adev_to_drm(adev));
 
-       if (px || (!pci_is_thunderbolt_attached(adev->pdev) &&
+       if (px || (!dev_is_removable(&adev->pdev->dev) &&
                                apple_gmux_detect(NULL, NULL)))
                vga_switcheroo_unregister_client(adev->pdev);
 
index e523627cfe255f1c4cf1ba51fb10aad9ee4e5bad..df218d5ca775cd17c367cacedc9be49dc103196b 100644 (file)
@@ -28,6 +28,7 @@
 #include "nbio/nbio_2_3_offset.h"
 #include "nbio/nbio_2_3_sh_mask.h"
 #include <uapi/linux/kfd_ioctl.h>
+#include <linux/device.h>
 #include <linux/pci.h>
 
 #define smnPCIE_CONFIG_CNTL    0x11180044
@@ -361,7 +362,7 @@ static void nbio_v2_3_enable_aspm(struct amdgpu_device *adev,
 
                data |= NAVI10_PCIE__LC_L0S_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L0S_INACTIVITY__SHIFT;
 
-               if (pci_is_thunderbolt_attached(adev->pdev))
+               if (dev_is_removable(&adev->pdev->dev))
                        data |= NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT  << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT;
                else
                        data |= NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT;
@@ -480,7 +481,7 @@ static void nbio_v2_3_program_aspm(struct amdgpu_device *adev)
 
        def = data = RREG32_PCIE(smnPCIE_LC_CNTL);
        data |= NAVI10_PCIE__LC_L0S_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L0S_INACTIVITY__SHIFT;
-       if (pci_is_thunderbolt_attached(adev->pdev))
+       if (dev_is_removable(&adev->pdev->dev))
                data |= NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT  << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT;
        else
                data |= NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT;