aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-04-14 22:59:28 -0400
committerPaul Mundt <lethal@linux-sh.org>2010-04-14 22:59:28 -0400
commitfecf066c2d2fbc7e6a7e7e3a5af772a165bdd7b0 (patch)
treed603be7892e5a0522188b6a5010eb5544a9e0b18
parent43b8774dc409ea5d9369b978e2e7bc79289f0522 (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.c4
-rw-r--r--drivers/clocksource/sh_cmt.c3
-rw-r--r--drivers/clocksource/sh_mtu2.c3
-rw-r--r--drivers/clocksource/sh_tmu.c3
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
79void plat_start_cpu(unsigned int cpu, unsigned long entry_point) 79void 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");