summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/sgi/kernel/reset.c8
-rw-r--r--drivers/net/sgiseeq.c5
-rw-r--r--drivers/scsi/sgiwd93.c17
-rw-r--r--drivers/sgi/char/sgiserial.c2
-rw-r--r--include/asm-mips/sgihpc.h4
-rw-r--r--include/asm-mips/sgint23.h15
6 files changed, 34 insertions, 17 deletions
diff --git a/arch/mips/sgi/kernel/reset.c b/arch/mips/sgi/kernel/reset.c
index 4a89532a6..ace23da4f 100644
--- a/arch/mips/sgi/kernel/reset.c
+++ b/arch/mips/sgi/kernel/reset.c
@@ -1,4 +1,4 @@
-/* $Id: reset.c,v 1.4 1998/07/10 01:14:50 ralf Exp $
+/* $Id: reset.c,v 1.6 1999/04/10 12:21:30 ulfc Exp $
*
* Reset a SGI.
*
@@ -108,7 +108,7 @@ static void debounce(unsigned long data)
if (has_paniced)
prom_reboot();
- enable_irq(9);
+ enable_irq(SGI_PANEL_IRQ);
}
static inline void power_button(void)
@@ -185,7 +185,7 @@ static void panel_int(int irq, void *dev_id, struct pt_regs *regs)
hpc3mregs->panel = 3; /* power_interrupt | power_supply_on */
if (ioc_icontrol->istat1 & 2) { /* Wait until interrupt goes away */
- disable_irq(9);
+ disable_irq(SGI_PANEL_IRQ);
init_timer(&debounce_timer);
debounce_timer.function = debounce;
debounce_timer.expires = jiffies + 5;
@@ -239,7 +239,7 @@ void indy_reboot_setup(void)
_machine_halt = sgi_machine_halt;
_machine_power_off = sgi_machine_power_off;
- request_irq(9, panel_int, 0, "Front Panel", NULL);
+ request_irq(SGI_PANEL_IRQ, panel_int, 0, "Front Panel", NULL);
init_timer(&blink_timer);
blink_timer.function = blink_timeout;
notifier_chain_register(&panic_notifier_list, &panic_block);
diff --git a/drivers/net/sgiseeq.c b/drivers/net/sgiseeq.c
index 401b393f6..c04922287 100644
--- a/drivers/net/sgiseeq.c
+++ b/drivers/net/sgiseeq.c
@@ -1,4 +1,4 @@
-/* $Id: sgiseeq.c,v 1.8 1998/08/25 09:17:45 ralf Exp $
+/* $Id: sgiseeq.c,v 1.9 1998/10/14 23:40:46 ralf Exp $
*
* sgiseeq.c: Seeq8003 ethernet driver for SGI machines.
*
@@ -32,6 +32,7 @@
#include <linux/skbuff.h>
#include <asm/sgihpc.h>
+#include <asm/sgint23.h>
#include <asm/sgialib.h>
#include "sgiseeq.h"
@@ -738,5 +739,5 @@ int sgiseeq_probe(struct device *dev)
str2eaddr(onboard_eth_addr, ep);
return sgiseeq_init(dev,
(struct sgiseeq_regs *) (KSEG1ADDR(0x1fbd4000)),
- &hpc3c0->ethregs, 3);
+ &hpc3c0->ethregs, SGI_ENET_IRQ);
}
diff --git a/drivers/scsi/sgiwd93.c b/drivers/scsi/sgiwd93.c
index 8f809b530..ed3d93287 100644
--- a/drivers/scsi/sgiwd93.c
+++ b/drivers/scsi/sgiwd93.c
@@ -7,7 +7,7 @@
*
* (In all truth, Jed Schimmel wrote all this code.)
*
- * $Id: sgiwd93.c,v 1.13 1999/03/28 23:06:06 tsbogend Exp $
+ * $Id: sgiwd93.c,v 1.14 1999/08/02 17:34:29 andrewb Exp $
*/
#include <linux/init.h>
#include <linux/types.h>
@@ -281,7 +281,7 @@ __initfunc(int sgiwd93_detect(Scsi_Host_Template *HPsUX))
sgiwd93_host = scsi_register(HPsUX, sizeof(struct WD33C93_hostdata));
sgiwd93_host->base = (unsigned char *) hregs;
- sgiwd93_host->irq = 1;
+ sgiwd93_host->irq = SGI_WD93_0_IRQ;
buf = (uchar *) get_free_page(GFP_KERNEL);
init_hpc_chain(buf);
@@ -295,12 +295,12 @@ __initfunc(int sgiwd93_detect(Scsi_Host_Template *HPsUX))
hdata->dma_bounce_buffer = (uchar *) (KSEG1ADDR(buf));
dma_cache_wback_inv((unsigned long) buf, PAGE_SIZE);
- request_irq(1, sgiwd93_intr, 0, "SGI WD93", (void *) sgiwd93_host);
+ request_irq(SGI_WD93_0_IRQ, sgiwd93_intr, 0, "SGI WD93", (void *) sgiwd93_host);
/* set up second controller on the Indigo2 */
if(!sgi_guiness) {
sgiwd93_host1 = scsi_register(HPsUX, sizeof(struct WD33C93_hostdata));
sgiwd93_host1->base = (unsigned char *) hregs1;
- sgiwd93_host1->irq = 2;
+ sgiwd93_host1->irq = SGI_WD93_1_IRQ;
buf = (uchar *) get_free_page(GFP_KERNEL);
init_hpc_chain(buf);
@@ -314,7 +314,7 @@ __initfunc(int sgiwd93_detect(Scsi_Host_Template *HPsUX))
hdata1->dma_bounce_buffer = (uchar *) (KSEG1ADDR(buf));
dma_cache_wback_inv((unsigned long) buf, PAGE_SIZE);
- request_irq(2, sgiwd93_intr, 0, "SGI WD93", (void *) sgiwd93_host1);
+ request_irq(SGI_WD93_1_IRQ, sgiwd93_intr, 0, "SGI WD93", (void *) sgiwd93_host1);
}
called = 1;
@@ -337,9 +337,14 @@ Scsi_Host_Template driver_template = SGIWD93_SCSI;
int sgiwd93_release(struct Scsi_Host *instance)
{
#ifdef MODULE
- free_irq(1, sgiwd93_intr);
+ free_irq(SGI_WD93_0_IRQ, sgiwd93_intr);
free_page(KSEG0ADDR(hdata->dma_bounce_buffer));
wd33c93_release();
+ if(!sgi_guiness) {
+ free_irq(SGI_WD93_1_IRQ, sgiwd93_intr);
+ free_page(KSEG0ADDR(hdata1->dma_bounce_buffer));
+ wd33c93_release();
+ }
#endif
return 1;
}
diff --git a/drivers/sgi/char/sgiserial.c b/drivers/sgi/char/sgiserial.c
index 4178891ce..f779253b0 100644
--- a/drivers/sgi/char/sgiserial.c
+++ b/drivers/sgi/char/sgiserial.c
@@ -44,7 +44,7 @@ struct sgi_zschannel *zs_kgdbchan;
struct sgi_serial zs_soft[NUM_CHANNELS];
struct sgi_serial *zs_chain; /* IRQ servicing chain */
-static int zilog_irq = 21;
+static int zilog_irq = SGI_SERIAL_IRQ;
/* Console hooks... */
static int zs_cons_chanout = 0;
diff --git a/include/asm-mips/sgihpc.h b/include/asm-mips/sgihpc.h
index 7b1c12e1a..3b0aec963 100644
--- a/include/asm-mips/sgihpc.h
+++ b/include/asm-mips/sgihpc.h
@@ -1,4 +1,4 @@
-/* $Id: sgihpc.h,v 1.5 1999/02/07 22:02:05 ulfc Exp $
+/* $Id: sgihpc.h,v 1.6 1999/04/01 23:24:00 ulfc Exp $
*
* sgihpc.h: Various HPC I/O controller defines. The HPC is basically
* the approximate functional equivalent of the Sun SYSIO
@@ -330,8 +330,6 @@ extern struct hpc3_miscregs *hpc3mregs;
/* We need software copies of these because they are write only. */
extern unsigned long sgi_hpc_write1, sgi_hpc_write2;
-#define SGI_KEYBOARD_IRQ 20
-
struct hpc_keyb {
#ifdef __MIPSEB__
unsigned char _unused0[3];
diff --git a/include/asm-mips/sgint23.h b/include/asm-mips/sgint23.h
index 31e5dd148..d9a093861 100644
--- a/include/asm-mips/sgint23.h
+++ b/include/asm-mips/sgint23.h
@@ -1,4 +1,4 @@
-/* $Id: sgint23.h,v 1.2 1998/03/11 15:21:45 ralf Exp $
+/* $Id: sgint23.h,v 1.3 1999/05/07 22:35:37 ulfc Exp $
* sgint23.h: Defines for the SGI INT2 and INT3 chipsets.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
@@ -20,6 +20,19 @@
#define SGINT_HPCDMA 41 /* INDY has 11 HPCDMA irq _sources_ */
#define SGINT_END 52 /* End of 'spaces' */
+/* Individual interrupt definitions for the INDY and Indigo2
+ */
+
+#define SGI_WD93_0_IRQ SGINT_LOCAL0 + 1 /* 1st onboard WD93 */
+#define SGI_WD93_1_IRQ SGINT_LOCAL0 + 2 /* 2nd onboard WD93 */
+#define SGI_ENET_IRQ SGINT_LOCAL0 + 3 /* onboard ethernet */
+
+#define SGI_PANEL_IRQ SGINT_LOCAL1 + 1 /* front panel */
+
+#define SGI_EISA_IRQ SGINT_LOCAL2 + 3 /* EISA interrupts */
+#define SGI_KEYBOARD_IRQ SGINT_LOCAL2 + 4 /* keyboard */
+#define SGI_SERIAL_IRQ SGINT_LOCAL2 + 5 /* onboard serial */
+
/* INT2 occupies HPC PBUS slot 4, INT3 uses slot 6. */
#define SGI_INT2_BASE 0x1fbd9000 /* physical */
#define SGI_INT3_BASE 0x1fbd9880 /* physical */