Commit 6407fd57 authored by Philippe Gerum's avatar Philippe Gerum
Browse files

irqchip: bcm2835: ipipe: enable interrupt pipelining

Fix up the interrupt controller driver of the Broadcom 2835 SoC in
order to channel interrupts through the interrupt pipeline.
parent ef1b6624
...@@ -110,7 +110,11 @@ static void armctrl_unmask_irq(struct irq_data *d) ...@@ -110,7 +110,11 @@ static void armctrl_unmask_irq(struct irq_data *d)
static struct irq_chip armctrl_chip = { static struct irq_chip armctrl_chip = {
.name = "ARMCTRL-level", .name = "ARMCTRL-level",
.irq_mask = armctrl_mask_irq, .irq_mask = armctrl_mask_irq,
.irq_unmask = armctrl_unmask_irq .irq_unmask = armctrl_unmask_irq,
#ifdef CONFIG_IPIPE
.irq_hold = armctrl_mask_irq,
.irq_release = armctrl_unmask_irq,
#endif
}; };
static int armctrl_xlate(struct irq_domain *d, struct device_node *ctrlr, static int armctrl_xlate(struct irq_domain *d, struct device_node *ctrlr,
...@@ -240,7 +244,7 @@ static void __exception_irq_entry bcm2835_handle_irq( ...@@ -240,7 +244,7 @@ static void __exception_irq_entry bcm2835_handle_irq(
u32 hwirq; u32 hwirq;
while ((hwirq = get_next_armctrl_hwirq()) != ~0) while ((hwirq = get_next_armctrl_hwirq()) != ~0)
handle_domain_irq(intc.domain, hwirq, regs); ipipe_handle_domain_irq(intc.domain, hwirq, regs);
} }
static void bcm2836_chained_handle_irq(struct irq_desc *desc) static void bcm2836_chained_handle_irq(struct irq_desc *desc)
...@@ -248,7 +252,7 @@ static void bcm2836_chained_handle_irq(struct irq_desc *desc) ...@@ -248,7 +252,7 @@ static void bcm2836_chained_handle_irq(struct irq_desc *desc)
u32 hwirq; u32 hwirq;
while ((hwirq = get_next_armctrl_hwirq()) != ~0) while ((hwirq = get_next_armctrl_hwirq()) != ~0)
generic_handle_irq(irq_linear_revmap(intc.domain, hwirq)); ipipe_handle_demuxed_irq(irq_linear_revmap(intc.domain, hwirq));
} }
IRQCHIP_DECLARE(bcm2835_armctrl_ic, "brcm,bcm2835-armctrl-ic", IRQCHIP_DECLARE(bcm2835_armctrl_ic, "brcm,bcm2835-armctrl-ic",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment