aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-06-10 12:00:13 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2018-06-10 12:00:13 -0400
commit9f3fbe852a510fbc0782f71e3b767418ed809cf4 (patch)
treef05559bf784d614630f6729ea318b6775d95718f
parenta8a4021b776b4475e8a4657185a718cdfc07b88c (diff)
parent0cdd431c337e99177e68597f3de34bedd3a20a74 (diff)
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fixes from Thomas Gleixner: "Two small fixlets: - Add the missing iomu mapping call in the Freescale/NXP/Qualcomm/ whoever owns it now/ SCFG MSI irqchip driver. Otherwise IRQs wont work at all. - Fix a SMP=n build warning in the STM32 irq chip driver" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/ls-scfg-msi: Map MSIs in the iommu irqchip/stm32: Fix non-SMP build warning
-rw-r--r--drivers/irqchip/irq-ls-scfg-msi.c3
-rw-r--r--drivers/irqchip/irq-stm32-exti.c4
2 files changed, 4 insertions, 3 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,
diff --git a/drivers/irqchip/irq-stm32-exti.c b/drivers/irqchip/irq-stm32-exti.c
index 5089c1e2838d..3a7e8905a97e 100644
--- a/drivers/irqchip/irq-stm32-exti.c
+++ b/drivers/irqchip/irq-stm32-exti.c
@@ -552,9 +552,7 @@ static struct irq_chip stm32_exti_h_chip = {
552 .irq_set_type = stm32_exti_h_set_type, 552 .irq_set_type = stm32_exti_h_set_type,
553 .irq_set_wake = stm32_exti_h_set_wake, 553 .irq_set_wake = stm32_exti_h_set_wake,
554 .flags = IRQCHIP_MASK_ON_SUSPEND, 554 .flags = IRQCHIP_MASK_ON_SUSPEND,
555#ifdef CONFIG_SMP 555 .irq_set_affinity = IS_ENABLED(CONFIG_SMP) ? stm32_exti_h_set_affinity : NULL,
556 .irq_set_affinity = stm32_exti_h_set_affinity,
557#endif
558}; 556};
559 557
560static int stm32_exti_h_domain_alloc(struct irq_domain *dm, 558static int stm32_exti_h_domain_alloc(struct irq_domain *dm,