All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Rob Herring <robh@kernel.org>
Cc: "Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
	"Jonathan Hunter" <jonathanh@nvidia.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Tiezhu Yang" <yangtiezhu@loongson.cn>,
	"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
	"Huacai Chen" <chenhuacai@kernel.org>,
	"Ray Jui" <rjui@broadcom.com>,
	"Scott Branden" <sbranden@broadcom.com>,
	bcm-kernel-feedback-list@broadcom.com,
	linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: Re: [PATCH 19/19] PCI: Set bridge map_irq and swizzle_irq to default functions
Date: Tue, 11 Jan 2022 15:46:08 -0600	[thread overview]
Message-ID: <20220111214608.GA169999@bhelgaas> (raw)
In-Reply-To: <20200722022514.1283916-20-robh@kernel.org>

[-cc many, +cc iproc, loongson, tegra maintainers]

On Tue, Jul 21, 2020 at 08:25:14PM -0600, Rob Herring wrote:
> The majority of DT based host drivers use the default .map_irq() and
> .swizzle_irq() functions, so let's initialize the function pointers to
> the default and drop setting them in the host drivers.
> 
> Drivers like iProc which don't support legacy interrupts need to set
> .map_irq() back to NULL.

Probably a dumb question...

This patch removed all the ->swizzle_irq users in drivers/pci/, which
is great -- IIUC swizzling is specified by the PCI-to-PCI Bridge Spec,
r1.2, sec 9.1, and should not be device-specific.  I assume the few
remaining arch/ users (arm and alpha) are either bugs or workarounds
for broken devices.

My question is why we still have a few users of ->map_irq: loongson,
tegra, iproc.  Shouldn't this mapping be described somehow via DT?

> diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pci-tegra.c
> index fc4e38fec928..97433beff6cf 100644
> --- a/drivers/pci/controller/pci-tegra.c
> +++ b/drivers/pci/controller/pci-tegra.c
> @@ -2709,7 +2709,6 @@ static int tegra_pcie_probe(struct platform_device *pdev)
>  
>  	host->ops = &tegra_pcie_ops;
>  	host->map_irq = tegra_pcie_map_irq;
> -	host->swizzle_irq = pci_common_swizzle;
>  
>  	err = pci_host_probe(host);
>  	if (err < 0) {

> diff --git a/drivers/pci/controller/pcie-iproc-platform.c b/drivers/pci/controller/pcie-iproc-platform.c
> index 7c10c1cb6f65..a956b0c18bd1 100644
> --- a/drivers/pci/controller/pcie-iproc-platform.c
> +++ b/drivers/pci/controller/pcie-iproc-platform.c
> @@ -99,9 +99,10 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev)
>  	switch (pcie->type) {
>  	case IPROC_PCIE_PAXC:
>  	case IPROC_PCIE_PAXC_V2:
> +		pcie->map_irq = 0;
>  		break;
>  	default:
> -		pcie->map_irq = of_irq_parse_and_map_pci;
> +		break;
>  	}
>  
>  	ret = iproc_pcie_setup(pcie, &bridge->windows);

> diff --git a/drivers/pci/controller/pcie-iproc.c b/drivers/pci/controller/pcie-iproc.c
> index e98dafd0fff4..905e93808243 100644
> --- a/drivers/pci/controller/pcie-iproc.c
> +++ b/drivers/pci/controller/pcie-iproc.c
> @@ -1526,7 +1526,6 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res)
>  	host->ops = &iproc_pcie_ops;
>  	host->sysdata = pcie;
>  	host->map_irq = pcie->map_irq;
> -	host->swizzle_irq = pci_common_swizzle;
>  
>  	ret = pci_host_probe(host);
>  	if (ret < 0) {

drivers/pci/controller/pci-loongson.c:

  static int loongson_pci_probe(struct platform_device *pdev)
  {
    ...
    bridge->map_irq = loongson_map_irq;


WARNING: multiple messages have this Message-ID (diff)
From: Bjorn Helgaas <helgaas@kernel.org>
To: Rob Herring <robh@kernel.org>
Cc: "Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
	"Jonathan Hunter" <jonathanh@nvidia.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Tiezhu Yang" <yangtiezhu@loongson.cn>,
	"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
	"Huacai Chen" <chenhuacai@kernel.org>,
	"Ray Jui" <rjui@broadcom.com>,
	"Scott Branden" <sbranden@broadcom.com>,
	bcm-kernel-feedback-list@broadcom.com,
	linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org,
	linux-tegra@vger.kernel.org
Subject: Re: [PATCH 19/19] PCI: Set bridge map_irq and swizzle_irq to default functions
Date: Tue, 11 Jan 2022 15:46:08 -0600	[thread overview]
Message-ID: <20220111214608.GA169999@bhelgaas> (raw)
In-Reply-To: <20200722022514.1283916-20-robh@kernel.org>

[-cc many, +cc iproc, loongson, tegra maintainers]

On Tue, Jul 21, 2020 at 08:25:14PM -0600, Rob Herring wrote:
> The majority of DT based host drivers use the default .map_irq() and
> .swizzle_irq() functions, so let's initialize the function pointers to
> the default and drop setting them in the host drivers.
> 
> Drivers like iProc which don't support legacy interrupts need to set
> .map_irq() back to NULL.

Probably a dumb question...

This patch removed all the ->swizzle_irq users in drivers/pci/, which
is great -- IIUC swizzling is specified by the PCI-to-PCI Bridge Spec,
r1.2, sec 9.1, and should not be device-specific.  I assume the few
remaining arch/ users (arm and alpha) are either bugs or workarounds
for broken devices.

My question is why we still have a few users of ->map_irq: loongson,
tegra, iproc.  Shouldn't this mapping be described somehow via DT?

> diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pci-tegra.c
> index fc4e38fec928..97433beff6cf 100644
> --- a/drivers/pci/controller/pci-tegra.c
> +++ b/drivers/pci/controller/pci-tegra.c
> @@ -2709,7 +2709,6 @@ static int tegra_pcie_probe(struct platform_device *pdev)
>  
>  	host->ops = &tegra_pcie_ops;
>  	host->map_irq = tegra_pcie_map_irq;
> -	host->swizzle_irq = pci_common_swizzle;
>  
>  	err = pci_host_probe(host);
>  	if (err < 0) {

> diff --git a/drivers/pci/controller/pcie-iproc-platform.c b/drivers/pci/controller/pcie-iproc-platform.c
> index 7c10c1cb6f65..a956b0c18bd1 100644
> --- a/drivers/pci/controller/pcie-iproc-platform.c
> +++ b/drivers/pci/controller/pcie-iproc-platform.c
> @@ -99,9 +99,10 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev)
>  	switch (pcie->type) {
>  	case IPROC_PCIE_PAXC:
>  	case IPROC_PCIE_PAXC_V2:
> +		pcie->map_irq = 0;
>  		break;
>  	default:
> -		pcie->map_irq = of_irq_parse_and_map_pci;
> +		break;
>  	}
>  
>  	ret = iproc_pcie_setup(pcie, &bridge->windows);

> diff --git a/drivers/pci/controller/pcie-iproc.c b/drivers/pci/controller/pcie-iproc.c
> index e98dafd0fff4..905e93808243 100644
> --- a/drivers/pci/controller/pcie-iproc.c
> +++ b/drivers/pci/controller/pcie-iproc.c
> @@ -1526,7 +1526,6 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res)
>  	host->ops = &iproc_pcie_ops;
>  	host->sysdata = pcie;
>  	host->map_irq = pcie->map_irq;
> -	host->swizzle_irq = pci_common_swizzle;
>  
>  	ret = pci_host_probe(host);
>  	if (ret < 0) {

drivers/pci/controller/pci-loongson.c:

  static int loongson_pci_probe(struct platform_device *pdev)
  {
    ...
    bridge->map_irq = loongson_map_irq;


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-01-11 21:46 UTC|newest]

Thread overview: 128+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-22  2:24 [PATCH 00/19] PCI: Another round of host clean-ups Rob Herring
2020-07-22  2:24 ` Rob Herring
2020-07-22  2:24 ` Rob Herring
2020-07-22  2:24 ` Rob Herring
2020-07-22  2:24 ` [PATCH 01/19] PCI: versatile: Drop flag PCI_ENABLE_PROC_DOMAINS Rob Herring
2020-07-22  2:24   ` Rob Herring
2020-07-22  2:24   ` Rob Herring
2020-07-22  2:24   ` Rob Herring
2020-07-22  2:24 ` [PATCH 02/19] PCI: Set default bridge parent device Rob Herring
2020-07-22  2:24   ` Rob Herring
2020-07-22  2:24   ` Rob Herring
2020-07-22  2:24   ` Rob Herring
2020-07-22  2:24 ` [PATCH 03/19] PCI: Drop unnecessary zeroing of bridge fields Rob Herring
2020-07-22  2:24   ` Rob Herring
2020-07-22  2:24   ` Rob Herring
2020-07-22  2:24   ` Rob Herring
2020-07-22  2:24 ` [PATCH 04/19] PCI: aardvark: Use pci_is_root_bus() to check if bus is root bus Rob Herring
2020-07-22  2:24   ` Rob Herring
2020-07-22  2:24   ` Rob Herring
2020-07-22  2:24   ` Rob Herring
2020-07-22  2:25 ` [PATCH 05/19] PCI: designware: " Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25 ` [PATCH 06/19] PCI: mobiveil: " Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25 ` [PATCH 07/19] PCI: xilinx-nwl: " Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25 ` [PATCH 08/19] PCI: xilinx: " Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25 ` [PATCH 09/19] PCI: rockchip: " Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25 ` [PATCH 10/19] PCI: rcar: " Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25 ` [PATCH 11/19] PCI: Move setting pci_host_bridge.busnr out of host drivers Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-23 15:26   ` Rob Herring
2020-07-23 15:26     ` Rob Herring
2020-07-23 15:26     ` Rob Herring
2020-07-23 15:26     ` Rob Herring
2020-07-23 16:21     ` Lorenzo Pieralisi
2020-07-23 16:21       ` Lorenzo Pieralisi
2020-07-23 16:21       ` Lorenzo Pieralisi
2020-07-23 16:21       ` Lorenzo Pieralisi
2020-07-23 16:55       ` Rob Herring
2020-07-23 16:55         ` Rob Herring
2020-07-23 16:55         ` Rob Herring
2020-07-23 16:55         ` Rob Herring
2020-07-22  2:25 ` [PATCH 12/19] PCI: cadence: Use bridge resources for outbound window setup Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25 ` [PATCH 13/19] PCI: cadence: Remove private bus number and range storage Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25 ` [PATCH 14/19] PCI: rcar: Use devm_pci_alloc_host_bridge() Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25 ` [PATCH 15/19] PCI: rcar: Use struct pci_host_bridge.windows list directly Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25 ` [PATCH 16/19] PCI: of: Reduce missing non-prefetchable memory region to a warning Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25 ` [PATCH 17/19] PCI: rcar-gen2: Convert to use modern host bridge probe functions Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-08-04 12:12   ` Geert Uytterhoeven
2020-08-04 12:12     ` Geert Uytterhoeven
2020-08-04 12:12     ` Geert Uytterhoeven
2020-08-04 12:12     ` Geert Uytterhoeven
2020-08-04 15:13     ` Rob Herring
2020-08-04 15:13       ` Rob Herring
2020-08-04 15:13       ` Rob Herring
2020-08-04 15:13       ` Rob Herring
2020-07-22  2:25 ` [PATCH 18/19] PCI: Move DT resource setup into devm_pci_alloc_host_bridge() Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25 ` [PATCH 19/19] PCI: Set bridge map_irq and swizzle_irq to default functions Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2020-07-22  2:25   ` Rob Herring
2022-01-11 21:46   ` Bjorn Helgaas [this message]
2022-01-11 21:46     ` Bjorn Helgaas
2022-01-12 12:57     ` Jiaxun Yang
2022-01-12 12:57       ` Jiaxun Yang
2022-01-12 15:19       ` Bjorn Helgaas
2022-01-12 15:19         ` Bjorn Helgaas
2022-01-12 20:08         ` Jiaxun Yang
2022-01-12 20:08           ` Jiaxun Yang
2022-01-12 21:10           ` Bjorn Helgaas
2022-01-12 21:10             ` Bjorn Helgaas
2022-01-13 17:44             ` Jiaxun Yang
2022-01-13 17:44               ` Jiaxun Yang
2022-01-12 15:09     ` Rob Herring
2022-01-12 15:09       ` Rob Herring
2022-01-12 15:32       ` Bjorn Helgaas
2022-01-12 15:32         ` Bjorn Helgaas
2022-01-29 22:34     ` Maciej W. Rozycki
2022-01-29 22:34       ` Maciej W. Rozycki
2020-07-22 21:06 ` [PATCH 00/19] PCI: Another round of host clean-ups Bjorn Helgaas
2020-07-22 21:06   ` Bjorn Helgaas
2020-07-22 21:06   ` Bjorn Helgaas
2020-07-22 21:06   ` Bjorn Helgaas
2020-07-23 10:39 ` Lorenzo Pieralisi
2020-07-23 10:39   ` Lorenzo Pieralisi
2020-07-23 10:39   ` Lorenzo Pieralisi
2020-07-23 10:39   ` Lorenzo Pieralisi
2020-07-23 23:01   ` Bjorn Helgaas
2020-07-24 15:55     ` Rob Herring

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=20220111214608.GA169999@bhelgaas \
    --to=helgaas@kernel.org \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=chenhuacai@kernel.org \
    --cc=jiaxun.yang@flygoat.com \
    --cc=jonathanh@nvidia.com \
    --cc=kw@linux.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=rjui@broadcom.com \
    --cc=robh@kernel.org \
    --cc=sbranden@broadcom.com \
    --cc=thierry.reding@gmail.com \
    --cc=yangtiezhu@loongson.cn \
    /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.