From: Bjorn Helgaas <helgaas@kernel.org>
To: Mario Limonciello <mario.limonciello@amd.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
Andreas Noever <andreas.noever@gmail.com>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
"open list:PCI SUBSYSTEM" <linux-pci@vger.kernel.org>,
"open list:THUNDERBOLT DRIVER" <linux-usb@vger.kernel.org>,
"open list:RADEON and AMDGPU DRM DRIVERS"
<amd-gfx@lists.freedesktop.org>,
"open list:DRM DRIVERS" <dri-devel@lists.freedesktop.org>,
"open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS"
<nouveau@lists.freedesktop.org>,
"open list:X86 PLATFORM DRIVERS"
<platform-driver-x86@vger.kernel.org>,
Michael Jamet <michael.jamet@intel.com>,
Yehezkel Bernat <YehezkelShB@gmail.com>,
Alexander.Deucher@amd.com, Lukas Wunner <lukas@wunner.de>
Subject: Re: [PATCH v5 3/7] PCI: Drop the `is_thunderbolt` attribute from PCI core
Date: Fri, 25 Feb 2022 11:42:24 -0600 [thread overview]
Message-ID: <20220225174224.GA366735@bhelgaas> (raw)
In-Reply-To: <20220224215116.7138-4-mario.limonciello@amd.com>
On Thu, Feb 24, 2022 at 03:51:12PM -0600, Mario Limonciello wrote:
> The `is_thunderbolt` attribute originally had a well defined list of
> quirks that it existed for, but it has been overloaded with more
> meaning.
>
> Instead use the driver core removable attribute to indicate the
> detail a device is attached to a thunderbolt or USB4 chain.
>
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
> drivers/pci/probe.c | 2 +-
> drivers/platform/x86/apple-gmux.c | 2 +-
> include/linux/pci.h | 5 ++---
> 3 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index 17a969942d37..1b752d425c47 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -1584,7 +1584,7 @@ static void set_pcie_thunderbolt(struct pci_dev *dev)
> /* Is the device part of a Thunderbolt controller? */
> vsec = pci_find_vsec_capability(dev, PCI_VENDOR_ID_INTEL, PCI_VSEC_ID_INTEL_TBT);
> if (vsec)
> - dev->is_thunderbolt = 1;
> + dev->external_facing = true;
> }
>
> static void set_pcie_untrusted(struct pci_dev *dev)
> diff --git a/drivers/platform/x86/apple-gmux.c b/drivers/platform/x86/apple-gmux.c
> index 57553f9b4d1d..4444da0c39b0 100644
> --- a/drivers/platform/x86/apple-gmux.c
> +++ b/drivers/platform/x86/apple-gmux.c
> @@ -596,7 +596,7 @@ static int gmux_resume(struct device *dev)
>
> static int is_thunderbolt(struct device *dev, void *data)
> {
> - return to_pci_dev(dev)->is_thunderbolt;
> + return to_pci_dev(dev)->external_facing;
> }
>
> static int gmux_probe(struct pnp_dev *pnp, const struct pnp_device_id *id)
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 1e5b769e42fc..d9719eb14654 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -442,7 +442,6 @@ struct pci_dev {
> unsigned int is_virtfn:1;
> unsigned int is_hotplug_bridge:1;
> unsigned int shpc_managed:1; /* SHPC owned by shpchp */
> - unsigned int is_thunderbolt:1; /* Thunderbolt controller */
> unsigned int no_cmd_complete:1; /* Lies about command completed events */
>
> /*
> @@ -2447,11 +2446,11 @@ static inline bool pci_is_thunderbolt_attached(struct pci_dev *pdev)
> {
> struct pci_dev *parent = pdev;
>
> - if (pdev->is_thunderbolt)
> + if (dev_is_removable(&pdev->dev))
> return true;
>
> while ((parent = pci_upstream_bridge(parent)))
> - if (parent->is_thunderbolt)
> + if (dev_is_removable(&parent->dev))
> return true;
>
> return false;
Since you remove this function entirely later, it seems like you might
as well push this to the end of the series, so you won't have to
change it before removing it.
That would just leave the "PCI_VSEC_ID_INTEL_TBT implies external-facing"
assumption above. Not having a Thunderbolt spec, I have no idea how
you deal with that.
But it is definitely not the case that "dev_is_removable() implies
device is Thunderbolt", so I don't think this last hunk can work.
Bjorn
next prev parent reply other threads:[~2022-02-25 17:42 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-24 21:51 [PATCH v5 0/7] Overhaul `is_thunderbolt` Mario Limonciello
2022-02-24 21:51 ` [PATCH v5 1/7] PCI: Move `is_thunderbolt` check for lack of command completed to a quirk Mario Limonciello
2022-02-24 21:51 ` [PATCH v5 2/7] PCI: Move check for old Apple Thunderbolt controllers into " Mario Limonciello
2022-02-24 21:51 ` [PATCH v5 3/7] PCI: Drop the `is_thunderbolt` attribute from PCI core Mario Limonciello
2022-02-25 1:23 ` Bjorn Helgaas
2022-02-25 1:27 ` Bjorn Helgaas
2022-02-25 16:13 ` Alex Deucher
2022-02-25 17:42 ` Bjorn Helgaas [this message]
2022-02-28 10:16 ` Mika Westerberg
2022-02-28 15:33 ` Limonciello, Mario
2022-02-28 22:13 ` Bjorn Helgaas
2022-02-28 22:32 ` Lukas Wunner
2022-02-28 22:36 ` Limonciello, Mario
2022-03-01 7:04 ` Mika Westerberg
2022-02-24 21:51 ` [PATCH v5 4/7] drm/amd: drop the use of `pci_is_thunderbolt_attached` Mario Limonciello
2022-02-24 21:51 ` [PATCH v5 5/7] drm/nouveau: " Mario Limonciello
2022-02-24 21:51 ` [PATCH v5 6/7] drm/radeon: " Mario Limonciello
2022-02-24 21:51 ` [PATCH v5 7/7] PCI: drop `pci_is_thunderbolt_attached` Mario Limonciello
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220225174224.GA366735@bhelgaas \
--to=helgaas@kernel.org \
--cc=Alexander.Deucher@amd.com \
--cc=YehezkelShB@gmail.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=andreas.noever@gmail.com \
--cc=bhelgaas@google.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=mario.limonciello@amd.com \
--cc=michael.jamet@intel.com \
--cc=mika.westerberg@linux.intel.com \
--cc=nouveau@lists.freedesktop.org \
--cc=platform-driver-x86@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox