From: Bjorn Helgaas <helgaas@kernel.org>
To: "D M, Sharath Kumar" <sharath.kumar.d.m@intel.com>
Cc: "lpieralisi@kernel.org" <lpieralisi@kernel.org>,
"kw@linux.com" <kw@linux.com>,
"robh@kernel.org" <robh@kernel.org>,
"bhelgaas@google.com" <bhelgaas@google.com>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"dinguyen@kernel.org" <dinguyen@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 1/2] PCI: altera: refactor driver for supporting new platform
Date: Mon, 11 Sep 2023 15:08:08 -0500 [thread overview]
Message-ID: <20230911200808.GA388026@bhelgaas> (raw)
In-Reply-To: <BY5PR11MB4306A066509DC8CB2ECEC164FDEDA@BY5PR11MB4306.namprd11.prod.outlook.com>
On Fri, Sep 08, 2023 at 01:40:13PM +0000, D M, Sharath Kumar wrote:
> > -----Original Message-----
> > From: Bjorn Helgaas <helgaas@kernel.org>
> > Sent: Friday, September 8, 2023 6:14 PM
> > To: D M, Sharath Kumar <sharath.kumar.d.m@intel.com>
> > Cc: lpieralisi@kernel.org; kw@linux.com; robh@kernel.org;
> > bhelgaas@google.com; linux-pci@vger.kernel.org; dinguyen@kernel.org;
> > linux-kernel@vger.kernel.org
> > Subject: Re: [PATCH v2 1/2] PCI: altera: refactor driver for supporting new
> > platform
> >
> > On Fri, Sep 08, 2023 at 09:09:34AM +0000, D M, Sharath Kumar wrote:
> > > > -----Original Message-----
> > > > From: Bjorn Helgaas <helgaas@kernel.org> ...
> >
> > > > > + int (*ep_read_cfg)(struct altera_pcie *pcie, u8 busno,
> > > > > + unsigned int devfn, int where, int size, u32 *value);
> > > > > + int (*ep_write_cfg)(struct altera_pcie *pcie, u8 busno,
> > > > > + unsigned int devfn, int where, int size, u32 value);
> > > >
> > > > "ep_read_cfg" isn't the ideal name because it suggests "endpoint",
> > > > but it may be either an endpoint or a switch upstream port. The
> > > > rockchip driver uses "other", which isn't super descriptive either but
> > might be better.
> > > >
> > > Ok will change to "nonrp_read_cfg" ?
> >
> > I think the important point is not whether it's a Root Port or not, but whether
> > it's on the root *bus* or not. In other words, I think the driver has to
> > determine whether to generate a Type 0 (targeting something on the root
> > bus) or a Type 1 (targeting something below a
> > bridge) config transaction (see PCI-to-PCI Bridge spec r1.2, sec 3.1.2.1).
> >
> > There can be non-Root Ports on the root bus, so "nonrp" doesn't seem quite
> > right. "Other" would be OK, since that's already used by other drivers.
> > Maybe "type0" and "type1" would be better and would fit well with the
> > root_bus_nr check you use to distinguish them?
>
> Situation is
> Root port configuration space - memory mapped
I don't quite believe the idea that the access method is based on
whether it's a root port. For one thing, you decide whether to use
the memory-mapped accessor or the indirect accessor based on whether
the read targets the *root bus*, not whether it targets a root port.
And obviously you don't *know* whether the device at a B/D/F address
is a root port until after you read the PCIe type.
I think using names similar to other drivers will be helpful.
These all work on the root bus:
exynos_pcie_rd_own_conf
meson_pcie_rd_own_conf
rockchip_pcie_rd_own_conf
These work on non-root buses:
dw_pcie_rd_other_conf
rockchip_pcie_rd_other_conf
> Non root port configuration space - indirect access/proprietary access
> Type 0 for devices directly connected to root port
> Type 1 for others
> > > > > +static int _altera_pcie_cfg_read(struct altera_pcie *pcie, u8 busno,
> > > > > + unsigned int devfn, int where, int size,
> > > > > + u32 *value)
> > > > > +{
> > > > > + if (busno == pcie->root_bus_nr && pcie->pcie_data->ops-
> > > > >rp_read_cfg)
> > > > > + return pcie->pcie_data->ops->rp_read_cfg(pcie, busno,
> > > > devfn,
> > > > > + where, size, value);
> > > > > +
> > > > > + if (pcie->pcie_data->ops->ep_read_cfg)
> > > > > + return pcie->pcie_data->ops->ep_read_cfg(pcie, busno,
> > > > devfn,
> > > > > + where, size, value);
> > > > > + return PCIBIOS_FUNC_NOT_SUPPORTED; }
next prev parent reply other threads:[~2023-09-11 21:41 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-16 6:33 [PATCH 0/1] pci: agilex_rp: add pci root port support for agilex platform sharath.kumar.d.m
2023-06-16 6:33 ` [PATCH 1/1] pci: agilex_pci: add pcie rootport support for agilex sharath.kumar.d.m
2023-06-16 15:21 ` Bjorn Helgaas
2023-09-06 11:09 ` [PATCH v2 0/2] PCI: Altera: add support to Agilex family sharath.kumar.d.m
2023-09-06 11:09 ` [PATCH v2 1/2] PCI: altera: refactor driver for supporting new platform sharath.kumar.d.m
2023-09-06 17:08 ` Bjorn Helgaas
2023-09-08 9:09 ` D M, Sharath Kumar
2023-09-08 12:44 ` Bjorn Helgaas
2023-09-08 13:40 ` D M, Sharath Kumar
2023-09-08 19:52 ` Bjorn Helgaas
2023-09-11 10:33 ` [PATCH 1/2] PCI: altera: refactor driver for supporting new platforms sharath.kumar.d.m
2023-09-11 12:24 ` [PATCH v3 0/2] PCI: altera: add support to agilex family sharath.kumar.d.m
2023-09-11 12:24 ` [PATCH v3 1/2] PCI: altera: refactor driver for supporting new platforms sharath.kumar.d.m
2023-09-11 12:24 ` [PATCH v3 2/2] PCI: altera: add support for agilex family fpga sharath.kumar.d.m
2023-09-11 13:35 ` [PATCH v2 1/2] PCI: altera: refactor driver for supporting new platform D M, Sharath Kumar
2023-09-11 20:08 ` Bjorn Helgaas [this message]
2023-09-13 12:59 ` Bjorn Helgaas
2023-09-17 17:05 ` [PATCH v4 0/2] PCI: altera: add support to agilex family sharath.kumar.d.m
2023-09-17 17:05 ` [PATCH v4 1/2] PCI: altera: refactor driver for supporting new platform sharath.kumar.d.m
2023-09-17 17:05 ` [PATCH v4 2/2] PCI: altera: add support for agilex family fpga sharath.kumar.d.m
2023-10-25 22:05 ` Bjorn Helgaas
2023-10-28 13:26 ` [PATCH v5 2/2] PCI: altera: add support for agilex7 " sharath.kumar.d.m
2023-10-25 21:51 ` [PATCH v4 0/2] PCI: altera: add support to agilex family Bjorn Helgaas
2023-10-28 13:33 ` [PATCH v5 " sharath.kumar.d.m
2023-09-11 13:53 ` [PATCH v3 " sharath.kumar.d.m
2023-09-11 13:53 ` [PATCH v3 1/2] PCI: altera: refactor driver for supporting new platforms sharath.kumar.d.m
2023-09-11 13:53 ` [PATCH v3 2/2] PCI: altera: add support for agilex family fpga sharath.kumar.d.m
2023-09-15 10:51 ` [PATCH v3 0/2] PCI: altera: add support to agilex family Dinh Nguyen
2023-09-06 11:09 ` [PATCH v2 2/2] PCI: altera: add suport for Agilex Family FPGA sharath.kumar.d.m
2023-09-06 17:12 ` Bjorn Helgaas
2023-09-08 9:15 ` D M, Sharath Kumar
2023-09-08 12:47 ` Bjorn Helgaas
2023-09-08 14:35 ` D M, Sharath Kumar
2023-09-08 19:48 ` Bjorn Helgaas
2023-09-11 10:38 ` [PATCH 2/2] PCI: altera: add support for agilex family fpga sharath.kumar.d.m
2023-09-11 13:08 ` [PATCH v3 0/2] PCI: altera: add support to agilex family sharath.kumar.d.m
2023-09-11 13:08 ` [PATCH v3 1/2] PCI: altera: refactor driver for supporting new platforms sharath.kumar.d.m
2023-09-11 13:08 ` [PATCH v3 2/2] PCI: altera: add support for agilex family fpga sharath.kumar.d.m
2023-09-11 14:08 ` [PATCH v2 2/2] PCI: altera: add suport for Agilex Family FPGA D M, Sharath Kumar
2023-09-11 13:16 ` [PATCH v3 0/2] PCI: altera: add support to agilex family sharath.kumar.d.m
2023-09-11 13:16 ` [PATCH v3 1/2] PCI: altera: refactor driver for supporting new platforms sharath.kumar.d.m
2023-09-11 13:16 ` [PATCH v3 2/2] PCI: altera: add support for agilex family fpga sharath.kumar.d.m
2023-09-11 13:22 ` [PATCH v3 0/2] PCI: altera: add support to agilex family sharath.kumar.d.m
2023-09-11 13:22 ` [PATCH v3 1/2] PCI: altera: refactor driver for supporting new platforms sharath.kumar.d.m
2023-09-11 13:22 ` [PATCH v3 2/2] PCI: altera: add support for agilex family fpga sharath.kumar.d.m
2023-09-11 13:25 ` [PATCH v3 0/2] PCI: altera: add support to agilex family sharath.kumar.d.m
2023-09-11 13:25 ` [PATCH v3 1/2] PCI: altera: refactor driver for supporting new platforms sharath.kumar.d.m
2023-09-11 13:25 ` [PATCH v3 2/2] PCI: altera: add support for agilex family fpga sharath.kumar.d.m
2023-09-11 10:15 ` [PATCH v3 0/2] PCI: altera: add support to agilex family sharath.kumar.d.m
2023-09-11 12:16 ` sharath.kumar.d.m
2023-09-11 13:31 ` sharath.kumar.d.m
2023-09-11 13:31 ` [PATCH v3 1/2] PCI: altera: refactor driver for supporting new platforms sharath.kumar.d.m
2023-09-11 13:31 ` [PATCH v3 2/2] PCI: altera: add support for agilex family fpga sharath.kumar.d.m
2023-09-11 13:45 ` [PATCH v3 0/2] PCI: altera: add support to agilex family sharath.kumar.d.m
2023-09-11 13:45 ` [PATCH v3 1/2] PCI: altera: refactor driver for supporting new platforms sharath.kumar.d.m
2023-09-11 13:45 ` [PATCH v3 2/2] PCI: altera: add support for agilex family fpga sharath.kumar.d.m
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=20230911200808.GA388026@bhelgaas \
--to=helgaas@kernel.org \
--cc=bhelgaas@google.com \
--cc=dinguyen@kernel.org \
--cc=kw@linux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=robh@kernel.org \
--cc=sharath.kumar.d.m@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.