aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/irqdomain.h1
-rw-r--r--kernel/irq/irqdomain.c11
2 files changed, 9 insertions, 3 deletions
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index f64622ad02c1..04579d9fbce4 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -70,6 +70,7 @@ struct irq_fwspec {
70 */ 70 */
71enum irq_domain_bus_token { 71enum irq_domain_bus_token {
72 DOMAIN_BUS_ANY = 0, 72 DOMAIN_BUS_ANY = 0,
73 DOMAIN_BUS_WIRED,
73 DOMAIN_BUS_PCI_MSI, 74 DOMAIN_BUS_PCI_MSI,
74 DOMAIN_BUS_PLATFORM_MSI, 75 DOMAIN_BUS_PLATFORM_MSI,
75 DOMAIN_BUS_NEXUS, 76 DOMAIN_BUS_NEXUS,
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index 8cf95de1ab3f..d75179735a28 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -575,10 +575,15 @@ unsigned int irq_create_fwspec_mapping(struct irq_fwspec *fwspec)
575 unsigned int type = IRQ_TYPE_NONE; 575 unsigned int type = IRQ_TYPE_NONE;
576 int virq; 576 int virq;
577 577
578 if (fwspec->fwnode) 578 if (fwspec->fwnode) {
579 domain = irq_find_matching_fwnode(fwspec->fwnode, DOMAIN_BUS_ANY); 579 domain = irq_find_matching_fwnode(fwspec->fwnode,
580 else 580 DOMAIN_BUS_WIRED);
581 if (!domain)
582 domain = irq_find_matching_fwnode(fwspec->fwnode,
583 DOMAIN_BUS_ANY);
584 } else {
581 domain = irq_default_domain; 585 domain = irq_default_domain;
586 }
582 587
583 if (!domain) { 588 if (!domain) {
584 pr_warn("no irq domain found for %s !\n", 589 pr_warn("no irq domain found for %s !\n",