aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev/qe_lib
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/sysdev/qe_lib')
-rw-r--r--arch/powerpc/sysdev/qe_lib/qe.c7
-rw-r--r--arch/powerpc/sysdev/qe_lib/qe_ic.c39
2 files changed, 24 insertions, 22 deletions
diff --git a/arch/powerpc/sysdev/qe_lib/qe.c b/arch/powerpc/sysdev/qe_lib/qe.c
index 90020de4dcf2..904c6cbaf45b 100644
--- a/arch/powerpc/sysdev/qe_lib/qe.c
+++ b/arch/powerpc/sysdev/qe_lib/qe.c
@@ -659,8 +659,7 @@ static int qe_resume(struct platform_device *ofdev)
659 return 0; 659 return 0;
660} 660}
661 661
662static int qe_probe(struct platform_device *ofdev, 662static int qe_probe(struct platform_device *ofdev)
663 const struct of_device_id *id)
664{ 663{
665 return 0; 664 return 0;
666} 665}
@@ -670,7 +669,7 @@ static const struct of_device_id qe_ids[] = {
670 { }, 669 { },
671}; 670};
672 671
673static struct of_platform_driver qe_driver = { 672static struct platform_driver qe_driver = {
674 .driver = { 673 .driver = {
675 .name = "fsl-qe", 674 .name = "fsl-qe",
676 .owner = THIS_MODULE, 675 .owner = THIS_MODULE,
@@ -682,7 +681,7 @@ static struct of_platform_driver qe_driver = {
682 681
683static int __init qe_drv_init(void) 682static int __init qe_drv_init(void)
684{ 683{
685 return of_register_platform_driver(&qe_driver); 684 return platform_driver_register(&qe_driver);
686} 685}
687device_initcall(qe_drv_init); 686device_initcall(qe_drv_init);
688#endif /* defined(CONFIG_SUSPEND) && defined(CONFIG_PPC_85xx) */ 687#endif /* defined(CONFIG_SUSPEND) && defined(CONFIG_PPC_85xx) */
diff --git a/arch/powerpc/sysdev/qe_lib/qe_ic.c b/arch/powerpc/sysdev/qe_lib/qe_ic.c
index 541ba9863647..b2acda07220d 100644
--- a/arch/powerpc/sysdev/qe_lib/qe_ic.c
+++ b/arch/powerpc/sysdev/qe_lib/qe_ic.c
@@ -189,15 +189,18 @@ static inline void qe_ic_write(volatile __be32 __iomem * base, unsigned int reg
189 189
190static inline struct qe_ic *qe_ic_from_irq(unsigned int virq) 190static inline struct qe_ic *qe_ic_from_irq(unsigned int virq)
191{ 191{
192 return irq_to_desc(virq)->chip_data; 192 return irq_get_chip_data(virq);
193} 193}
194 194
195#define virq_to_hw(virq) ((unsigned int)irq_map[virq].hwirq) 195static inline struct qe_ic *qe_ic_from_irq_data(struct irq_data *d)
196{
197 return irq_data_get_irq_chip_data(d);
198}
196 199
197static void qe_ic_unmask_irq(unsigned int virq) 200static void qe_ic_unmask_irq(struct irq_data *d)
198{ 201{
199 struct qe_ic *qe_ic = qe_ic_from_irq(virq); 202 struct qe_ic *qe_ic = qe_ic_from_irq_data(d);
200 unsigned int src = virq_to_hw(virq); 203 unsigned int src = irqd_to_hwirq(d);
201 unsigned long flags; 204 unsigned long flags;
202 u32 temp; 205 u32 temp;
203 206
@@ -210,10 +213,10 @@ static void qe_ic_unmask_irq(unsigned int virq)
210 raw_spin_unlock_irqrestore(&qe_ic_lock, flags); 213 raw_spin_unlock_irqrestore(&qe_ic_lock, flags);
211} 214}
212 215
213static void qe_ic_mask_irq(unsigned int virq) 216static void qe_ic_mask_irq(struct irq_data *d)
214{ 217{
215 struct qe_ic *qe_ic = qe_ic_from_irq(virq); 218 struct qe_ic *qe_ic = qe_ic_from_irq_data(d);
216 unsigned int src = virq_to_hw(virq); 219 unsigned int src = irqd_to_hwirq(d);
217 unsigned long flags; 220 unsigned long flags;
218 u32 temp; 221 u32 temp;
219 222
@@ -238,9 +241,9 @@ static void qe_ic_mask_irq(unsigned int virq)
238 241
239static struct irq_chip qe_ic_irq_chip = { 242static struct irq_chip qe_ic_irq_chip = {
240 .name = "QEIC", 243 .name = "QEIC",
241 .unmask = qe_ic_unmask_irq, 244 .irq_unmask = qe_ic_unmask_irq,
242 .mask = qe_ic_mask_irq, 245 .irq_mask = qe_ic_mask_irq,
243 .mask_ack = qe_ic_mask_irq, 246 .irq_mask_ack = qe_ic_mask_irq,
244}; 247};
245 248
246static int qe_ic_host_match(struct irq_host *h, struct device_node *node) 249static int qe_ic_host_match(struct irq_host *h, struct device_node *node)
@@ -262,10 +265,10 @@ static int qe_ic_host_map(struct irq_host *h, unsigned int virq,
262 /* Default chip */ 265 /* Default chip */
263 chip = &qe_ic->hc_irq; 266 chip = &qe_ic->hc_irq;
264 267
265 set_irq_chip_data(virq, qe_ic); 268 irq_set_chip_data(virq, qe_ic);
266 irq_to_desc(virq)->status |= IRQ_LEVEL; 269 irq_set_status_flags(virq, IRQ_LEVEL);
267 270
268 set_irq_chip_and_handler(virq, chip, handle_level_irq); 271 irq_set_chip_and_handler(virq, chip, handle_level_irq);
269 272
270 return 0; 273 return 0;
271} 274}
@@ -381,13 +384,13 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags,
381 384
382 qe_ic_write(qe_ic->regs, QEIC_CICR, temp); 385 qe_ic_write(qe_ic->regs, QEIC_CICR, temp);
383 386
384 set_irq_data(qe_ic->virq_low, qe_ic); 387 irq_set_handler_data(qe_ic->virq_low, qe_ic);
385 set_irq_chained_handler(qe_ic->virq_low, low_handler); 388 irq_set_chained_handler(qe_ic->virq_low, low_handler);
386 389
387 if (qe_ic->virq_high != NO_IRQ && 390 if (qe_ic->virq_high != NO_IRQ &&
388 qe_ic->virq_high != qe_ic->virq_low) { 391 qe_ic->virq_high != qe_ic->virq_low) {
389 set_irq_data(qe_ic->virq_high, qe_ic); 392 irq_set_handler_data(qe_ic->virq_high, qe_ic);
390 set_irq_chained_handler(qe_ic->virq_high, high_handler); 393 irq_set_chained_handler(qe_ic->virq_high, high_handler);
391 } 394 }
392} 395}
393 396