| .. | .. |
|---|
| 55 | 55 | return IRQ_HANDLED; |
|---|
| 56 | 56 | } |
|---|
| 57 | 57 | |
|---|
| 58 | | -static struct irqaction a20r_irqaction = { |
|---|
| 59 | | - .handler = a20r_interrupt, |
|---|
| 60 | | - .flags = IRQF_PERCPU | IRQF_TIMER, |
|---|
| 61 | | - .name = "a20r-timer", |
|---|
| 62 | | -}; |
|---|
| 63 | | - |
|---|
| 64 | 58 | /* |
|---|
| 65 | 59 | * a20r platform uses 2 counters to divide the input frequency. |
|---|
| 66 | 60 | * Counter 2 output is connected to Counter 0 & 1 input. |
|---|
| .. | .. |
|---|
| 68 | 62 | static void __init sni_a20r_timer_setup(void) |
|---|
| 69 | 63 | { |
|---|
| 70 | 64 | struct clock_event_device *cd = &a20r_clockevent_device; |
|---|
| 71 | | - struct irqaction *action = &a20r_irqaction; |
|---|
| 72 | 65 | unsigned int cpu = smp_processor_id(); |
|---|
| 73 | 66 | |
|---|
| 74 | 67 | cd->cpumask = cpumask_of(cpu); |
|---|
| 75 | 68 | clockevents_register_device(cd); |
|---|
| 76 | | - action->dev_id = cd; |
|---|
| 77 | | - setup_irq(SNI_A20R_IRQ_TIMER, &a20r_irqaction); |
|---|
| 69 | + if (request_irq(SNI_A20R_IRQ_TIMER, a20r_interrupt, |
|---|
| 70 | + IRQF_PERCPU | IRQF_TIMER, "a20r-timer", cd)) |
|---|
| 71 | + pr_err("Failed to register a20r-timer interrupt\n"); |
|---|
| 78 | 72 | } |
|---|
| 79 | 73 | |
|---|
| 80 | 74 | #define SNI_8254_TICK_RATE 1193182UL |
|---|