patch-2.1.101 linux/include/asm-arm/arch-nexuspci/irq.h
Next file: linux/include/asm-arm/arch-nexuspci/irqs.h
Previous file: linux/include/asm-arm/arch-nexuspci/io.h
Back to the patch index
Back to the overall index
- Lines: 58
- Date:
Fri May 8 00:42:40 1998
- Orig file:
v2.1.100/linux/include/asm-arm/arch-nexuspci/irq.h
- Orig date:
Tue Jan 20 16:39:42 1998
diff -u --recursive --new-file v2.1.100/linux/include/asm-arm/arch-nexuspci/irq.h linux/include/asm-arm/arch-nexuspci/irq.h
@@ -1,29 +1,27 @@
/*
- * include/asm-arm/arch-ebsa110/irq.h
+ * include/asm-arm/arch-nexuspci/irq.h
*
- * Copyright (C) 1996,1997,1998 Russell King
+ * Copyright (C) 1998 Philip Blundell
*/
-#define IRQ_MCLR ((volatile unsigned char *)0xf3000000)
-#define IRQ_MSET ((volatile unsigned char *)0xf2c00000)
-#define IRQ_MASK ((volatile unsigned char *)0xf2c00000)
+#define INT_RESET ((volatile unsigned char *)0xfff00000)
+#define INT_ENABLE ((volatile unsigned char *)0xfff00000)
+#define INT_DISABLE ((volatile unsigned char *)0xfff00000)
static __inline__ void mask_and_ack_irq(unsigned int irq)
{
- if (irq < 8)
- *IRQ_MCLR = 1 << irq;
+ INT_DISABLE[irq << 2] = 0;
+ INT_RESET[irq << 2] = 0;
}
static __inline__ void mask_irq(unsigned int irq)
{
- if (irq < 8)
- *IRQ_MCLR = 1 << irq;
+ INT_DISABLE[irq << 2] = 0;
}
static __inline__ void unmask_irq(unsigned int irq)
{
- if (irq < 8)
- *IRQ_MSET = 1 << irq;
+ INT_ENABLE[irq << 2] = 0;
}
static __inline__ unsigned long get_enabled_irqs(void)
@@ -33,14 +31,8 @@
static __inline__ void irq_init_irq(void)
{
- unsigned long flags;
-
- save_flags_cli (flags);
- *IRQ_MCLR = 0xff;
- *IRQ_MSET = 0x55;
- *IRQ_MSET = 0x00;
- if (*IRQ_MASK != 0x55)
- while (1);
- *IRQ_MCLR = 0xff; /* clear all interrupt enables */
- restore_flags (flags);
+ unsigned int i;
+ /* Disable all interrupts initially. */
+ for (i = 0; i < 8; i++)
+ mask_irq(i);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov