patch-2.1.121 linux/arch/alpha/kernel/sys_eb64p.c
Next file: linux/arch/alpha/kernel/sys_jensen.c
Previous file: linux/arch/alpha/kernel/sys_dp264.c
Back to the patch index
Back to the overall index
- Lines: 40
- Date:
Sun Sep 6 10:34:33 1998
- Orig file:
v2.1.120/linux/arch/alpha/kernel/sys_eb64p.c
- Orig date:
Tue Aug 18 22:02:02 1998
diff -u --recursive --new-file v2.1.120/linux/arch/alpha/kernel/sys_eb64p.c linux/arch/alpha/kernel/sys_eb64p.c
@@ -52,9 +52,6 @@
{
unsigned long pld;
unsigned int i;
- unsigned long flags;
-
- save_and_cli(flags);
/* Read the interrupt summary registers */
pld = inb(0x26) | (inb(0x27) << 8);
@@ -72,12 +69,28 @@
handle_irq(16 + i, 16 + i, regs);
}
}
- restore_flags(flags);
}
static void __init
eb64p_init_irq(void)
{
+#ifdef CONFIG_ALPHA_GENERIC
+ /*
+ * CABRIO SRM may not set variation correctly, so here we test
+ * the high word of the interrupt summary register for the RAZ
+ * bits, and hope that a true EB64+ would read all ones...
+ */
+ if (inw(0x806) != 0xffff) {
+ extern struct alpha_machine_vector cabriolet_mv;
+#if 1
+ printk("eb64p_init_irq: resetting for CABRIO\n");
+#endif
+ alpha_mv = cabriolet_mv;
+ alpha_mv.init_irq();
+ return;
+ }
+#endif /* GENERIC */
+
STANDARD_INIT_IRQ_PROLOG;
outb(alpha_irq_mask >> 16, 0x26);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov