From: jakeo@microsoft.com
To: gregkh@linuxfoundation.org, kys@microsoft.com,
linux-kernel@vger.kernel.org, devel@linuxdriverproject.org,
olaf@aepfle.de, apw@canonical.com, vkuznets@redhat.com,
linux-pci@vger.kernel.org, bhelgaas@google.com,
tglx@linutronix.de
Cc: Jake Oshins <jakeo@microsoft.com>
Subject: [PATCH v2 04/12] drivers:pci: Add IRQ domain lookup by PCI domain
Date: Fri, 11 Sep 2015 00:01:03 +0000 [thread overview]
Message-ID: <1441929670-10058-5-git-send-email-jakeo@microsoft.com> (raw)
In-Reply-To: <1441929670-10058-1-git-send-email-jakeo@microsoft.com>
From: Jake Oshins <jakeo@microsoft.com>
The PCI driver currently looks up IRQ domains for root PCI buses by walking
up the Open Firmware tree looking for any that cover this particular PCI root.
Since x86 PCs don't implement Open Firmware, this patch offers an alternative
lookup by the PCI domain ID (known as "segment" in the PCI and ACPI specs.)
I could have tried to build a (fake) Open Firmware tree and leverage the old
code, but I rejected that possibility both because it would have required
changes in lots of other places and because most distributions don't even
compile in the OF infrastructure when targeting PCs.
Signed-off-by: Jake Oshins <jakeo@microsoft.com>
---
drivers/pci/probe.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 0b2be17..e7e5ff3 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -12,6 +12,7 @@
#include <linux/module.h>
#include <linux/cpumask.h>
#include <linux/pci-aspm.h>
+#include <linux/irqdomain.h>
#include <asm-generic/pci-bridge.h>
#include "pci.h"
@@ -663,12 +664,22 @@ static void pci_set_bus_speed(struct pci_bus *bus)
static struct irq_domain *pci_host_bridge_msi_domain(struct pci_bus *bus)
{
struct irq_domain *d;
+ int pci_domain;
/*
* Any firmware interface that can resolve the msi_domain
* should be called from here.
*/
d = pci_host_bridge_of_msi_domain(bus);
+ if (d)
+ return d;
+
+ /*
+ * If firmware couldn't help find, it try looking it up by PCI
+ * domain/segment.
+ */
+ pci_domain = pci_domain_nr(bus);
+ d = irq_find_matching_host(NULL, DOMAIN_BUS_PCI_MSI, &pci_domain);
return d;
}
--
1.9.1
next prev parent reply other threads:[~2015-09-11 0:01 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-11 0:00 [PATCH v2 00/12] New paravirtual PCI front-end for Hyper-V VMs jakeo
2015-09-11 0:01 ` [PATCH v2 01/12] kernel:irq: Change signature of irq_domain_ops match() method, adding *bus_data jakeo
2015-09-11 0:01 ` [PATCH v2 02/12] kernel:irq: Change signature of irq_find_matching_host() jakeo
2015-09-11 0:01 ` [PATCH v2 03/12] kernel:irq: Allow for ranked matches on IRQ domains jakeo
2015-09-11 0:01 ` jakeo [this message]
2015-09-21 15:43 ` [PATCH v2 04/12] drivers:pci: Add IRQ domain lookup by PCI domain Bjorn Helgaas
2015-09-11 0:01 ` [PATCH v2 05/12] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num jakeo
2015-09-11 0:01 ` [PATCH v2 06/12] drivers:hv: Export do_hypercall() jakeo
2015-09-15 23:27 ` KY Srinivasan
2015-09-15 23:29 ` Jake Oshins
2015-09-11 0:01 ` [PATCH v2 07/12] drivers:x86:pci: Make it possible to implement a PCI MSI IRQ Domain in a module jakeo
2015-09-11 0:01 ` [PATCH v2 08/12] drivers:pci:msi: Store PCI domain (segment) as part of IRQ domain jakeo
2015-09-11 0:01 ` [PATCH v2 09/11] kernel:irq: Implement msi match function jakeo
2015-09-11 0:01 ` [PATCH v2 10/11] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through jakeo
2015-09-11 0:01 ` [PATCH v2 11/11] drivers:pci:hv: New paravirtual PCI front-end for Hyper-V VMs jakeo
2015-09-14 15:00 ` [PATCH v2 00/12] " Marc Zyngier
2015-09-14 17:59 ` Jake Oshins
2015-09-15 9:57 ` Marc Zyngier
2015-09-15 23:32 ` Jake Oshins
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=1441929670-10058-5-git-send-email-jakeo@microsoft.com \
--to=jakeo@microsoft.com \
--cc=apw@canonical.com \
--cc=bhelgaas@google.com \
--cc=devel@linuxdriverproject.org \
--cc=gregkh@linuxfoundation.org \
--cc=kys@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=olaf@aepfle.de \
--cc=tglx@linutronix.de \
--cc=vkuznets@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).