diff options
author | Laurentiu Tudor <laurentiu.tudor@nxp.com> | 2018-06-05 08:27:27 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2018-06-06 06:05:19 -0400 |
commit | 0cdd431c337e99177e68597f3de34bedd3a20a74 (patch) | |
tree | 9b83946c1810d08cf3cb43c530f017bcb060db6e /drivers/irqchip/irq-ls-scfg-msi.c | |
parent | a84277bf3efcc7bb5b5a5eec62de5c134cb47ee5 (diff) |
irqchip/ls-scfg-msi: Map MSIs in the iommu
Add the required iommu_dma_map_msi_msg() when composing the MSI message,
otherwise the interrupts will not work.
Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: jason@lakedaemon.net
Cc: marc.zyngier@arm.com
Cc: zhiqiang.hou@nxp.com
Cc: minghuan.lian@nxp.com
Link: https://lkml.kernel.org/r/20180605122727.12831-1-laurentiu.tudor@nxp.com
Diffstat (limited to 'drivers/irqchip/irq-ls-scfg-msi.c')
-rw-r--r-- | drivers/irqchip/irq-ls-scfg-msi.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/irqchip/irq-ls-scfg-msi.c b/drivers/irqchip/irq-ls-scfg-msi.c index 57e3d900f19e..1ec3bfe56693 100644 --- a/drivers/irqchip/irq-ls-scfg-msi.c +++ b/drivers/irqchip/irq-ls-scfg-msi.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/of_pci.h> | 21 | #include <linux/of_pci.h> |
22 | #include <linux/of_platform.h> | 22 | #include <linux/of_platform.h> |
23 | #include <linux/spinlock.h> | 23 | #include <linux/spinlock.h> |
24 | #include <linux/dma-iommu.h> | ||
24 | 25 | ||
25 | #define MSI_IRQS_PER_MSIR 32 | 26 | #define MSI_IRQS_PER_MSIR 32 |
26 | #define MSI_MSIR_OFFSET 4 | 27 | #define MSI_MSIR_OFFSET 4 |
@@ -94,6 +95,8 @@ static void ls_scfg_msi_compose_msg(struct irq_data *data, struct msi_msg *msg) | |||
94 | 95 | ||
95 | if (msi_affinity_flag) | 96 | if (msi_affinity_flag) |
96 | msg->data |= cpumask_first(data->common->affinity); | 97 | msg->data |= cpumask_first(data->common->affinity); |
98 | |||
99 | iommu_dma_map_msi_msg(data->irq, msg); | ||
97 | } | 100 | } |
98 | 101 | ||
99 | static int ls_scfg_msi_set_affinity(struct irq_data *irq_data, | 102 | static int ls_scfg_msi_set_affinity(struct irq_data *irq_data, |