]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/sparc/kernel/sun4m_irq.c
sparc32,sun4m: percpu and global register definitions moved to irq.h
[karo-tx-linux.git] / arch / sparc / kernel / sun4m_irq.c
index 1e13ce96dc7eb0df0d1cac0d126ceb632e265b4c..69df6257a32ec87d31fdbce4ce99cb5c94c37f46 100644 (file)
  */
 
 
-struct sun4m_irq_percpu {
-       u32             pending;
-       u32             clear;
-       u32             set;
-};
-
-struct sun4m_irq_global {
-       u32             pending;
-       u32             mask;
-       u32             mask_clear;
-       u32             mask_set;
-       u32             interrupt_target;
-};
-
 /* Code in entry.S needs to get at these register mappings.  */
 struct sun4m_irq_percpu __iomem *sun4m_irq_percpu[SUN4M_NCPUS];
 struct sun4m_irq_global __iomem *sun4m_irq_global;
@@ -155,8 +141,11 @@ struct sun4m_irq_global __iomem *sun4m_irq_global;
 #define        OBP_INT_LEVEL_SBUS      0x30
 #define        OBP_INT_LEVEL_VME       0x40
 
+#define SUN4M_TIMER_IRQ         (OBP_INT_LEVEL_ONBOARD | 10)
+#define SUM4M_PROFILE_IRQ       (OBP_INT_LEVEL_ONBOARD | 14)
+
 static unsigned long irq_mask[0x50] = {
-       /* SMP */
+       /* 0x00 - SMP */
        0,  SUN4M_SOFT_INT(1),
        SUN4M_SOFT_INT(2),  SUN4M_SOFT_INT(3),
        SUN4M_SOFT_INT(4),  SUN4M_SOFT_INT(5),
@@ -165,7 +154,7 @@ static unsigned long irq_mask[0x50] = {
        SUN4M_SOFT_INT(10), SUN4M_SOFT_INT(11),
        SUN4M_SOFT_INT(12), SUN4M_SOFT_INT(13),
        SUN4M_SOFT_INT(14), SUN4M_SOFT_INT(15),
-       /* soft */
+       /* 0x10 - soft */
        0,  SUN4M_SOFT_INT(1),
        SUN4M_SOFT_INT(2),  SUN4M_SOFT_INT(3),
        SUN4M_SOFT_INT(4),  SUN4M_SOFT_INT(5),
@@ -174,19 +163,19 @@ static unsigned long irq_mask[0x50] = {
        SUN4M_SOFT_INT(10), SUN4M_SOFT_INT(11),
        SUN4M_SOFT_INT(12), SUN4M_SOFT_INT(13),
        SUN4M_SOFT_INT(14), SUN4M_SOFT_INT(15),
-       /* onboard */
+       /* 0x20 - onboard */
        0, 0, 0, 0,
        SUN4M_INT_SCSI,  0, SUN4M_INT_ETHERNET, 0,
        SUN4M_INT_VIDEO, SUN4M_INT_MODULE,
        SUN4M_INT_REALTIME, SUN4M_INT_FLOPPY,
        (SUN4M_INT_SERIAL | SUN4M_INT_KBDMS),
        SUN4M_INT_AUDIO, 0, SUN4M_INT_MODULE_ERR,
-       /* sbus */
+       /* 0x30 - sbus */
        0, 0, SUN4M_INT_SBUS(0), SUN4M_INT_SBUS(1),
        0, SUN4M_INT_SBUS(2), 0, SUN4M_INT_SBUS(3),
        0, SUN4M_INT_SBUS(4), 0, SUN4M_INT_SBUS(5),
        0, SUN4M_INT_SBUS(6), 0, 0,
-       /* vme */
+       /* 0x40 - vme */
        0, 0, SUN4M_INT_VME(0), SUN4M_INT_VME(1),
        0, SUN4M_INT_VME(2), 0, SUN4M_INT_VME(3),
        0, SUN4M_INT_VME(4), 0, SUN4M_INT_VME(5),
@@ -319,7 +308,6 @@ struct sun4m_timer_global {
 
 static struct sun4m_timer_global __iomem *timers_global;
 
-#define TIMER_IRQ      (OBP_INT_LEVEL_ONBOARD | 10)
 
 unsigned int lvl14_resolution = (((1000000/HZ) + 1) << 10);
 
@@ -396,7 +384,7 @@ static void __init sun4m_init_timers(irq_handler_t counter_fn)
 
        master_l10_counter = &timers_global->l10_count;
 
-       err = request_irq(TIMER_IRQ, counter_fn,
+       err = request_irq(SUN4M_TIMER_IRQ, counter_fn,
                          (IRQF_DISABLED | SA_STATIC_ALLOC), "timer", NULL);
        if (err) {
                printk(KERN_ERR "sun4m_init_timers: Register IRQ error %d.\n",