patch-2.4.21 linux-2.4.21/arch/sparc/kernel/sun4m_irq.c
Next file: linux-2.4.21/arch/sparc/kernel/sunos_asm.S
Previous file: linux-2.4.21/arch/sparc/kernel/sun4d_irq.c
Back to the patch index
Back to the overall index
- Lines: 43
- Date:
2003-06-13 07:51:32.000000000 -0700
- Orig file:
linux-2.4.20/arch/sparc/kernel/sun4m_irq.c
- Orig date:
2001-04-26 22:17:26.000000000 -0700
diff -urN linux-2.4.20/arch/sparc/kernel/sun4m_irq.c linux-2.4.21/arch/sparc/kernel/sun4m_irq.c
@@ -36,6 +36,7 @@
#include <asm/smp.h>
#include <asm/irq.h>
#include <asm/io.h>
+#include <asm/sbus.h>
static unsigned long dummy;
@@ -77,6 +78,17 @@
SUN4M_INT_SBUS(6) /* 14 irq 13 */
};
+static int sun4m_pil_map[] = { 0, 2, 3, 5, 7, 9, 11, 13 };
+
+unsigned int sun4m_sbint_to_irq(struct sbus_dev *sdev, unsigned int sbint)
+{
+ if (sbint >= sizeof(sun4m_pil_map)) {
+ printk(KERN_ERR "%s: bogus SBINT %d\n", sdev->prom_name, sbint);
+ BUG();
+ }
+ return sun4m_pil_map[sbint] | 0x30;
+}
+
inline unsigned long sun4m_get_irqmask(unsigned int irq)
{
unsigned long mask;
@@ -366,6 +378,7 @@
&sun4m_interrupts->undirected_target;
sun4m_interrupts->undirected_target = 0;
}
+ BTFIXUPSET_CALL(sbint_to_irq, sun4m_sbint_to_irq, BTFIXUPCALL_NORM);
BTFIXUPSET_CALL(enable_irq, sun4m_enable_irq, BTFIXUPCALL_NORM);
BTFIXUPSET_CALL(disable_irq, sun4m_disable_irq, BTFIXUPCALL_NORM);
BTFIXUPSET_CALL(enable_pil_irq, sun4m_enable_pil_irq, BTFIXUPCALL_NORM);
@@ -374,7 +387,7 @@
BTFIXUPSET_CALL(clear_profile_irq, sun4m_clear_profile_irq, BTFIXUPCALL_NORM);
BTFIXUPSET_CALL(load_profile_irq, sun4m_load_profile_irq, BTFIXUPCALL_NORM);
BTFIXUPSET_CALL(__irq_itoa, sun4m_irq_itoa, BTFIXUPCALL_NORM);
- init_timers = sun4m_init_timers;
+ sparc_init_timers = sun4m_init_timers;
#ifdef CONFIG_SMP
BTFIXUPSET_CALL(set_cpu_int, sun4m_send_ipi, BTFIXUPCALL_NORM);
BTFIXUPSET_CALL(clear_cpu_int, sun4m_clear_ipi, BTFIXUPCALL_NORM);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)