From: Bjorn Helgaas <helgaas@kernel.org>
To: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: Logan Gunthorpe <logang@deltatee.com>,
linux-pci@vger.kernel.org, Moritz Fischer <mdf@kernel.org>,
Wu Hao <hao.wu@intel.com>,
linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] PCI: Add sysfs attribute for disabling PCIe link to downstream component
Date: Tue, 20 Aug 2019 09:17:17 -0500 [thread overview]
Message-ID: <20190820141717.GA14450@google.com> (raw)
In-Reply-To: <20190820095820.GD19908@lahna.fi.intel.com>
On Tue, Aug 20, 2019 at 12:58:20PM +0300, Mika Westerberg wrote:
> On Mon, Aug 19, 2019 at 06:52:45PM -0500, Bjorn Helgaas wrote:
> > > Right, it looks like we need some sort of flag there anyway.
> >
> > Does this mean you're looking at getting rid of "has_secondary_link",
> > you think it's impossible, or you think it's not worth trying?
>
> I was of thinking that we need some flag anyway for the downstream port
> (such as has_secondary_link) that tells us the which side of the port
> the link is.
>
> > I'm pretty sure we could get rid of it by looking upstream, but I
> > haven't actually tried it.
>
> So if we are downstream port, look at the parent and if it is also
> downstream port (or root port) we change the type to upstream port
> accordingly? That might work.
If we see a type of PCI_EXP_TYPE_ROOT_PORT or
PCI_EXP_TYPE_PCIE_BRIDGE, I think we have to assume that's accurate
(which we already do today -- for those types, we assume the device
has a secondary link).
For a device that claims to be PCI_EXP_TYPE_DOWNSTREAM, if a parent
device exists and is a Downstream Port (Root Port, Switch Downstream
Port, and I suppose a PCI-to-PCIe bridge (this is basically
pcie_downstream_port()), this device must actually be acting as a
PCI_EXP_TYPE_UPSTREAM device.
If a device claiming to be PCI_EXP_TYPE_UPSTREAM has a parent that is
PCI_EXP_TYPE_UPSTREAM, this device must actually be a
PCI_EXP_TYPE_DOWNSTREAM port.
For PCI_EXP_TYPE_DOWNSTREAM and PCI_EXP_TYPE_UPSTREAM devices that
don't have parents, we just have to assume they advertise the correct
type (as we do today). There are sparc and virtualization configs
like this.
> Another option may be to just add a quirk for these ports.
I don't really like the quirk approach because then we have to rely on
user reports of something being broken.
> Only concern for both is that we have functions that rely on the type
> such as pcie_capability_read_word() so if we change the type do we end
> up breaking something? I did not check too closely, though.
I don't think we'll break anything that's not already broken because
the type will reflect exactly what has_secondary_link now tells us.
In fact, we might *fix* some things, e.g., pcie_capability_read_word()
should work better if we fix the type that pcie_downstream_port()
checks.
> I'm willing to cook a patch that fixes this once we have some consensus
> what it should do ;-)
next prev parent reply other threads:[~2019-08-20 14:17 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-29 10:49 [PATCH] PCI: Add sysfs attribute for disabling PCIe link to downstream component Mika Westerberg
2019-07-03 12:30 ` Mika Westerberg
2019-07-03 13:39 ` Bjorn Helgaas
2019-07-03 15:03 ` Mika Westerberg
2019-08-01 21:53 ` Bjorn Helgaas
2019-08-04 11:51 ` Wu Hao
2019-08-06 10:12 ` Mika Westerberg
2019-08-19 23:52 ` Bjorn Helgaas
2019-08-20 9:58 ` Mika Westerberg
2019-08-20 14:17 ` Bjorn Helgaas [this message]
2019-08-21 7:28 ` Mika Westerberg
2019-08-21 14:37 ` Mika Westerberg
2019-08-21 19:01 ` Bjorn Helgaas
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=20190820141717.GA14450@google.com \
--to=helgaas@kernel.org \
--cc=hao.wu@intel.com \
--cc=linux-fpga@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=logang@deltatee.com \
--cc=mdf@kernel.org \
--cc=mika.westerberg@linux.intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.