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>
This commit is contained in:
parent
43b8774dc4
commit
fecf066c2d
|
@ -72,8 +72,8 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
|
||||||
BUILD_BUG_ON(SMP_MSG_NR >= 8);
|
BUILD_BUG_ON(SMP_MSG_NR >= 8);
|
||||||
|
|
||||||
for (i = 0; i < SMP_MSG_NR; i++)
|
for (i = 0; i < SMP_MSG_NR; i++)
|
||||||
request_irq(104 + i, ipi_interrupt_handler, IRQF_DISABLED,
|
request_irq(104 + i, ipi_interrupt_handler,
|
||||||
"IPI", (void *)(long)i);
|
IRQF_DISABLED | IRQF_PERCPU, "IPI", (void *)(long)i);
|
||||||
}
|
}
|
||||||
|
|
||||||
void plat_start_cpu(unsigned int cpu, unsigned long entry_point)
|
void plat_start_cpu(unsigned int cpu, unsigned long entry_point)
|
||||||
|
|
|
@ -605,7 +605,8 @@ static int sh_cmt_setup(struct sh_cmt_priv *p, struct platform_device *pdev)
|
||||||
p->irqaction.name = dev_name(&p->pdev->dev);
|
p->irqaction.name = dev_name(&p->pdev->dev);
|
||||||
p->irqaction.handler = sh_cmt_interrupt;
|
p->irqaction.handler = sh_cmt_interrupt;
|
||||||
p->irqaction.dev_id = p;
|
p->irqaction.dev_id = p;
|
||||||
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL;
|
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | \
|
||||||
|
IRQF_IRQPOLL | IRQF_NOBALANCING;
|
||||||
|
|
||||||
/* get hold of clock */
|
/* get hold of clock */
|
||||||
p->clk = clk_get(&p->pdev->dev, "cmt_fck");
|
p->clk = clk_get(&p->pdev->dev, "cmt_fck");
|
||||||
|
|
|
@ -280,7 +280,8 @@ static int sh_mtu2_setup(struct sh_mtu2_priv *p, struct platform_device *pdev)
|
||||||
p->irqaction.handler = sh_mtu2_interrupt;
|
p->irqaction.handler = sh_mtu2_interrupt;
|
||||||
p->irqaction.dev_id = p;
|
p->irqaction.dev_id = p;
|
||||||
p->irqaction.irq = irq;
|
p->irqaction.irq = irq;
|
||||||
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL;
|
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | \
|
||||||
|
IRQF_IRQPOLL | IRQF_NOBALANCING;
|
||||||
|
|
||||||
/* get hold of clock */
|
/* get hold of clock */
|
||||||
p->clk = clk_get(&p->pdev->dev, "mtu2_fck");
|
p->clk = clk_get(&p->pdev->dev, "mtu2_fck");
|
||||||
|
|
|
@ -384,7 +384,8 @@ static int sh_tmu_setup(struct sh_tmu_priv *p, struct platform_device *pdev)
|
||||||
p->irqaction.handler = sh_tmu_interrupt;
|
p->irqaction.handler = sh_tmu_interrupt;
|
||||||
p->irqaction.dev_id = p;
|
p->irqaction.dev_id = p;
|
||||||
p->irqaction.irq = irq;
|
p->irqaction.irq = irq;
|
||||||
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL;
|
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | \
|
||||||
|
IRQF_IRQPOLL | IRQF_NOBALANCING;
|
||||||
|
|
||||||
/* get hold of clock */
|
/* get hold of clock */
|
||||||
p->clk = clk_get(&p->pdev->dev, "tmu_fck");
|
p->clk = clk_get(&p->pdev->dev, "tmu_fck");
|
||||||
|
|
Loading…
Reference in New Issue