Make the ITS code aware of fsl_mc devices by plumbing the devid
retrieval primitive.

Signed-off-by: Marc Zyngier <[email protected]>
---
 drivers/irqchip/irq-gic-its-msi-parent.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c 
b/drivers/irqchip/irq-gic-its-msi-parent.c
index 12f45228c8674..532c0d626ca04 100644
--- a/drivers/irqchip/irq-gic-its-msi-parent.c
+++ b/drivers/irqchip/irq-gic-its-msi-parent.c
@@ -7,6 +7,7 @@
 #include <linux/acpi_iort.h>
 #include <linux/of_address.h>
 #include <linux/pci.h>
+#include <linux/fsl/mc.h>
 
 #include "irq-gic-its-msi-parent.h"
 #include <linux/irqchip/irq-msi-lib.h>
@@ -186,9 +187,11 @@ static int its_pmsi_prepare(struct irq_domain *domain, 
struct device *dev,
 {
        struct msi_domain_info *msi_info;
        u32 dev_id;
-       int ret;
+       int ret = 0;
 
-       if (dev->of_node)
+       if (dev_is_fsl_mc(dev))
+               dev_id = fsl_mc_get_msi_id(dev);
+       else if (dev->of_node)
                ret = of_pmsi_get_msi_info(domain->parent, dev, &dev_id, NULL);
        else
                ret = iort_pmsi_get_dev_id(dev, &dev_id);
-- 
2.47.3


Reply via email to