diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-04-14 22:59:28 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-04-14 22:59:28 -0400 |
commit | fecf066c2d2fbc7e6a7e7e3a5af772a165bdd7b0 (patch) | |
tree | d603be7892e5a0522188b6a5010eb5544a9e0b18 | |
parent | 43b8774dc409ea5d9369b978e2e7bc79289f0522 (diff) |
sh: Disable IRQ balancing for timer and IPI IRQs.
Make sure that the timer IRQs and IPIs aren't enabled for IRQ balancing.
IPIs are disabled as a result of being percpu while the timers simply
disable balancing outright.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/smp-shx3.c | 4 | ||||
-rw-r--r-- | drivers/clocksource/sh_cmt.c | 3 | ||||
-rw-r--r-- | drivers/clocksource/sh_mtu2.c | 3 | ||||
-rw-r--r-- | drivers/clocksource/sh_tmu.c | 3 |
4 files changed, 8 insertions, 5 deletions
diff --git a/arch/sh/kernel/cpu/sh4a/smp-shx3.c b/arch/sh/kernel/cpu/sh4a/smp-shx3.c index 11bf4c1e25c..c98b4574c44 100644 --- a/arch/sh/kernel/cpu/sh4a/smp-shx3.c +++ b/arch/sh/kernel/cpu/sh4a/smp-shx3.c | |||
@@ -72,8 +72,8 @@ void __init plat_prepare_cpus(unsigned int max_cpus) | |||
72 | BUILD_BUG_ON(SMP_MSG_NR >= 8); | 72 | BUILD_BUG_ON(SMP_MSG_NR >= 8); |
73 | 73 | ||
74 | for (i = 0; i < SMP_MSG_NR; i++) | 74 | for (i = 0; i < SMP_MSG_NR; i++) |
75 | request_irq(104 + i, ipi_interrupt_handler, IRQF_DISABLED, | 75 | request_irq(104 + i, ipi_interrupt_handler, |
76 | "IPI", (void *)(long)i); | 76 | IRQF_DISABLED | IRQF_PERCPU, "IPI", (void *)(long)i); |
77 | } | 77 | } |
78 | 78 | ||
79 | void plat_start_cpu(unsigned int cpu, unsigned long entry_point) | 79 | void plat_start_cpu(unsigned int cpu, unsigned long entry_point) |
diff --git a/drivers/clocksource/sh_cmt.c b/drivers/clocksource/sh_cmt.c index c5f66171a71..45be4dcb951 100644 --- a/drivers/clocksource/sh_cmt.c +++ b/drivers/clocksource/sh_cmt.c | |||
@@ -605,7 +605,8 @@ static int sh_cmt_setup(struct sh_cmt_priv *p, struct platform_device *pdev) | |||
605 | p->irqaction.name = dev_name(&p->pdev->dev); | 605 | p->irqaction.name = dev_name(&p->pdev->dev); |
606 | p->irqaction.handler = sh_cmt_interrupt; | 606 | p->irqaction.handler = sh_cmt_interrupt; |
607 | p->irqaction.dev_id = p; | 607 | p->irqaction.dev_id = p; |
608 | p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL; | 608 | p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | \ |
609 | IRQF_IRQPOLL | IRQF_NOBALANCING; | ||
609 | 610 | ||
610 | /* get hold of clock */ | 611 | /* get hold of clock */ |
611 | p->clk = clk_get(&p->pdev->dev, "cmt_fck"); | 612 | p->clk = clk_get(&p->pdev->dev, "cmt_fck"); |
diff --git a/drivers/clocksource/sh_mtu2.c b/drivers/clocksource/sh_mtu2.c index b11882e0f1b..644ecbbed25 100644 --- a/drivers/clocksource/sh_mtu2.c +++ b/drivers/clocksource/sh_mtu2.c | |||
@@ -280,7 +280,8 @@ static int sh_mtu2_setup(struct sh_mtu2_priv *p, struct platform_device *pdev) | |||
280 | p->irqaction.handler = sh_mtu2_interrupt; | 280 | p->irqaction.handler = sh_mtu2_interrupt; |
281 | p->irqaction.dev_id = p; | 281 | p->irqaction.dev_id = p; |
282 | p->irqaction.irq = irq; | 282 | p->irqaction.irq = irq; |
283 | p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL; | 283 | p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | \ |
284 | IRQF_IRQPOLL | IRQF_NOBALANCING; | ||
284 | 285 | ||
285 | /* get hold of clock */ | 286 | /* get hold of clock */ |
286 | p->clk = clk_get(&p->pdev->dev, "mtu2_fck"); | 287 | p->clk = clk_get(&p->pdev->dev, "mtu2_fck"); |
diff --git a/drivers/clocksource/sh_tmu.c b/drivers/clocksource/sh_tmu.c index 6b62283c1ab..44c39a36376 100644 --- a/drivers/clocksource/sh_tmu.c +++ b/drivers/clocksource/sh_tmu.c | |||
@@ -384,7 +384,8 @@ static int sh_tmu_setup(struct sh_tmu_priv *p, struct platform_device *pdev) | |||
384 | p->irqaction.handler = sh_tmu_interrupt; | 384 | p->irqaction.handler = sh_tmu_interrupt; |
385 | p->irqaction.dev_id = p; | 385 | p->irqaction.dev_id = p; |
386 | p->irqaction.irq = irq; | 386 | p->irqaction.irq = irq; |
387 | p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL; | 387 | p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | \ |
388 | IRQF_IRQPOLL | IRQF_NOBALANCING; | ||
388 | 389 | ||
389 | /* get hold of clock */ | 390 | /* get hold of clock */ |
390 | p->clk = clk_get(&p->pdev->dev, "tmu_fck"); | 391 | p->clk = clk_get(&p->pdev->dev, "tmu_fck"); |