Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fecf066c authored by Paul Mundt's avatar Paul Mundt
Browse files

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: default avatarPaul Mundt <lethal@linux-sh.org>
parent 43b8774d
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -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)
+2 −1
Original line number Original line Diff line number Diff line
@@ -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");
+2 −1
Original line number Original line Diff line number Diff line
@@ -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");
+2 −1
Original line number Original line Diff line number Diff line
@@ -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");