From: Bjorn Helgaas <helgaas@kernel.org>
To: 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 1/1] pci: agilex_pci: add pcie rootport support for agilex
Date: Fri, 16 Jun 2023 10:21:12 -0500 [thread overview]
Message-ID: <20230616152112.GA1534746@bhelgaas> (raw)
In-Reply-To: <20230616063313.862996-2-sharath.kumar.d.m@intel.com>
Thanks for your patch. If/when you revise it, run "git log --oneline
drivers/pci/controller/pcie-altera.c" and match the style of subject
lines, e.g.,
PCI: altera: Add Intel Agilex support
On Fri, Jun 16, 2023 at 12:03:13PM +0530, sharath.kumar.d.m@intel.com wrote:
> From: D M Sharath Kumar <sharath.kumar.d.m@intel.com>
Also, please include a commit log.
Probably should also update the Kconfig help text to mention Agilex in
addition to Altera.
> +#include <linux/bitops.h>
I don't think this is needed.
> +static int aglx_rp_read_cfg(struct altera_pcie *pcie, int where,
> + int size, u32 *value)
> +{
> + void __iomem *addr = AGLX_RP_CFG_ADDR(pcie, where);
> +
> + switch (size) {
> + case 1:
> + *value = readb(addr);
> + break;
> + case 2:
> + *value = readw(addr);
> + break;
> + default:
> + *value = readl(addr);
> + break;
> + }
> +
> + if (where == 0x3d)
> + *value = 0x01;
> + if (where == 0x3c)
> + *value |= 0x0100;
This magic needs a comment. Apparently it works around some hardware
defect? What happens if this is a single byte read? Looks like it
may set more than one byte of *value.
> +static int aglx_ep_write_cfg(struct altera_pcie *pcie, u8 busno,
> + unsigned int devfn, int where, int size, u32 value)
> +{
> + cs_writel(pcie, ((busno << 8) | devfn), AGLX_BDF_REG);
> + if (busno > AGLX_RP_SECONDARY(pcie)) {
> + /* type 1 */
> + switch (size) {
> + case 1:
> + cs_writeb(pcie, value, ((1 << 12) | where));
> + break;
> + case 2:
> + cs_writew(pcie, value, ((1 << 12) | where));
> + break;
> + default:
> + cs_writel(pcie, value, ((1 << 12) | where));
> + break;
> + }
> + } else {
> + /* type 0 */
> + switch (size) {
> + case 1:
> + cs_writeb(pcie, value, where);
> + break;
> + case 2:
> + cs_writew(pcie, value, where);
> + break;
> + default:
> + cs_writel(pcie, value, where);
> + break;
> + }
> + }
These switches could be combined, e.g.,
if (busno > AGLX_RP_SECONDARY(pcie))
where |= 1 << 12;
> + if (status & CFG_AER) {
> + ret = generic_handle_domain_irq(pcie->irq_domain, 0);
> + if (ret)
> + dev_err_ratelimited(dev, "unexpected IRQ,\n");
Spurious "," at end of line.
> @@ -692,11 +904,27 @@ static int altera_pcie_parse_dt(struct altera_pcie *pcie)
> {
> struct platform_device *pdev = pcie->pdev;
>
> - pcie->cra_base = devm_platform_ioremap_resource_byname(pdev, "Cra");
> - if (IS_ERR(pcie->cra_base))
> - return PTR_ERR(pcie->cra_base);
> + if ((pcie->pcie_data->version == ALTERA_PCIE_V1) ||
> + (pcie->pcie_data->version == ALTERA_PCIE_V2)) {
> + pcie->cra_base =
> + devm_platform_ioremap_resource_byname(pdev, "Cra");
> + if (IS_ERR(pcie->cra_base))
> + return PTR_ERR(pcie->cra_base);
> + }
Should be a separate introductory patch since it's not directly
related to Agilex.
> - if (pcie->pcie_data->version == ALTERA_PCIE_V2) {
> + if (pcie->pcie_data->version == ALTERA_PCIE_V3) {
> + pcie->cs_base =
> + devm_platform_ioremap_resource_byname(pdev, "Cs");
> + if (IS_ERR(pcie->cs_base))
> + return PTR_ERR(pcie->cs_base);
> + of_property_read_u32(pcie->pdev->dev.of_node, "port_conf_stat",
> + &port_conf_off);
> + dev_info(&pcie->pdev->dev, "port_conf_stat_off =%x\n",
> + port_conf_off);
> + }
> +
> + if ((pcie->pcie_data->version == ALTERA_PCIE_V2) ||
> + (pcie->pcie_data->version == ALTERA_PCIE_V3)) {
Ditto.
> pcie->hip_base =
> devm_platform_ioremap_resource_byname(pdev, "Hip");
> if (IS_ERR(pcie->hip_base))
> @@ -708,7 +936,8 @@ static int altera_pcie_parse_dt(struct altera_pcie *pcie)
> if (pcie->irq < 0)
> return pcie->irq;
>
> - irq_set_chained_handler_and_data(pcie->irq, altera_pcie_isr, pcie);
> + irq_set_chained_handler_and_data(pcie->irq,
> + pcie->pcie_data->ops->rp_isr, pcie);
Ditto (including the new .rp_isr initializations below).
> @@ -721,6 +950,7 @@ static const struct altera_pcie_ops altera_pcie_ops_1_0 = {
> .tlp_read_pkt = tlp_read_packet,
> .tlp_write_pkt = tlp_write_packet,
> .get_link_status = altera_pcie_link_up,
> + .rp_isr = altera_pcie_isr,
> };
> @@ -793,11 +1045,17 @@ static int altera_pcie_probe(struct platform_device *pdev)
> return ret;
> }
>
> - /* clear all interrupts */
> - cra_writel(pcie, P2A_INT_STS_ALL, P2A_INT_STATUS);
> - /* enable all interrupts */
> - cra_writel(pcie, P2A_INT_ENA_ALL, P2A_INT_ENABLE);
> - altera_pcie_host_init(pcie);
> + if ((pcie->pcie_data->version == ALTERA_PCIE_V1) ||
> + (pcie->pcie_data->version == ALTERA_PCIE_V2)) {
> + /* clear all interrupts */
> + cra_writel(pcie, P2A_INT_STS_ALL, P2A_INT_STATUS);
> + /* enable all interrupts */
> + cra_writel(pcie, P2A_INT_ENA_ALL, P2A_INT_ENABLE);
> + altera_pcie_host_init(pcie);
Ditto.
> + } else if (pcie->pcie_data->version == ALTERA_PCIE_V3) {
> + writel(CFG_AER, (pcie->hip_base + port_conf_off
> + + AGLX_ROOT_PORT_IRQ_ENABLE));
> + }
>
> bridge->sysdata = pcie;
> bridge->busnr = pcie->root_bus_nr;
> --
> 2.34.1
>
next prev parent reply other threads:[~2023-06-16 15:21 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 [this message]
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
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=20230616152112.GA1534746@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.