|
17 | 17 | #include <asm/dec/ioasic_addrs.h>
|
18 | 18 | #include <asm/dec/ioasic_ints.h>
|
19 | 19 |
|
20 |
| - |
21 | 20 | static int ioasic_irq_base;
|
22 | 21 |
|
23 |
| - |
24 |
| -static inline void unmask_ioasic_irq(unsigned int irq) |
| 22 | +static void unmask_ioasic_irq(struct irq_data *d) |
25 | 23 | {
|
26 | 24 | u32 simr;
|
27 | 25 |
|
28 | 26 | simr = ioasic_read(IO_REG_SIMR);
|
29 |
| - simr |= (1 << (irq - ioasic_irq_base)); |
| 27 | + simr |= (1 << (d->irq - ioasic_irq_base)); |
30 | 28 | ioasic_write(IO_REG_SIMR, simr);
|
31 | 29 | }
|
32 | 30 |
|
33 |
| -static inline void mask_ioasic_irq(unsigned int irq) |
| 31 | +static void mask_ioasic_irq(struct irq_data *d) |
34 | 32 | {
|
35 | 33 | u32 simr;
|
36 | 34 |
|
37 | 35 | simr = ioasic_read(IO_REG_SIMR);
|
38 |
| - simr &= ~(1 << (irq - ioasic_irq_base)); |
| 36 | + simr &= ~(1 << (d->irq - ioasic_irq_base)); |
39 | 37 | ioasic_write(IO_REG_SIMR, simr);
|
40 | 38 | }
|
41 | 39 |
|
42 |
| -static inline void clear_ioasic_irq(unsigned int irq) |
| 40 | +static void ack_ioasic_irq(struct irq_data *d) |
43 | 41 | {
|
44 |
| - u32 sir; |
45 |
| - |
46 |
| - sir = ~(1 << (irq - ioasic_irq_base)); |
47 |
| - ioasic_write(IO_REG_SIR, sir); |
48 |
| -} |
49 |
| - |
50 |
| -static inline void ack_ioasic_irq(unsigned int irq) |
51 |
| -{ |
52 |
| - mask_ioasic_irq(irq); |
| 42 | + mask_ioasic_irq(d); |
53 | 43 | fast_iob();
|
54 | 44 | }
|
55 | 45 |
|
56 |
| -static inline void end_ioasic_irq(unsigned int irq) |
57 |
| -{ |
58 |
| - if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) |
59 |
| - unmask_ioasic_irq(irq); |
60 |
| -} |
61 |
| - |
62 | 46 | static struct irq_chip ioasic_irq_type = {
|
63 | 47 | .name = "IO-ASIC",
|
64 |
| - .ack = ack_ioasic_irq, |
65 |
| - .mask = mask_ioasic_irq, |
66 |
| - .mask_ack = ack_ioasic_irq, |
67 |
| - .unmask = unmask_ioasic_irq, |
| 48 | + .irq_ack = ack_ioasic_irq, |
| 49 | + .irq_mask = mask_ioasic_irq, |
| 50 | + .irq_mask_ack = ack_ioasic_irq, |
| 51 | + .irq_unmask = unmask_ioasic_irq, |
68 | 52 | };
|
69 | 53 |
|
70 |
| - |
71 |
| -#define unmask_ioasic_dma_irq unmask_ioasic_irq |
72 |
| - |
73 |
| -#define mask_ioasic_dma_irq mask_ioasic_irq |
74 |
| - |
75 |
| -#define ack_ioasic_dma_irq ack_ioasic_irq |
76 |
| - |
77 |
| -static inline void end_ioasic_dma_irq(unsigned int irq) |
78 |
| -{ |
79 |
| - clear_ioasic_irq(irq); |
80 |
| - fast_iob(); |
81 |
| - end_ioasic_irq(irq); |
82 |
| -} |
83 |
| - |
84 | 54 | static struct irq_chip ioasic_dma_irq_type = {
|
85 | 55 | .name = "IO-ASIC-DMA",
|
86 |
| - .ack = ack_ioasic_dma_irq, |
87 |
| - .mask = mask_ioasic_dma_irq, |
88 |
| - .mask_ack = ack_ioasic_dma_irq, |
89 |
| - .unmask = unmask_ioasic_dma_irq, |
90 |
| - .end = end_ioasic_dma_irq, |
| 56 | + .irq_ack = ack_ioasic_irq, |
| 57 | + .irq_mask = mask_ioasic_irq, |
| 58 | + .irq_mask_ack = ack_ioasic_irq, |
| 59 | + .irq_unmask = unmask_ioasic_irq, |
91 | 60 | };
|
92 | 61 |
|
93 |
| - |
94 | 62 | void __init init_ioasic_irqs(int base)
|
95 | 63 | {
|
96 | 64 | int i;
|
|
0 commit comments