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

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