2023-11-15 09:28:13

by Christian König

[permalink] [raw]
Subject: Re: [PATCH v3 2/7] drm/radeon: Switch from pci_is_thunderbolt_attached() to dev_is_removable()

Am 14.11.23 um 21:07 schrieb Mario Limonciello:
> pci_is_thunderbolt_attached() looks at the hierarchy of the PCIe device
> to determine if any bridge along the way has the is_thunderbolt bit set.
> This bit will only be set when one of the devices in the hierarchy is an
> Intel Thunderbolt device.
>
> However PCIe devices can be connected to USB4 hubs and routers which won't
> necessarily set the is_thunderbolt bit. These devices will however be
> marked as externally facing which means they are marked removable by
> pci_set_removable().
>
> Look whether the device is marked removable to determine it's
> connected to a Thunderbolt controller or USB4 router.
>
> Signed-off-by: Mario Limonciello <[email protected]>

Acked-by: Christian König <[email protected]> for this one.

> ---
> v2->v3:
> * Update commit message
> ---
> drivers/gpu/drm/radeon/radeon_device.c | 4 ++--
> drivers/gpu/drm/radeon/radeon_kms.c | 2 +-
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
> index afbb3a80c0c6..ba0ca0694d18 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -1429,7 +1429,7 @@ int radeon_device_init(struct radeon_device *rdev,
>
> if (rdev->flags & RADEON_IS_PX)
> runtime = true;
> - if (!pci_is_thunderbolt_attached(rdev->pdev))
> + if (!dev_is_removable(&rdev->pdev->dev))
> vga_switcheroo_register_client(rdev->pdev,
> &radeon_switcheroo_ops, runtime);
> if (runtime)
> @@ -1519,7 +1519,7 @@ void radeon_device_fini(struct radeon_device *rdev)
> radeon_bo_evict_vram(rdev);
> radeon_audio_component_fini(rdev);
> radeon_fini(rdev);
> - if (!pci_is_thunderbolt_attached(rdev->pdev))
> + if (!dev_is_removable(&rdev->pdev->dev))
> vga_switcheroo_unregister_client(rdev->pdev);
> if (rdev->flags & RADEON_IS_PX)
> vga_switcheroo_fini_domain_pm_ops(rdev->dev);
> diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
> index a16590c6247f..ead912a58ab8 100644
> --- a/drivers/gpu/drm/radeon/radeon_kms.c
> +++ b/drivers/gpu/drm/radeon/radeon_kms.c
> @@ -138,7 +138,7 @@ int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags)
> if ((radeon_runtime_pm != 0) &&
> radeon_has_atpx() &&
> ((flags & RADEON_IS_IGP) == 0) &&
> - !pci_is_thunderbolt_attached(pdev))
> + !dev_is_removable(&pdev->dev))
> flags |= RADEON_IS_PX;
>
> /* radeon_device_init should report only fatal error