]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/m68k/atari/ataints.c
[POWERPC] iSeries: Use alternate paca structure for booting
[linux-2.6-omap-h63xx.git] / arch / m68k / atari / ataints.c
index ece13cbf9950a1b69a966b2b99766eeeeeca2be7..b45593a60bddf67bfdb57e611ded063f3b386993 100644 (file)
@@ -40,6 +40,7 @@
 #include <linux/kernel_stat.h>
 #include <linux/init.h>
 #include <linux/seq_file.h>
+#include <linux/module.h>
 
 #include <asm/system.h>
 #include <asm/traps.h>
@@ -332,11 +333,14 @@ static void atari_shutdown_irq(unsigned int irq)
        atari_disable_irq(irq);
        atari_turnoff_irq(irq);
        m68k_irq_shutdown(irq);
+
+       if (irq == IRQ_AUTO_4)
+           vectors[VEC_INT4] = falcon_hblhandler;
 }
 
 static struct irq_controller atari_irq_controller = {
        .name           = "atari",
-       .lock           = SPIN_LOCK_UNLOCKED,
+       .lock           = __SPIN_LOCK_UNLOCKED(atari_irq_controller.lock),
        .startup        = atari_startup_irq,
        .shutdown       = atari_shutdown_irq,
        .enable         = atari_enable_irq,
@@ -356,7 +360,7 @@ static struct irq_controller atari_irq_controller = {
 
 void __init atari_init_IRQ(void)
 {
-       m68k_setup_user_interrupt(VEC_USER, 192, NULL);
+       m68k_setup_user_interrupt(VEC_USER, NUM_ATARI_SOURCES - IRQ_USER, NULL);
        m68k_setup_irq_controller(&atari_irq_controller, 1, NUM_ATARI_SOURCES - 1);
 
        /* Initialize the MFP(s) */
@@ -403,8 +407,10 @@ void __init atari_init_IRQ(void)
                 * gets overruns)
                 */
 
-               if (!MACH_IS_HADES)
+               if (!MACH_IS_HADES) {
                        vectors[VEC_INT2] = falcon_hblhandler;
+                       vectors[VEC_INT4] = falcon_hblhandler;
+               }
        }
 
        if (ATARIHW_PRESENT(PCM_8BIT) && ATARIHW_PRESENT(MICROWIRE)) {
@@ -441,6 +447,7 @@ unsigned long atari_register_vme_int(void)
        free_vme_vec_bitmap |= 1 << i;
        return VME_SOURCE_BASE + i;
 }
+EXPORT_SYMBOL(atari_register_vme_int);
 
 
 void atari_unregister_vme_int(unsigned long irq)
@@ -450,5 +457,6 @@ void atari_unregister_vme_int(unsigned long irq)
                free_vme_vec_bitmap &= ~(1 << irq);
        }
 }
+EXPORT_SYMBOL(atari_unregister_vme_int);