All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Tomasz Nowicki <tn@semihalf.com>
Cc: marc.zyngier@arm.com, tglx@linutronix.de, jason@lakedaemon.net,
	rjw@rjwysocki.net, bhelgaas@google.com,
	lorenzo.pieralisi@arm.com, robert.richter@caviumnetworks.com,
	shijie.huang@arm.com, Suravee.Suthikulpanit@amd.com,
	hanjun.guo@linaro.org, al.stone@linaro.org,
	graeme.gregory@linaro.org, Catalin.Marinas@arm.com,
	will.deacon@arm.com, linux-kernel@vger.kernel.org,
	okaya@codeaurora.org, linux-acpi@vger.kernel.org,
	ddaney.cavm@gmail.com, linux-pci@vger.kernel.org,
	mw@semihalf.com, andrea.gallo@linaro.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH V7 3/8] PCI/MSI: Setup MSI domain on a per-device basis using IORT ACPI table
Date: Tue, 19 Jul 2016 16:42:27 -0500	[thread overview]
Message-ID: <20160719214227.GB18635@localhost> (raw)
In-Reply-To: <1466420541-20101-4-git-send-email-tn@semihalf.com>

On Mon, Jun 20, 2016 at 01:02:16PM +0200, Tomasz Nowicki wrote:
> It is possible to provide information about which MSI controller to
> use on a per-device basis for DT. This patch supply this with ACPI support.
> 
> Currently, IORT is the only one ACPI table which can provide such mapping.
> In order to plug IORT into MSI infrastructure we are adding ACPI
> equivalents for finding PCI device domain and its RID translation
> (pci_msi_domain_get_msi_rid and pci_msi_domain_get_msi_rid calls).
> 
> Signed-off-by: Tomasz Nowicki <tn@semihalf.com>
> Acked-by: Marc Zyngier <marc.zyngier@arm.com>

Acked-by: Bjorn Helgaas <bhelgaas@google.com>

I assume this will be merged along with the rest of the series via
some non-PCI tree.

> ---
>  drivers/pci/msi.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> index a080f44..1d45e81 100644
> --- a/drivers/pci/msi.c
> +++ b/drivers/pci/msi.c
> @@ -18,6 +18,7 @@
>  #include <linux/smp.h>
>  #include <linux/errno.h>
>  #include <linux/io.h>
> +#include <linux/iort.h>
>  #include <linux/slab.h>
>  #include <linux/irqdomain.h>
>  #include <linux/of_irq.h>
> @@ -1364,8 +1365,8 @@ u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
>  	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
>  
>  	of_node = irq_domain_get_of_node(domain);
> -	if (of_node)
> -		rid = of_msi_map_rid(&pdev->dev, of_node, rid);
> +	rid = of_node ? of_msi_map_rid(&pdev->dev, of_node, rid) :
> +			iort_msi_map_rid(&pdev->dev, rid);
>  
>  	return rid;
>  }
> @@ -1381,9 +1382,13 @@ u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
>   */
>  struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
>  {
> +	struct irq_domain *dom;
>  	u32 rid = 0;
>  
>  	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
> -	return of_msi_map_get_device_domain(&pdev->dev, rid);
> +	dom = of_msi_map_get_device_domain(&pdev->dev, rid);
> +	if (!dom)
> +		dom = iort_get_device_domain(&pdev->dev, rid);
> +	return dom;
>  }
>  #endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
> -- 
> 1.9.1
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: helgaas@kernel.org (Bjorn Helgaas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V7 3/8] PCI/MSI: Setup MSI domain on a per-device basis using IORT ACPI table
Date: Tue, 19 Jul 2016 16:42:27 -0500	[thread overview]
Message-ID: <20160719214227.GB18635@localhost> (raw)
In-Reply-To: <1466420541-20101-4-git-send-email-tn@semihalf.com>

On Mon, Jun 20, 2016 at 01:02:16PM +0200, Tomasz Nowicki wrote:
> It is possible to provide information about which MSI controller to
> use on a per-device basis for DT. This patch supply this with ACPI support.
> 
> Currently, IORT is the only one ACPI table which can provide such mapping.
> In order to plug IORT into MSI infrastructure we are adding ACPI
> equivalents for finding PCI device domain and its RID translation
> (pci_msi_domain_get_msi_rid and pci_msi_domain_get_msi_rid calls).
> 
> Signed-off-by: Tomasz Nowicki <tn@semihalf.com>
> Acked-by: Marc Zyngier <marc.zyngier@arm.com>

Acked-by: Bjorn Helgaas <bhelgaas@google.com>

I assume this will be merged along with the rest of the series via
some non-PCI tree.

> ---
>  drivers/pci/msi.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> index a080f44..1d45e81 100644
> --- a/drivers/pci/msi.c
> +++ b/drivers/pci/msi.c
> @@ -18,6 +18,7 @@
>  #include <linux/smp.h>
>  #include <linux/errno.h>
>  #include <linux/io.h>
> +#include <linux/iort.h>
>  #include <linux/slab.h>
>  #include <linux/irqdomain.h>
>  #include <linux/of_irq.h>
> @@ -1364,8 +1365,8 @@ u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
>  	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
>  
>  	of_node = irq_domain_get_of_node(domain);
> -	if (of_node)
> -		rid = of_msi_map_rid(&pdev->dev, of_node, rid);
> +	rid = of_node ? of_msi_map_rid(&pdev->dev, of_node, rid) :
> +			iort_msi_map_rid(&pdev->dev, rid);
>  
>  	return rid;
>  }
> @@ -1381,9 +1382,13 @@ u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev)
>   */
>  struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
>  {
> +	struct irq_domain *dom;
>  	u32 rid = 0;
>  
>  	pci_for_each_dma_alias(pdev, get_msi_id_cb, &rid);
> -	return of_msi_map_get_device_domain(&pdev->dev, rid);
> +	dom = of_msi_map_get_device_domain(&pdev->dev, rid);
> +	if (!dom)
> +		dom = iort_get_device_domain(&pdev->dev, rid);
> +	return dom;
>  }
>  #endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
> -- 
> 1.9.1
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2016-07-19 21:42 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-20 11:02 [PATCH V7 0/8] Introduce ACPI world to ITS irqchip Tomasz Nowicki
2016-06-20 11:02 ` Tomasz Nowicki
2016-06-20 11:02 ` Tomasz Nowicki
2016-06-20 11:02 ` [PATCH V7 1/8] ACPI: I/O Remapping Table (IORT) initial support Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-21  7:12   ` Hanjun Guo
2016-06-21  7:12     ` Hanjun Guo
2016-06-21  7:12     ` Hanjun Guo
2016-06-21  7:12     ` Hanjun Guo
2016-06-22 10:50     ` Marc Zyngier
2016-06-22 10:50       ` Marc Zyngier
2016-06-22 11:06       ` Tomasz Nowicki
2016-06-22 11:06         ` Tomasz Nowicki
2016-06-22 12:03         ` Marc Zyngier
2016-06-22 12:03           ` Marc Zyngier
2016-06-21 11:23   ` Lorenzo Pieralisi
2016-06-21 11:23     ` Lorenzo Pieralisi
2016-06-21 17:36   ` Lorenzo Pieralisi
2016-06-21 17:36     ` Lorenzo Pieralisi
2016-06-22 12:35   ` Tomasz Nowicki
2016-06-22 12:35     ` Tomasz Nowicki
2016-06-22 12:35     ` Tomasz Nowicki
2016-06-22 12:40     ` Tomasz Nowicki
2016-06-22 12:40       ` Tomasz Nowicki
2016-06-22 12:40       ` Tomasz Nowicki
2016-06-22 12:40       ` Tomasz Nowicki
2016-06-22 13:25     ` Marc Zyngier
2016-06-22 13:25       ` Marc Zyngier
2016-06-22 13:52       ` Tomasz Nowicki
2016-06-22 13:52         ` Tomasz Nowicki
2016-06-22 13:52         ` Tomasz Nowicki
2016-06-22 14:51         ` Marc Zyngier
2016-06-22 14:51           ` Marc Zyngier
2016-06-23  1:34           ` Hanjun Guo
2016-06-23  1:34             ` Hanjun Guo
2016-06-23  1:34             ` Hanjun Guo
2016-07-26 13:19             ` Christopher Covington
2016-07-26 13:19               ` Christopher Covington
2016-07-26 13:19               ` Christopher Covington
2016-07-26 14:48               ` Marc Zyngier
2016-07-26 14:48                 ` Marc Zyngier
2016-07-26 14:48                 ` Marc Zyngier
2016-06-20 11:02 ` [PATCH V7 2/8] ACPI: Add new IORT functions to support MSI domain handling Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-21  7:28   ` Hanjun Guo
2016-06-21  7:28     ` Hanjun Guo
2016-06-20 11:02 ` [PATCH V7 3/8] PCI/MSI: Setup MSI domain on a per-device basis using IORT ACPI table Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-21  7:33   ` Hanjun Guo
2016-06-21  7:33     ` Hanjun Guo
2016-07-19 21:42   ` Bjorn Helgaas [this message]
2016-07-19 21:42     ` Bjorn Helgaas
2016-06-20 11:02 ` [PATCH V7 4/8] irqchip/gicv3-its: Cleanup for ITS domain initialization Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-21  7:44   ` Hanjun Guo
2016-06-21  7:44     ` Hanjun Guo
2016-06-21  7:44     ` Hanjun Guo
2016-06-21  7:44     ` Hanjun Guo
2016-06-20 11:02 ` [PATCH V7 5/8] irqchip/gicv3-its: Refactor ITS DT init code to prepare for ACPI Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-20 11:02 ` [PATCH V7 6/8] irqchip/gicv3-its: Probe ITS in the ACPI way Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-21  8:03   ` Hanjun Guo
2016-06-21  8:03     ` Hanjun Guo
2016-06-21  8:03     ` Hanjun Guo
2016-06-20 11:02 ` [PATCH V7 7/8] irqchip/gicv3-its: Factor out code that might be reused for ACPI Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-20 11:02 ` [PATCH V7 8/8] irqchip/gicv3-its: Use MADT ITS subtable to do PCI/MSI domain initialization Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-20 11:02   ` Tomasz Nowicki
2016-06-21  8:19   ` Hanjun Guo
2016-06-21  8:19     ` Hanjun Guo
2016-06-21  8:19     ` Hanjun Guo
2016-06-21  8:19     ` Hanjun Guo
2016-06-20 17:31 ` [PATCH V7 0/8] Introduce ACPI world to ITS irqchip Shanker Donthineni
2016-06-20 17:31   ` Shanker Donthineni
2016-06-20 17:31   ` Shanker Donthineni
2016-06-24 11:04 ` Tomasz Nowicki
2016-06-24 11:04   ` Tomasz Nowicki
2016-08-09 10:45 ` Robert Richter
2016-08-09 10:45   ` Robert Richter
2016-08-09 10:45   ` Robert Richter
2016-08-09 10:45   ` Robert Richter

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=20160719214227.GB18635@localhost \
    --to=helgaas@kernel.org \
    --cc=Catalin.Marinas@arm.com \
    --cc=Suravee.Suthikulpanit@amd.com \
    --cc=al.stone@linaro.org \
    --cc=andrea.gallo@linaro.org \
    --cc=bhelgaas@google.com \
    --cc=ddaney.cavm@gmail.com \
    --cc=graeme.gregory@linaro.org \
    --cc=hanjun.guo@linaro.org \
    --cc=jason@lakedaemon.net \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=marc.zyngier@arm.com \
    --cc=mw@semihalf.com \
    --cc=okaya@codeaurora.org \
    --cc=rjw@rjwysocki.net \
    --cc=robert.richter@caviumnetworks.com \
    --cc=shijie.huang@arm.com \
    --cc=tglx@linutronix.de \
    --cc=tn@semihalf.com \
    --cc=will.deacon@arm.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.