|
@@ -313,14 +313,16 @@ static void apbt_setup_irq(struct apbt_dev *adev)
|
|
if (adev->irq == 0)
|
|
if (adev->irq == 0)
|
|
return;
|
|
return;
|
|
|
|
|
|
|
|
+ irq_modify_status(adev->irq, 0, IRQ_MOVE_PCNTXT);
|
|
|
|
+ irq_set_affinity(adev->irq, cpumask_of(adev->cpu));
|
|
|
|
+ /* APB timer irqs are set up as mp_irqs, timer is edge type */
|
|
|
|
+ __set_irq_handler(adev->irq, handle_edge_irq, 0, "edge");
|
|
|
|
+
|
|
if (system_state == SYSTEM_BOOTING) {
|
|
if (system_state == SYSTEM_BOOTING) {
|
|
- irq_modify_status(adev->irq, 0, IRQ_MOVE_PCNTXT);
|
|
|
|
- irq_set_affinity(adev->irq, cpumask_of(adev->cpu));
|
|
|
|
- /* APB timer irqs are set up as mp_irqs, timer is edge type */
|
|
|
|
- __set_irq_handler(adev->irq, handle_edge_irq, 0, "edge");
|
|
|
|
if (request_irq(adev->irq, apbt_interrupt_handler,
|
|
if (request_irq(adev->irq, apbt_interrupt_handler,
|
|
- IRQF_TIMER | IRQF_DISABLED | IRQF_NOBALANCING,
|
|
|
|
- adev->name, adev)) {
|
|
|
|
|
|
+ IRQF_TIMER | IRQF_DISABLED |
|
|
|
|
+ IRQF_NOBALANCING,
|
|
|
|
+ adev->name, adev)) {
|
|
printk(KERN_ERR "Failed request IRQ for APBT%d\n",
|
|
printk(KERN_ERR "Failed request IRQ for APBT%d\n",
|
|
adev->num);
|
|
adev->num);
|
|
}
|
|
}
|