summaryrefslogtreecommitdiffstats
path: root/drivers/of
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2015-09-18 15:07:40 +0200
committerMarc Zyngier <marc.zyngier@arm.com>2015-10-16 14:07:13 +0200
commit61c08240a103000b75dcf7ef2cf03d552aa91fa3 (patch)
tree0cf570c5c4806a04ecc78279e63c559d5964fb3a /drivers/of
parentof/irq: Add support code for multi-parent version of "msi-parent" (diff)
downloadlinux-61c08240a103000b75dcf7ef2cf03d552aa91fa3.tar.xz
linux-61c08240a103000b75dcf7ef2cf03d552aa91fa3.zip
of/irq: Use of_msi_get_domain instead of open-coded "msi-parent" parsing
Now that we have a function that implements the complexity of the "msi-parent" property parsing, switch to that. Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'drivers/of')
-rw-r--r--drivers/of/irq.c31
1 files changed, 11 insertions, 20 deletions
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 62cfdc2c86ac..89ebc612293d 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -580,26 +580,6 @@ err:
}
/**
- * of_msi_configure - Set the msi_domain field of a device
- * @dev: device structure to associate with an MSI irq domain
- * @np: device node for that device
- */
-void of_msi_configure(struct device *dev, struct device_node *np)
-{
- struct device_node *msi_np;
- struct irq_domain *d;
-
- msi_np = of_parse_phandle(np, "msi-parent", 0);
- if (!msi_np)
- return;
-
- d = irq_find_matching_host(msi_np, DOMAIN_BUS_PLATFORM_MSI);
- if (!d)
- d = irq_find_host(msi_np);
- dev_set_msi_domain(dev, d);
-}
-
-/**
* of_msi_map_rid - Map a MSI requester ID for a device.
* @dev: device for which the mapping is to be done.
* @msi_np: device node of the expected msi controller.
@@ -741,3 +721,14 @@ struct irq_domain *of_msi_get_domain(struct device *dev,
return NULL;
}
+
+/**
+ * of_msi_configure - Set the msi_domain field of a device
+ * @dev: device structure to associate with an MSI irq domain
+ * @np: device node for that device
+ */
+void of_msi_configure(struct device *dev, struct device_node *np)
+{
+ dev_set_msi_domain(dev,
+ of_msi_get_domain(dev, np, DOMAIN_BUS_PLATFORM_MSI));
+}