aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/52xx/mpc52xx_pic.c
diff options
context:
space:
mode:
authorLennert Buytenhek <buytenh@wantstofly.org>2011-03-08 17:26:47 -0500
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2011-03-09 19:03:57 -0500
commit8a2df7a0390ad7f02b10a66ede632bc9eee08876 (patch)
treec48391fe82de9f3da9188fb8a9f3df46014bf66a /arch/powerpc/platforms/52xx/mpc52xx_pic.c
parent0eb31577a755c3ed4c4182c2bf93c5618c60f13f (diff)
powerpc: platforms/52xx irq_data conversion.
Signed-off-by: Lennert Buytenhek <buytenh@secretlab.ca> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/platforms/52xx/mpc52xx_pic.c')
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_pic.c80
1 files changed, 40 insertions, 40 deletions
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
index 4bf4bf7b063e..9f3ed582d082 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
@@ -155,47 +155,47 @@ static inline void io_be_clrbit(u32 __iomem *addr, int bitno)
155/* 155/*
156 * IRQ[0-3] interrupt irq_chip 156 * IRQ[0-3] interrupt irq_chip
157 */ 157 */
158static void mpc52xx_extirq_mask(unsigned int virq) 158static void mpc52xx_extirq_mask(struct irq_data *d)
159{ 159{
160 int irq; 160 int irq;
161 int l2irq; 161 int l2irq;
162 162
163 irq = irq_map[virq].hwirq; 163 irq = irq_map[d->irq].hwirq;
164 l2irq = irq & MPC52xx_IRQ_L2_MASK; 164 l2irq = irq & MPC52xx_IRQ_L2_MASK;
165 165
166 io_be_clrbit(&intr->ctrl, 11 - l2irq); 166 io_be_clrbit(&intr->ctrl, 11 - l2irq);
167} 167}
168 168
169static void mpc52xx_extirq_unmask(unsigned int virq) 169static void mpc52xx_extirq_unmask(struct irq_data *d)
170{ 170{
171 int irq; 171 int irq;
172 int l2irq; 172 int l2irq;
173 173
174 irq = irq_map[virq].hwirq; 174 irq = irq_map[d->irq].hwirq;
175 l2irq = irq & MPC52xx_IRQ_L2_MASK; 175 l2irq = irq & MPC52xx_IRQ_L2_MASK;
176 176
177 io_be_setbit(&intr->ctrl, 11 - l2irq); 177 io_be_setbit(&intr->ctrl, 11 - l2irq);
178} 178}
179 179
180static void mpc52xx_extirq_ack(unsigned int virq) 180static void mpc52xx_extirq_ack(struct irq_data *d)
181{ 181{
182 int irq; 182 int irq;
183 int l2irq; 183 int l2irq;
184 184
185 irq = irq_map[virq].hwirq; 185 irq = irq_map[d->irq].hwirq;
186 l2irq = irq & MPC52xx_IRQ_L2_MASK; 186 l2irq = irq & MPC52xx_IRQ_L2_MASK;
187 187
188 io_be_setbit(&intr->ctrl, 27-l2irq); 188 io_be_setbit(&intr->ctrl, 27-l2irq);
189} 189}
190 190
191static int mpc52xx_extirq_set_type(unsigned int virq, unsigned int flow_type) 191static int mpc52xx_extirq_set_type(struct irq_data *d, unsigned int flow_type)
192{ 192{
193 u32 ctrl_reg, type; 193 u32 ctrl_reg, type;
194 int irq; 194 int irq;
195 int l2irq; 195 int l2irq;
196 void *handler = handle_level_irq; 196 void *handler = handle_level_irq;
197 197
198 irq = irq_map[virq].hwirq; 198 irq = irq_map[d->irq].hwirq;
199 l2irq = irq & MPC52xx_IRQ_L2_MASK; 199 l2irq = irq & MPC52xx_IRQ_L2_MASK;
200 200
201 pr_debug("%s: irq=%x. l2=%d flow_type=%d\n", __func__, irq, l2irq, flow_type); 201 pr_debug("%s: irq=%x. l2=%d flow_type=%d\n", __func__, irq, l2irq, flow_type);
@@ -214,44 +214,44 @@ static int mpc52xx_extirq_set_type(unsigned int virq, unsigned int flow_type)
214 ctrl_reg |= (type << (22 - (l2irq * 2))); 214 ctrl_reg |= (type << (22 - (l2irq * 2)));
215 out_be32(&intr->ctrl, ctrl_reg); 215 out_be32(&intr->ctrl, ctrl_reg);
216 216
217 __set_irq_handler_unlocked(virq, handler); 217 __set_irq_handler_unlocked(d->irq, handler);
218 218
219 return 0; 219 return 0;
220} 220}
221 221
222static struct irq_chip mpc52xx_extirq_irqchip = { 222static struct irq_chip mpc52xx_extirq_irqchip = {
223 .name = "MPC52xx External", 223 .name = "MPC52xx External",
224 .mask = mpc52xx_extirq_mask, 224 .irq_mask = mpc52xx_extirq_mask,
225 .unmask = mpc52xx_extirq_unmask, 225 .irq_unmask = mpc52xx_extirq_unmask,
226 .ack = mpc52xx_extirq_ack, 226 .irq_ack = mpc52xx_extirq_ack,
227 .set_type = mpc52xx_extirq_set_type, 227 .irq_set_type = mpc52xx_extirq_set_type,
228}; 228};
229 229
230/* 230/*
231 * Main interrupt irq_chip 231 * Main interrupt irq_chip
232 */ 232 */
233static int mpc52xx_null_set_type(unsigned int virq, unsigned int flow_type) 233static int mpc52xx_null_set_type(struct irq_data *d, unsigned int flow_type)
234{ 234{
235 return 0; /* Do nothing so that the sense mask will get updated */ 235 return 0; /* Do nothing so that the sense mask will get updated */
236} 236}
237 237
238static void mpc52xx_main_mask(unsigned int virq) 238static void mpc52xx_main_mask(struct irq_data *d)
239{ 239{
240 int irq; 240 int irq;
241 int l2irq; 241 int l2irq;
242 242
243 irq = irq_map[virq].hwirq; 243 irq = irq_map[d->irq].hwirq;
244 l2irq = irq & MPC52xx_IRQ_L2_MASK; 244 l2irq = irq & MPC52xx_IRQ_L2_MASK;
245 245
246 io_be_setbit(&intr->main_mask, 16 - l2irq); 246 io_be_setbit(&intr->main_mask, 16 - l2irq);
247} 247}
248 248
249static void mpc52xx_main_unmask(unsigned int virq) 249static void mpc52xx_main_unmask(struct irq_data *d)
250{ 250{
251 int irq; 251 int irq;
252 int l2irq; 252 int l2irq;
253 253
254 irq = irq_map[virq].hwirq; 254 irq = irq_map[d->irq].hwirq;
255 l2irq = irq & MPC52xx_IRQ_L2_MASK; 255 l2irq = irq & MPC52xx_IRQ_L2_MASK;
256 256
257 io_be_clrbit(&intr->main_mask, 16 - l2irq); 257 io_be_clrbit(&intr->main_mask, 16 - l2irq);
@@ -259,32 +259,32 @@ static void mpc52xx_main_unmask(unsigned int virq)
259 259
260static struct irq_chip mpc52xx_main_irqchip = { 260static struct irq_chip mpc52xx_main_irqchip = {
261 .name = "MPC52xx Main", 261 .name = "MPC52xx Main",
262 .mask = mpc52xx_main_mask, 262 .irq_mask = mpc52xx_main_mask,
263 .mask_ack = mpc52xx_main_mask, 263 .irq_mask_ack = mpc52xx_main_mask,
264 .unmask = mpc52xx_main_unmask, 264 .irq_unmask = mpc52xx_main_unmask,
265 .set_type = mpc52xx_null_set_type, 265 .irq_set_type = mpc52xx_null_set_type,
266}; 266};
267 267
268/* 268/*
269 * Peripherals interrupt irq_chip 269 * Peripherals interrupt irq_chip
270 */ 270 */
271static void mpc52xx_periph_mask(unsigned int virq) 271static void mpc52xx_periph_mask(struct irq_data *d)
272{ 272{
273 int irq; 273 int irq;
274 int l2irq; 274 int l2irq;
275 275
276 irq = irq_map[virq].hwirq; 276 irq = irq_map[d->irq].hwirq;
277 l2irq = irq & MPC52xx_IRQ_L2_MASK; 277 l2irq = irq & MPC52xx_IRQ_L2_MASK;
278 278
279 io_be_setbit(&intr->per_mask, 31 - l2irq); 279 io_be_setbit(&intr->per_mask, 31 - l2irq);
280} 280}
281 281
282static void mpc52xx_periph_unmask(unsigned int virq) 282static void mpc52xx_periph_unmask(struct irq_data *d)
283{ 283{
284 int irq; 284 int irq;
285 int l2irq; 285 int l2irq;
286 286
287 irq = irq_map[virq].hwirq; 287 irq = irq_map[d->irq].hwirq;
288 l2irq = irq & MPC52xx_IRQ_L2_MASK; 288 l2irq = irq & MPC52xx_IRQ_L2_MASK;
289 289
290 io_be_clrbit(&intr->per_mask, 31 - l2irq); 290 io_be_clrbit(&intr->per_mask, 31 - l2irq);
@@ -292,43 +292,43 @@ static void mpc52xx_periph_unmask(unsigned int virq)
292 292
293static struct irq_chip mpc52xx_periph_irqchip = { 293static struct irq_chip mpc52xx_periph_irqchip = {
294 .name = "MPC52xx Peripherals", 294 .name = "MPC52xx Peripherals",
295 .mask = mpc52xx_periph_mask, 295 .irq_mask = mpc52xx_periph_mask,
296 .mask_ack = mpc52xx_periph_mask, 296 .irq_mask_ack = mpc52xx_periph_mask,
297 .unmask = mpc52xx_periph_unmask, 297 .irq_unmask = mpc52xx_periph_unmask,
298 .set_type = mpc52xx_null_set_type, 298 .irq_set_type = mpc52xx_null_set_type,
299}; 299};
300 300
301/* 301/*
302 * SDMA interrupt irq_chip 302 * SDMA interrupt irq_chip
303 */ 303 */
304static void mpc52xx_sdma_mask(unsigned int virq) 304static void mpc52xx_sdma_mask(struct irq_data *d)
305{ 305{
306 int irq; 306 int irq;
307 int l2irq; 307 int l2irq;
308 308
309 irq = irq_map[virq].hwirq; 309 irq = irq_map[d->irq].hwirq;
310 l2irq = irq & MPC52xx_IRQ_L2_MASK; 310 l2irq = irq & MPC52xx_IRQ_L2_MASK;
311 311
312 io_be_setbit(&sdma->IntMask, l2irq); 312 io_be_setbit(&sdma->IntMask, l2irq);
313} 313}
314 314
315static void mpc52xx_sdma_unmask(unsigned int virq) 315static void mpc52xx_sdma_unmask(struct irq_data *d)
316{ 316{
317 int irq; 317 int irq;
318 int l2irq; 318 int l2irq;
319 319
320 irq = irq_map[virq].hwirq; 320 irq = irq_map[d->irq].hwirq;
321 l2irq = irq & MPC52xx_IRQ_L2_MASK; 321 l2irq = irq & MPC52xx_IRQ_L2_MASK;
322 322
323 io_be_clrbit(&sdma->IntMask, l2irq); 323 io_be_clrbit(&sdma->IntMask, l2irq);
324} 324}
325 325
326static void mpc52xx_sdma_ack(unsigned int virq) 326static void mpc52xx_sdma_ack(struct irq_data *d)
327{ 327{
328 int irq; 328 int irq;
329 int l2irq; 329 int l2irq;
330 330
331 irq = irq_map[virq].hwirq; 331 irq = irq_map[d->irq].hwirq;
332 l2irq = irq & MPC52xx_IRQ_L2_MASK; 332 l2irq = irq & MPC52xx_IRQ_L2_MASK;
333 333
334 out_be32(&sdma->IntPend, 1 << l2irq); 334 out_be32(&sdma->IntPend, 1 << l2irq);
@@ -336,10 +336,10 @@ static void mpc52xx_sdma_ack(unsigned int virq)
336 336
337static struct irq_chip mpc52xx_sdma_irqchip = { 337static struct irq_chip mpc52xx_sdma_irqchip = {
338 .name = "MPC52xx SDMA", 338 .name = "MPC52xx SDMA",
339 .mask = mpc52xx_sdma_mask, 339 .irq_mask = mpc52xx_sdma_mask,
340 .unmask = mpc52xx_sdma_unmask, 340 .irq_unmask = mpc52xx_sdma_unmask,
341 .ack = mpc52xx_sdma_ack, 341 .irq_ack = mpc52xx_sdma_ack,
342 .set_type = mpc52xx_null_set_type, 342 .irq_set_type = mpc52xx_null_set_type,
343}; 343};
344 344
345/** 345/**