These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / m68k / mac / psc.c
index 835fa04..2290c0c 100644 (file)
@@ -29,6 +29,7 @@
 
 int psc_present;
 volatile __u8 *psc;
+EXPORT_SYMBOL_GPL(psc);
 
 /*
  * Debugging dump, used in various places to see what's going on.
@@ -113,9 +114,10 @@ void __init psc_init(void)
  * PSC interrupt handler. It's a lot like the VIA interrupt handler.
  */
 
-static void psc_irq(unsigned int irq, struct irq_desc *desc)
+static void psc_irq(struct irq_desc *desc)
 {
        unsigned int offset = (unsigned int)irq_desc_get_handler_data(desc);
+       unsigned int irq = irq_desc_get_irq(desc);
        int pIFR        = pIFRbase + offset;
        int pIER        = pIERbase + offset;
        int irq_num;
@@ -148,14 +150,10 @@ static void psc_irq(unsigned int irq, struct irq_desc *desc)
 
 void __init psc_register_interrupts(void)
 {
-       irq_set_chained_handler(IRQ_AUTO_3, psc_irq);
-       irq_set_handler_data(IRQ_AUTO_3, (void *)0x30);
-       irq_set_chained_handler(IRQ_AUTO_4, psc_irq);
-       irq_set_handler_data(IRQ_AUTO_4, (void *)0x40);
-       irq_set_chained_handler(IRQ_AUTO_5, psc_irq);
-       irq_set_handler_data(IRQ_AUTO_5, (void *)0x50);
-       irq_set_chained_handler(IRQ_AUTO_6, psc_irq);
-       irq_set_handler_data(IRQ_AUTO_6, (void *)0x60);
+       irq_set_chained_handler_and_data(IRQ_AUTO_3, psc_irq, (void *)0x30);
+       irq_set_chained_handler_and_data(IRQ_AUTO_4, psc_irq, (void *)0x40);
+       irq_set_chained_handler_and_data(IRQ_AUTO_5, psc_irq, (void *)0x50);
+       irq_set_chained_handler_and_data(IRQ_AUTO_6, psc_irq, (void *)0x60);
 }
 
 void psc_irq_enable(int irq) {