Re: [PATCH] thunderbolt: Use is_pciehp instead of is_hotplug_bridge

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Tue, Aug 12, 2025 at 03:42:29PM +0200, Lukas Wunner wrote:
> The thunderbolt driver sets up device link dependencies from hotplug ports
> to the Host Router (aka Native Host Interface, NHI).  When resuming from
> system sleep, this allows the Host Router to re-establish tunnels to
> attached Thunderbolt devices before the hotplug ports resume.
> 
> To identify the hotplug ports, the driver utilizes the is_hotplug_bridge
> flag which also encompasses ACPI slots handled by the ACPI hotplug driver.
> 
> Thunderbolt hotplug ports are always Hot-Plug Capable PCIe ports, so it is
> more apt to identify them with the is_pciehp flag.
> 
> Similarly, hotplug ports on older Thunderbolt controllers have broken MSI
> support and are quirked to use legacy INTx interrupts instead.  The quirk
> identifies them with is_hotplug_bridge, even though all affected ports are
> also matched by is_pciehp.  So use is_pciehp here as well.
> 
> Signed-off-by: Lukas Wunner <lukas@xxxxxxxxx>
> ---
> The is_pciehp flag was introduced by commit 6cff20ce3b92 ("PCI/ACPI: Fix
> runtime PM ref imbalance on Hot-Plug Capable ports"), which appeared in
> v6.17-rc1.  This patch is submitted separately because it is intended
> to be applied through thunderbolt.git instead of pci.git.  Thanks!

Happy to take it, but I think I need an Ack from Bjorn as it touches PCI
too.

>  drivers/pci/quirks.c     | 2 +-
>  drivers/thunderbolt/tb.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index d97335a..17315a8 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -3829,7 +3829,7 @@ static void quirk_no_pm_reset(struct pci_dev *dev)
>   */
>  static void quirk_thunderbolt_hotplug_msi(struct pci_dev *pdev)
>  {
> -	if (pdev->is_hotplug_bridge &&
> +	if (pdev->is_pciehp &&
>  	    (pdev->device != PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_4C ||
>  	     pdev->revision <= 1))
>  		pdev->no_msi = 1;
> diff --git a/drivers/thunderbolt/tb.c b/drivers/thunderbolt/tb.c
> index c14ab1f..83a33fc 100644
> --- a/drivers/thunderbolt/tb.c
> +++ b/drivers/thunderbolt/tb.c
> @@ -3336,7 +3336,7 @@ static bool tb_apple_add_links(struct tb_nhi *nhi)
>  		if (!pci_is_pcie(pdev))
>  			continue;
>  		if (pci_pcie_type(pdev) != PCI_EXP_TYPE_DOWNSTREAM ||
> -		    !pdev->is_hotplug_bridge)
> +		    !pdev->is_pciehp)
>  			continue;
>  
>  		link = device_link_add(&pdev->dev, &nhi->pdev->dev,
> -- 
> 2.47.2




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux