diff options
-rw-r--r-- | arch/mips/sgi/kernel/reset.c | 8 | ||||
-rw-r--r-- | drivers/net/sgiseeq.c | 5 | ||||
-rw-r--r-- | drivers/scsi/sgiwd93.c | 17 | ||||
-rw-r--r-- | drivers/sgi/char/sgiserial.c | 2 | ||||
-rw-r--r-- | include/asm-mips/sgihpc.h | 4 | ||||
-rw-r--r-- | include/asm-mips/sgint23.h | 15 |
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 */ |