summaryrefslogtreecommitdiffstats
path: root/arch/blackfin
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-09-01 17:33:35 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-09-01 17:33:35 -0400
commit17e6b00ac422b49d44a0b8d98402a211f726282d (patch)
treec7e9143030d20625a0bd94e12ddaf9421890c375 /arch/blackfin
parent5e359bf2219d8622eb0931701e45af55db323228 (diff)
parente324c4dc4a5991d5b1171f434884a4026345e4b4 (diff)
Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq updates from Thomas Gleixner: "This updated pull request does not contain the last few GIC related patches which were reported to cause a regression. There is a fix available, but I let it breed for a couple of days first. The irq departement provides: - new infrastructure to support non PCI based MSI interrupts - a couple of new irq chip drivers - the usual pile of fixlets and updates to irq chip drivers - preparatory changes for removal of the irq argument from interrupt flow handlers - preparatory changes to remove IRQF_VALID" * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (129 commits) irqchip/imx-gpcv2: IMX GPCv2 driver for wakeup sources irqchip: Add bcm2836 interrupt controller for Raspberry Pi 2 irqchip: Add documentation for the bcm2836 interrupt controller irqchip/bcm2835: Add support for being used as a second level controller irqchip/bcm2835: Refactor handle_IRQ() calls out of MAKE_HWIRQ PCI: xilinx: Fix typo in function name irqchip/gic: Ensure gic_cpu_if_up/down() programs correct GIC instance irqchip/gic: Only allow the primary GIC to set the CPU map PCI/MSI: pci-xgene-msi: Consolidate chained IRQ handler install/remove unicore32/irq: Prepare puv3_gpio_handler for irq argument removal tile/pci_gx: Prepare trio_handle_level_irq for irq argument removal m68k/irq: Prepare irq handlers for irq argument removal C6X/megamode-pic: Prepare megamod_irq_cascade for irq argument removal blackfin: Prepare irq handlers for irq argument removal arc/irq: Prepare idu_cascade_isr for irq argument removal sparc/irq: Use access helper irq_data_get_affinity_mask() sparc/irq: Use helper irq_data_get_irq_handler_data() parisc/irq: Use access helper irq_data_get_affinity_mask() mn10300/irq: Use access helper irq_data_get_affinity_mask() irqchip/i8259: Prepare i8259_irq_dispatch for irq argument removal ...
Diffstat (limited to 'arch/blackfin')
-rw-r--r--arch/blackfin/mach-bf537/ints-priority.c4
-rw-r--r--arch/blackfin/mach-common/ints-priority.c15
2 files changed, 11 insertions, 8 deletions
diff --git a/arch/blackfin/mach-bf537/ints-priority.c b/arch/blackfin/mach-bf537/ints-priority.c
index 2137a209a22b..14b2f74554dc 100644
--- a/arch/blackfin/mach-bf537/ints-priority.c
+++ b/arch/blackfin/mach-bf537/ints-priority.c
@@ -182,9 +182,11 @@ static struct irq_chip bf537_mac_rx_irqchip = {
182 .irq_unmask = bf537_mac_rx_unmask_irq, 182 .irq_unmask = bf537_mac_rx_unmask_irq,
183}; 183};
184 184
185static void bf537_demux_mac_rx_irq(unsigned int int_irq, 185static void bf537_demux_mac_rx_irq(unsigned int __int_irq,
186 struct irq_desc *desc) 186 struct irq_desc *desc)
187{ 187{
188 unsigned int int_irq = irq_desc_get_irq(desc);
189
188 if (bfin_read_DMA1_IRQ_STATUS() & (DMA_DONE | DMA_ERR)) 190 if (bfin_read_DMA1_IRQ_STATUS() & (DMA_DONE | DMA_ERR))
189 bfin_handle_irq(IRQ_MAC_RX); 191 bfin_handle_irq(IRQ_MAC_RX);
190 else 192 else
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c
index 7236bdfc71e6..a6d1b03cdf36 100644
--- a/arch/blackfin/mach-common/ints-priority.c
+++ b/arch/blackfin/mach-common/ints-priority.c
@@ -194,7 +194,8 @@ void bfin_internal_unmask_irq(unsigned int irq)
194#ifdef CONFIG_SMP 194#ifdef CONFIG_SMP
195static void bfin_internal_unmask_irq_chip(struct irq_data *d) 195static void bfin_internal_unmask_irq_chip(struct irq_data *d)
196{ 196{
197 bfin_internal_unmask_irq_affinity(d->irq, d->affinity); 197 bfin_internal_unmask_irq_affinity(d->irq,
198 irq_data_get_affinity_mask(d));
198} 199}
199 200
200static int bfin_internal_set_affinity(struct irq_data *d, 201static int bfin_internal_set_affinity(struct irq_data *d,
@@ -685,12 +686,12 @@ void bfin_demux_mac_status_irq(unsigned int int_err_irq,
685} 686}
686#endif 687#endif
687 688
688static inline void bfin_set_irq_handler(unsigned irq, irq_flow_handler_t handle) 689static inline void bfin_set_irq_handler(struct irq_data *d, irq_flow_handler_t handle)
689{ 690{
690#ifdef CONFIG_IPIPE 691#ifdef CONFIG_IPIPE
691 handle = handle_level_irq; 692 handle = handle_level_irq;
692#endif 693#endif
693 __irq_set_handler_locked(irq, handle); 694 irq_set_handler_locked(d, handle);
694} 695}
695 696
696#ifdef CONFIG_GPIO_ADI 697#ifdef CONFIG_GPIO_ADI
@@ -802,9 +803,9 @@ static int bfin_gpio_irq_type(struct irq_data *d, unsigned int type)
802 } 803 }
803 804
804 if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) 805 if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING))
805 bfin_set_irq_handler(irq, handle_edge_irq); 806 bfin_set_irq_handler(d, handle_edge_irq);
806 else 807 else
807 bfin_set_irq_handler(irq, handle_level_irq); 808 bfin_set_irq_handler(d, handle_level_irq);
808 809
809 return 0; 810 return 0;
810} 811}
@@ -824,9 +825,9 @@ static void bfin_demux_gpio_block(unsigned int irq)
824 } 825 }
825} 826}
826 827
827void bfin_demux_gpio_irq(unsigned int inta_irq, 828void bfin_demux_gpio_irq(unsigned int __inta_irq, struct irq_desc *desc)
828 struct irq_desc *desc)
829{ 829{
830 unsigned int inta_irq = irq_desc_get_irq(desc);
830 unsigned int irq; 831 unsigned int irq;
831 832
832 switch (inta_irq) { 833 switch (inta_irq) {