patch-2.4.0-test2 linux/include/asm-arm/arch-ebsa285/irq.h

Next file: linux/include/asm-arm/arch-ebsa285/irqs.h
Previous file: linux/include/asm-arm/arch-ebsa285/hardware.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test1/linux/include/asm-arm/arch-ebsa285/irq.h linux/include/asm-arm/arch-ebsa285/irq.h
@@ -10,8 +10,6 @@
  *  26-Jan-1999	PJB	Don't use IACK on CATS
  *  16-Mar-1999	RMK	Added autodetect of ISA PICs
  */
-/* no need for config.h - arch/arm/kernel/irq.c does this for us */
-#include <linux/config.h>
 #include <asm/hardware.h>
 #include <asm/dec21285.h>
 #include <asm/irq.h>
@@ -36,29 +34,31 @@
 	IRQ_MASK_PCI,		/* 12 */
 	IRQ_MASK_SDRAMPARITY,	/* 13 */
 	IRQ_MASK_I2OINPOST,	/* 14 */
-	IRQ_MASK_PCI_ERR	/* 15 */
+	IRQ_MASK_PCI_ABORT,	/* 15 */
+	IRQ_MASK_PCI_SERR,	/* 16 */
+	IRQ_MASK_DISCARD_TIMER,	/* 17 */
+	IRQ_MASK_PCI_DPERR,	/* 18 */
+	IRQ_MASK_PCI_PERR,	/* 19 */
 };
 
 static int isa_irq = -1;
 
 static inline int fixup_irq(unsigned int irq)
 {
-#ifdef CONFIG_HOST_FOOTBRIDGE
 	if (irq == isa_irq)
 		irq = *(unsigned char *)PCIIACK_BASE;
-#endif
 
 	return irq;
 }
 
 static void dc21285_mask_irq(unsigned int irq)
 {
-	*CSR_IRQ_DISABLE = dc21285_irq_mask[irq & 15];
+	*CSR_IRQ_DISABLE = dc21285_irq_mask[_DC21285_INR(irq)];
 }
 
 static void dc21285_unmask_irq(unsigned int irq)
 {
-	*CSR_IRQ_ENABLE = dc21285_irq_mask[irq & 15];
+	*CSR_IRQ_ENABLE = dc21285_irq_mask[_DC21285_INR(irq)];
 }
 
 static void isa_mask_pic_lo_irq(unsigned int irq)
@@ -124,7 +124,7 @@
 	*CSR_IRQ_DISABLE = -1;
 	*CSR_FIQ_DISABLE = -1;
 
-	for (irq = _DC21285_IRQ(0); irq < _DC21285_IRQ(16); irq++) {
+	for (irq = _DC21285_IRQ(0); irq < _DC21285_IRQ(20); irq++) {
 		irq_desc[irq].valid	= 1;
 		irq_desc[irq].probe_ok	= 1;
 		irq_desc[irq].mask_ack	= dc21285_mask_irq;
@@ -138,19 +138,21 @@
 	 */
 	isa_irq = -1;
 
-	if (machine_is_ebsa285())
-		/* The following is dependent on which slot
-		 * you plug the Southbridge card into.  We
-		 * currently assume that you plug it into
-		 * the right-hand most slot.
-		 */
-		isa_irq = IRQ_PCI;
+	if (footbridge_cfn_mode()) {
+		if (machine_is_ebsa285())
+			/* The following is dependent on which slot
+			 * you plug the Southbridge card into.  We
+			 * currently assume that you plug it into
+			 * the right-hand most slot.
+			 */
+			isa_irq = IRQ_PCI;
 
-	if (machine_is_cats())
-		isa_irq = IRQ_IN2;
+		if (machine_is_cats())
+			isa_irq = IRQ_IN2;
 
-	if (machine_is_netwinder())
-		isa_irq = IRQ_IN3;
+		if (machine_is_netwinder())
+			isa_irq = IRQ_IN3;
+	}
 
 	if (isa_irq != -1) {
 		/*

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)