Commit 495e0c79406fc0915fe80c7b1bbc006ef1370842
1 parent
df31a0a06f
Exists in
master
and in
39 other branches
xtensa: Convert main irq_chip to new functions
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Chris Zankel <chris@zankel.net> LKML-Reference: <20110206211137.653005586@linutronix.de>
Showing 1 changed file with 21 additions and 22 deletions Side-by-side Diff
arch/xtensa/kernel/irq.c
... | ... | @@ -35,7 +35,6 @@ |
35 | 35 | asmlinkage void do_IRQ(int irq, struct pt_regs *regs) |
36 | 36 | { |
37 | 37 | struct pt_regs *old_regs = set_irq_regs(regs); |
38 | - struct irq_desc *desc = irq_desc + irq; | |
39 | 38 | |
40 | 39 | if (irq >= NR_IRQS) { |
41 | 40 | printk(KERN_EMERG "%s: cannot handle IRQ %d\n", |
... | ... | @@ -57,7 +56,7 @@ |
57 | 56 | sp - sizeof(struct thread_info)); |
58 | 57 | } |
59 | 58 | #endif |
60 | - desc->handle_irq(irq, desc); | |
59 | + generic_handle_irq(irq); | |
61 | 60 | |
62 | 61 | irq_exit(); |
63 | 62 | set_irq_regs(old_regs); |
64 | 63 | |
65 | 64 | |
66 | 65 | |
67 | 66 | |
68 | 67 | |
69 | 68 | |
70 | 69 | |
71 | 70 | |
72 | 71 | |
73 | 72 | |
74 | 73 | |
75 | 74 | |
... | ... | @@ -111,50 +110,50 @@ |
111 | 110 | return 0; |
112 | 111 | } |
113 | 112 | |
114 | -static void xtensa_irq_mask(unsigned int irq) | |
113 | +static void xtensa_irq_mask(struct irq_chip *d) | |
115 | 114 | { |
116 | - cached_irq_mask &= ~(1 << irq); | |
115 | + cached_irq_mask &= ~(1 << d->irq); | |
117 | 116 | set_sr (cached_irq_mask, INTENABLE); |
118 | 117 | } |
119 | 118 | |
120 | -static void xtensa_irq_unmask(unsigned int irq) | |
119 | +static void xtensa_irq_unmask(struct irq_chip *d) | |
121 | 120 | { |
122 | - cached_irq_mask |= 1 << irq; | |
121 | + cached_irq_mask |= 1 << d->irq; | |
123 | 122 | set_sr (cached_irq_mask, INTENABLE); |
124 | 123 | } |
125 | 124 | |
126 | -static void xtensa_irq_enable(unsigned int irq) | |
125 | +static void xtensa_irq_enable(struct irq_chip *d) | |
127 | 126 | { |
128 | - variant_irq_enable(irq); | |
129 | - xtensa_irq_unmask(irq); | |
127 | + variant_irq_enable(d->irq); | |
128 | + xtensa_irq_unmask(d->irq); | |
130 | 129 | } |
131 | 130 | |
132 | -static void xtensa_irq_disable(unsigned int irq) | |
131 | +static void xtensa_irq_disable(struct irq_chip *d) | |
133 | 132 | { |
134 | - xtensa_irq_mask(irq); | |
135 | - variant_irq_disable(irq); | |
133 | + xtensa_irq_mask(d->irq); | |
134 | + variant_irq_disable(d->irq); | |
136 | 135 | } |
137 | 136 | |
138 | -static void xtensa_irq_ack(unsigned int irq) | |
137 | +static void xtensa_irq_ack(struct irq_chip *d) | |
139 | 138 | { |
140 | - set_sr(1 << irq, INTCLEAR); | |
139 | + set_sr(1 << d->irq, INTCLEAR); | |
141 | 140 | } |
142 | 141 | |
143 | -static int xtensa_irq_retrigger(unsigned int irq) | |
142 | +static int xtensa_irq_retrigger(struct irq_chip *d) | |
144 | 143 | { |
145 | - set_sr (1 << irq, INTSET); | |
144 | + set_sr (1 << d->irq, INTSET); | |
146 | 145 | return 1; |
147 | 146 | } |
148 | 147 | |
149 | 148 | |
150 | 149 | static struct irq_chip xtensa_irq_chip = { |
151 | 150 | .name = "xtensa", |
152 | - .enable = xtensa_irq_enable, | |
153 | - .disable = xtensa_irq_disable, | |
154 | - .mask = xtensa_irq_mask, | |
155 | - .unmask = xtensa_irq_unmask, | |
156 | - .ack = xtensa_irq_ack, | |
157 | - .retrigger = xtensa_irq_retrigger, | |
151 | + .irq_enable = xtensa_irq_enable, | |
152 | + .irq_disable = xtensa_irq_disable, | |
153 | + .irq_mask = xtensa_irq_mask, | |
154 | + .irq_unmask = xtensa_irq_unmask, | |
155 | + .irq_ack = xtensa_irq_ack, | |
156 | + .irq_retrigger = xtensa_irq_retrigger, | |
158 | 157 | }; |
159 | 158 | |
160 | 159 | void __init init_IRQ(void) |