patch-2.1.132 linux/arch/ppc/kernel/irq.c
Next file: linux/arch/ppc/kernel/mbx_setup.c
Previous file: linux/arch/ppc/kernel/head.S
Back to the patch index
Back to the overall index
- Lines: 86
- Date:
Mon Dec 21 08:37:20 1998
- Orig file:
v2.1.131/linux/arch/ppc/kernel/irq.c
- Orig date:
Thu Nov 19 09:56:27 1998
diff -u --recursive --new-file v2.1.131/linux/arch/ppc/kernel/irq.c linux/arch/ppc/kernel/irq.c
@@ -1,4 +1,6 @@
/*
+ * $Id: irq.c,v 1.90 1998/12/10 02:39:46 cort Exp $
+ *
* arch/ppc/kernel/irq.c
*
* Derived from arch/i386/kernel/irq.c
@@ -6,6 +8,7 @@
* Adapted from arch/i386 by Gary Thomas
* Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
* Updated and modified by Cort Dougan (cort@cs.nmt.edu)
+ * Copyright (C) 1996 Cort Dougan
* Adapted for Power Macintosh by Paul Mackerras
* Copyright (C) 1996 Paul Mackerras (paulus@cs.anu.edu.au)
* Amiga/APUS changes by Jesper Skov (jskov@cygnus.co.uk).
@@ -309,14 +312,14 @@
static void mbx_mask_irq(unsigned int irq_nr)
{
cached_irq_mask[0] &= ~(1 << (31-irq_nr));
- ((immap_t *)MBX_IMAP_ADDR)->im_siu_conf.sc_simask =
+ ((immap_t *)IMAP_ADDR)->im_siu_conf.sc_simask =
cached_irq_mask[0];
}
static void mbx_unmask_irq(unsigned int irq_nr)
{
cached_irq_mask[0] |= (1 << (31-irq_nr));
- ((immap_t *)MBX_IMAP_ADDR)->im_siu_conf.sc_simask =
+ ((immap_t *)IMAP_ADDR)->im_siu_conf.sc_simask =
cached_irq_mask[0];
}
#endif /* CONFIG_8xx */
@@ -799,9 +802,13 @@
}
if (irq < 0) {
- printk(KERN_DEBUG "Bogus interrupt %d from PC = %lx\n",
- irq, regs->nip);
- spurious_interrupts++;
+ /* we get here with Gatwick but the 'bogus' isn't correct in that case -- Cort */
+ if ( irq != second_irq )
+ {
+ printk(KERN_DEBUG "Bogus interrupt %d from PC = %lx\n",
+ irq, regs->nip);
+ spurious_interrupts++;
+ }
goto out;
}
@@ -809,7 +816,7 @@
/* For MPC8xx, read the SIVEC register and shift the bits down
* to get the irq number.
*/
- bits = ((immap_t *)MBX_IMAP_ADDR)->im_siu_conf.sc_sivec;
+ bits = ((immap_t *)IMAP_ADDR)->im_siu_conf.sc_sivec;
irq = bits >> 26;
#endif /* CONFIG_8xx */
mask_and_ack_irq(irq);
@@ -1089,17 +1096,6 @@
*/
if ( _prep_type == _PREP_IBM )
irq_mode2 |= 0xa0;
- /*
- * Sound on the Powerstack reportedly needs to be edge triggered
- */
- if ( _prep_type == _PREP_Motorola )
- {
- irq_mode2 &= ~0x04L;
- irq_mode2 = 0xca;
- outb( irq_mode1 , 0x4d0 );
- outb( irq_mode2 , 0x4d1 );
- }
-
}
break;
#ifdef CONFIG_APUS
@@ -1116,8 +1112,7 @@
/* This routine will fix some missing interrupt values in the device tree
* on the gatwick mac-io controller used by some PowerBooks
*/
-__pmac
-static void pmac_fix_gatwick_interrupts(struct device_node *gw, int irq_base)
+static void __init pmac_fix_gatwick_interrupts(struct device_node *gw, int irq_base)
{
struct device_node *node;
static struct interrupt_info int_pool[4];
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov