diff options
author | Jonas Gorski <jogo@openwrt.org> | 2014-07-12 12:31:47 +0000 |
---|---|---|
committer | Jonas Gorski <jogo@openwrt.org> | 2014-07-12 12:31:47 +0000 |
commit | 12dab95f4788176d375a877d5670a389d5c33850 (patch) | |
tree | 03e715ca9769547099070198b6ebc57380ea2689 /target/linux/brcm63xx/patches-3.10/327-MIPS-BCM63XX-allow-setting-affinity-for-IPIC.patch | |
parent | 6661431271efc2b38e278d48131bf60b4582fc74 (diff) | |
download | upstream-12dab95f4788176d375a877d5670a389d5c33850.tar.gz upstream-12dab95f4788176d375a877d5670a389d5c33850.tar.bz2 upstream-12dab95f4788176d375a877d5670a389d5c33850.zip |
brcm63xx: update irq affinity code to latest version
Reduces code size a bit and sets affinity to boot cpu by default.
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41591 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm63xx/patches-3.10/327-MIPS-BCM63XX-allow-setting-affinity-for-IPIC.patch')
-rw-r--r-- | target/linux/brcm63xx/patches-3.10/327-MIPS-BCM63XX-allow-setting-affinity-for-IPIC.patch | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/target/linux/brcm63xx/patches-3.10/327-MIPS-BCM63XX-allow-setting-affinity-for-IPIC.patch b/target/linux/brcm63xx/patches-3.10/327-MIPS-BCM63XX-allow-setting-affinity-for-IPIC.patch index 9394e230ef..a625b2e67b 100644 --- a/target/linux/brcm63xx/patches-3.10/327-MIPS-BCM63XX-allow-setting-affinity-for-IPIC.patch +++ b/target/linux/brcm63xx/patches-3.10/327-MIPS-BCM63XX-allow-setting-affinity-for-IPIC.patch @@ -1,12 +1,16 @@ -From 9249f2f6a309e3f45c35d16decdcc5b2cadcadb8 Mon Sep 17 00:00:00 2001 +From 23493b47d8caaa59b18627a01bf443c3b50bb530 Mon Sep 17 00:00:00 2001 From: Jonas Gorski <jogo@openwrt.org> Date: Fri, 26 Apr 2013 12:06:03 +0200 -Subject: [PATCH 38/53] MIPS: BCM63XX: allow setting affinity for IPIC +Subject: [PATCH 10/10] MIPS: BCM63XX: allow setting affinity for IPIC + +Wire up the set_affinity call for the internal PIC if booting on +a cpu supporting it. +Affinity is kept to boot cpu as default. Signed-off-by: Jonas Gorski <jogo@openwrt.org> --- - arch/mips/bcm63xx/irq.c | 43 +++++++++++++++++++++++++++++++++++++------ - 1 file changed, 37 insertions(+), 6 deletions(-) + arch/mips/bcm63xx/irq.c | 46 ++++++++++++++++++++++++++++++++++++++++------ + 1 file changed, 40 insertions(+), 6 deletions(-) --- a/arch/mips/bcm63xx/irq.c +++ b/arch/mips/bcm63xx/irq.c @@ -27,8 +31,8 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> + const struct cpumask *m) +{ + bool enable = cpu_online(cpu); -+#ifdef CONFIG_SMP + ++#ifdef CONFIG_SMP + if (m) + enable &= cpu_isset(cpu, *m); + else if (irqd_affinity_was_set(d)) @@ -47,7 +51,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> -static void __internal_irq_unmask_##width(struct irq_data *d) \ +static void __internal_irq_unmask_##width(struct irq_data *d, \ + const struct cpumask *m) \ - { \ + { \ u32 val; \ unsigned irq = d->irq - IRQ_INTERNAL_BASE; \ @@ -132,7 +147,7 @@ static void __internal_irq_unmask_##widt @@ -56,7 +60,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> val = bcm_readl(irq_mask_addr[cpu] + reg * sizeof(u32));\ - if (cpu_online(cpu)) \ + if (enable_irq_for_cpu(cpu, d, m)) \ - val |= (1 << bit); \ + val |= (1 << bit); \ else \ val &= ~(1 << bit); \ @@ -189,7 +204,7 @@ static void bcm63xx_internal_irq_mask(st @@ -97,7 +101,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> static struct irq_chip bcm63xx_internal_irq_chip = { .name = "bcm63xx_ipic", .irq_mask = bcm63xx_internal_irq_mask, -@@ -523,7 +551,10 @@ void __init arch_init_irq(void) +@@ -523,7 +551,13 @@ void __init arch_init_irq(void) setup_irq(MIPS_CPU_IRQ_BASE + 2, &cpu_ip2_cascade_action); #ifdef CONFIG_SMP @@ -106,6 +110,9 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> setup_irq(MIPS_CPU_IRQ_BASE + 3, &cpu_ip3_cascade_action); + bcm63xx_internal_irq_chip.irq_set_affinity = + bcm63xx_internal_set_affinity; ++ ++ cpumask_clear(irq_default_affinity); ++ cpumask_set_cpu(smp_processor_id(), irq_default_affinity); + } #endif } |