[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260122102257.GA1239174@bhelgaas>
Date: Thu, 22 Jan 2026 04:22:57 -0600
From: Bjorn Helgaas <helgaas@...nel.org>
To: Haakon Bugge <haakon.bugge@...cle.com>
Cc: Bjorn Helgaas <bhelgaas@...gle.com>,
Johannes Thumshirn <morbidrsa@...il.com>,
"linux-pci@...r.kernel.org" <linux-pci@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>
Subject: Re: [PATCH v2 1/2] PCI: Initialize RCB from pci_configure_device
On Thu, Jan 22, 2026 at 09:42:46AM +0000, Haakon Bugge wrote:
> > On Wed, Jan 21, 2026 at 12:35:40PM +0100, HÃ¥kon Bugge wrote:
> > [snip]
>
> > RCB isn't meaningful for switches, so we'll read their LNKCTL
> > unnecessarily. I propose something like this, which also clears RCB
> > if it's set when it shouldn't be (I think this would indicate a
> > firmware defect):
> >
> > /*
> > * Per PCIe r7.0, sec 7.5.3.7, RCB is only meaningful in Root Ports
> > * (where it is read-only), Endpoints, and Bridges. It may only be
> > * set for Endpoints and Bridges if it is set in the Root Port.
> > */
> > if (!pci_is_pcie(dev) ||
> > pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT ||
> > pci_pcie_type(dev) == PCI_EXP_TYPE_UPSTREAM ||
> > pci_pcie_type(dev) == PCI_EXP_TYPE_DOWNSTREAM ||
> > dev->is_virtfn)
>
> I see that sec 1.3.2 defines "Endpoints are classified as either
> legacy, PCI Express, or Root Complex Integrated Endpoints (RCiEPs)."
> But, shouldn't we also exclude Root Complex Event Collectors
> (PCI_EXP_TYPE_RC_EC)?
Yes, probably so.
Powered by blists - more mailing lists