summaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/irq-ls-scfg-msi.c
diff options
context:
space:
mode:
authorLaurentiu Tudor <laurentiu.tudor@nxp.com>2018-06-05 08:27:27 -0400
committerThomas Gleixner <tglx@linutronix.de>2018-06-06 06:05:19 -0400
commit0cdd431c337e99177e68597f3de34bedd3a20a74 (patch)
tree9b83946c1810d08cf3cb43c530f017bcb060db6e /drivers/irqchip/irq-ls-scfg-msi.c
parenta84277bf3efcc7bb5b5a5eec62de5c134cb47ee5 (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.c3
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
99static int ls_scfg_msi_set_affinity(struct irq_data *irq_data, 102static int ls_scfg_msi_set_affinity(struct irq_data *irq_data,