patch-2.3.16 linux/arch/alpha/kernel/sys_rx164.c
Next file: linux/arch/alpha/kernel/sys_sable.c
Previous file: linux/arch/alpha/kernel/sys_ruffian.c
Back to the patch index
Back to the overall index
- Lines: 99
- Date:
Tue Aug 31 10:50:44 1999
- Orig file:
v2.3.15/linux/arch/alpha/kernel/sys_rx164.c
- Orig date:
Fri Aug 13 11:53:50 1999
diff -u --recursive --new-file v2.3.15/linux/arch/alpha/kernel/sys_rx164.c linux/arch/alpha/kernel/sys_rx164.c
@@ -3,7 +3,7 @@
*
* Copyright (C) 1995 David A Rusling
* Copyright (C) 1996 Jay A Estabrook
- * Copyright (C) 1998 Richard Henderson
+ * Copyright (C) 1998, 1999 Richard Henderson
*
* Code supporting the RX164 (PCA56+POLARIS).
*/
@@ -26,9 +26,9 @@
#include <asm/core_polaris.h>
#include "proto.h"
-#include "irq.h"
-#include "bios32.h"
-#include "machvec.h"
+#include "irq_impl.h"
+#include "pci_impl.h"
+#include "machvec_impl.h"
static void
@@ -138,6 +138,8 @@
enable_irq(16 + 20); /* enable ISA interrupts */
enable_irq(2); /* enable cascade */
}
+
+
/* The RX164 changed its interrupt routing between pass1 and pass2...
*
* PASS1:
@@ -171,7 +173,7 @@
*/
static int __init
-rx164_map_irq(struct pci_dev *dev, int slot, int pin)
+rx164_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
{
#if 0
char irq_tab_pass1[6][5] = {
@@ -183,7 +185,7 @@
{ 16+2, 16+2, 16+7, 16+12, 16+17}, /* IdSel 9, slot 3 */
{ 16+1, 16+1, 16+6, 16+11, 16+16}, /* IdSel 10, slot 4 */
};
-#endif
+#else
char irq_tab[6][5] = {
/*INT INTA INTB INTC INTD */
{ 16+0, 16+0, 16+6, 16+11, 16+16}, /* IdSel 5, slot 0 */
@@ -193,20 +195,14 @@
{ 16+3, 16+3, 16+9, 16+14, 16+19}, /* IdSel 9, slot 3 */
{ 16+4, 16+4, 16+10, 16+15, 16+5}, /* IdSel 10, PCI-PCI */
};
+#endif
const long min_idsel = 5, max_idsel = 10, irqs_per_slot = 5;
+
/* JRP - Need to figure out how to distinguish pass1 from pass2,
- * and use the correct table...
- */
+ and use the correct table. */
return COMMON_TABLE_LOOKUP;
}
-void __init
-rx164_pci_fixup(void)
-{
- layout_all_busses(DEFAULT_IO_BASE, DEFAULT_MEM_BASE);
- common_pci_fixup(rx164_map_irq, common_swizzle);
-}
-
/*
* The System Vector
@@ -220,17 +216,21 @@
DO_POLARIS_BUS,
machine_check: polaris_machine_check,
max_dma_address: ALPHA_MAX_DMA_ADDRESS,
+ min_io_address: DEFAULT_IO_BASE,
+ min_mem_address: DEFAULT_MEM_BASE,
nr_irqs: 40,
irq_probe_mask: _PROBE_MASK(40),
update_irq_hw: rx164_update_irq_hw,
- ack_irq: generic_ack_irq,
+ ack_irq: common_ack_irq,
device_interrupt: rx164_device_interrupt,
init_arch: polaris_init_arch,
init_irq: rx164_init_irq,
- init_pit: generic_init_pit,
- pci_fixup: rx164_pci_fixup,
- kill_arch: generic_kill_arch,
+ init_pit: common_init_pit,
+ init_pci: common_init_pci,
+ kill_arch: common_kill_arch,
+ pci_map_irq: rx164_map_irq,
+ pci_swizzle: common_swizzle,
};
ALIAS_MV(rx164)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)