diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-4.19/950-0125-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-4.19/950-0125-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/target/linux/bcm27xx/patches-4.19/950-0125-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch b/target/linux/bcm27xx/patches-4.19/950-0125-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch deleted file mode 100644 index 281f273e8d..0000000000 --- a/target/linux/bcm27xx/patches-4.19/950-0125-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 3166f055a568c4fe127b70b81a878ab59070a6f5 Mon Sep 17 00:00:00 2001 -From: Phil Elwell <phil@raspberrypi.org> -Date: Thu, 14 Jun 2018 11:21:04 +0100 -Subject: [PATCH] irqchip: irq-bcm2835: Calc. FIQ_START at boot-time - -ad83c7cb2f37 ("irqchip/irq-bcm2836: Add support for DT interrupt polarity") -changed the way that the BCM2836/7 local interrupts are mapped; instead -of being pre-mapped they are now mapped on-demand. A side effect of this -change is that the call to irq_of_parse_and_map from armctrl_of_init -creates a new mapping, forming a gap between the IRQs and the FIQs. This - gap breaks the FIQ<->IRQ mapping which up to now has been done by assuming: - -1) that the value of FIQ_START is the same as the number of normal IRQs -that will be mapped (still true), and - -2) that this value is also the offset between an IRQ and its equivalent -FIQ (which is no longer the case). - -Remove both assumptions by measuring the interval between the last IRQ -and the last FIQ, passing it as the parameter to init_FIQ(). - -Fixes: https://github.com/raspberrypi/linux/issues/2432 - -Signed-off-by: Phil Elwell <phil@raspberrypi.org> ---- - drivers/irqchip/irq-bcm2835.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - ---- a/drivers/irqchip/irq-bcm2835.c -+++ b/drivers/irqchip/irq-bcm2835.c -@@ -82,8 +82,6 @@ - #define NR_BANKS 3 - #define IRQS_PER_BANK 32 - #define NUMBER_IRQS MAKE_HWIRQ(NR_BANKS, 0) --#undef FIQ_START --#define FIQ_START (NR_IRQS_BANK0 + MAKE_HWIRQ(NR_BANKS - 1, 0)) - - static const int reg_pending[] __initconst = { 0x00, 0x04, 0x08 }; - static const int reg_enable[] __initconst = { 0x18, 0x10, 0x14 }; -@@ -211,7 +209,7 @@ static int __init armctrl_of_init(struct - bool is_2836) - { - void __iomem *base; -- int irq, b, i; -+ int irq = 0, last_irq, b, i; - - base = of_iomap(node, 0); - if (!base) -@@ -237,6 +235,8 @@ static int __init armctrl_of_init(struct - } - } - -+ last_irq = irq; -+ - if (is_2836) { - int parent_irq = irq_of_parse_and_map(node, 0); - -@@ -267,7 +267,7 @@ static int __init armctrl_of_init(struct - } - } - #ifndef CONFIG_ARM64 -- init_FIQ(FIQ_START); -+ init_FIQ(irq - last_irq); - #endif - - return 0; |