diff options
Diffstat (limited to 'target/linux/brcm63xx/patches-3.9/321-MIPS-BCM63XX-add-cpumask-argument-to-unmask.patch')
-rw-r--r-- | target/linux/brcm63xx/patches-3.9/321-MIPS-BCM63XX-add-cpumask-argument-to-unmask.patch | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/target/linux/brcm63xx/patches-3.9/321-MIPS-BCM63XX-add-cpumask-argument-to-unmask.patch b/target/linux/brcm63xx/patches-3.9/321-MIPS-BCM63XX-add-cpumask-argument-to-unmask.patch deleted file mode 100644 index 1047de3..0000000 --- a/target/linux/brcm63xx/patches-3.9/321-MIPS-BCM63XX-add-cpumask-argument-to-unmask.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 8679976d2ec08db4e4a14ecdd1ee022b70e51fc6 Mon Sep 17 00:00:00 2001 -From: Jonas Gorski <jogo@openwrt.org> -Date: Tue, 30 Apr 2013 11:26:53 +0200 -Subject: [PATCH 12/13] MIPS: BCM63XX: add cpumask argument to unmask - -Allow selective unmasking of IPIC irqs. - -Signed-off-by: Jonas Gorski <jogo@openwrt.org> ---- - arch/mips/bcm63xx/irq.c | 19 +++++++++++++------ - 1 file changed, 13 insertions(+), 6 deletions(-) - ---- a/arch/mips/bcm63xx/irq.c -+++ b/arch/mips/bcm63xx/irq.c -@@ -24,8 +24,10 @@ static void __dispatch_internal_32(int c - static void __dispatch_internal_64(int cpu) __maybe_unused; - static void __internal_irq_mask_32(unsigned int irq) __maybe_unused; - static void __internal_irq_mask_64(unsigned int irq) __maybe_unused; --static void __internal_irq_unmask_32(unsigned int irq) __maybe_unused; --static void __internal_irq_unmask_64(unsigned int irq) __maybe_unused; -+static void __internal_irq_unmask_32(unsigned int irq, -+ const struct cpumask *dest) __maybe_unused; -+static void __internal_irq_unmask_64(unsigned int irq, -+ const struct cpumask *dest) __maybe_unused; - - static DEFINE_SPINLOCK(ipic_lock); - static DEFINE_SPINLOCK(epic_lock); -@@ -150,7 +152,8 @@ static unsigned int ext_irq_count; - static unsigned int ext_irq_start, ext_irq_end; - static unsigned int ext_irq_cfg_reg1, ext_irq_cfg_reg2; - static void (*internal_irq_mask)(unsigned int irq); --static void (*internal_irq_unmask)(unsigned int irq); -+static void (*internal_irq_unmask)(unsigned int irq, -+ const struct cpumask *dest); - - static void bcm63xx_init_irq(void) - { -@@ -340,7 +343,8 @@ static void __internal_irq_mask_##width( - } \ - } \ - \ --static void __internal_irq_unmask_##width(unsigned int irq) \ -+static void __internal_irq_unmask_##width(unsigned int irq, \ -+ const struct cpumask *dest) \ - { \ - u32 val; \ - unsigned reg = (irq / 32) ^ (width/32 - 1); \ -@@ -351,7 +355,10 @@ static void __internal_irq_unmask_##widt - u32 irq_mask_addr = get_irq_mask_addr(cpu); \ - \ - val = bcm_readl(irq_mask_addr + reg * sizeof(u32)); \ -- val |= (1 << bit); \ -+ if (cpu_isset(cpu, *dest)) \ -+ val |= (1 << bit); \ -+ else \ -+ val &= ~(1 << bit); \ - bcm_writel(val, irq_mask_addr + reg * sizeof(u32)); \ - } \ - } -@@ -413,7 +420,7 @@ static void bcm63xx_internal_irq_unmask( - unsigned long flags; - - spin_lock_irqsave(&ipic_lock, flags); -- internal_irq_unmask(d->irq - IRQ_INTERNAL_BASE); -+ internal_irq_unmask(d->irq - IRQ_INTERNAL_BASE, cpu_online_mask); - spin_unlock_irqrestore(&ipic_lock, flags); - } - |