summaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/sys_ruffian.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-10-09 00:00:47 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-10-09 00:00:47 +0000
commitd6434e1042f3b0a6dfe1b1f615af369486f9b1fa (patch)
treee2be02f33984c48ec019c654051d27964e42c441 /arch/alpha/kernel/sys_ruffian.c
parent609d1e803baf519487233b765eb487f9ec227a18 (diff)
Merge with 2.3.19.
Diffstat (limited to 'arch/alpha/kernel/sys_ruffian.c')
-rw-r--r--arch/alpha/kernel/sys_ruffian.c57
1 files changed, 20 insertions, 37 deletions
diff --git a/arch/alpha/kernel/sys_ruffian.c b/arch/alpha/kernel/sys_ruffian.c
index 4d52c256b..f303a8255 100644
--- a/arch/alpha/kernel/sys_ruffian.c
+++ b/arch/alpha/kernel/sys_ruffian.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 RUFFIAN.
*/
@@ -26,9 +26,9 @@
#include <asm/core_pyxis.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
ruffian_update_irq_hw(unsigned long irq, unsigned long mask, int unmask_p)
@@ -164,18 +164,6 @@ ruffian_init_irq(void)
}
-/*
- * For RUFFIAN, we do not want to make any modifications to the PCI
- * setup. But we may need to do some kind of init.
- */
-
-static void __init
-ruffian_pci_fixup(void)
-{
- /* layout_all_busses(DEFAULT_IO_BASE, DEFAULT_MEM_BASE); */
-}
-
-
#ifdef BUILDING_FOR_MILO
/*
* The DeskStation Ruffian motherboard firmware does not place
@@ -215,25 +203,9 @@ ruffian_get_bank_size(unsigned long offset)
}
#endif /* BUILDING_FOR_MILO */
-static void __init
-ruffian_init_arch(unsigned long *mem_start, unsigned long *mem_end)
-{
- /* FIXME: What do we do with ruffian_get_bank_size above? */
-
- pyxis_enable_errors();
- if (!pyxis_srm_window_setup()) {
- printk("ruffian_init_arch: Skipping window register rewrites."
- "\n... Trust DeskStation firmware!\n");
- }
- pyxis_finish_init_arch();
-}
-
static void
ruffian_init_pit (void)
{
- /* Ruffian depends on the system timer established in MILO! */
- request_region(0x70, 0x10, "timer");
-
outb(0xb6, 0x43); /* pit counter 2: speaker */
outb(0x31, 0x42);
outb(0x13, 0x42);
@@ -248,7 +220,15 @@ ruffian_kill_arch (int mode, char *reboot_cmd)
*(vuip) PYXIS_RESET = 0x0000dead;
mb();
#endif
- generic_kill_arch(mode, reboot_cmd);
+ common_kill_arch(mode, reboot_cmd);
+}
+
+static int __init
+ruffian_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
+{
+ /* We don't know anything about the PCI routing, so leave
+ the IRQ unchanged. */
+ return dev->irq;
}
@@ -260,11 +240,12 @@ struct alpha_machine_vector ruffian_mv __initmv = {
vector_name: "Ruffian",
DO_EV5_MMU,
DO_DEFAULT_RTC,
- /* For the moment, do not use BWIO on RUFFIAN. */
- IO(PYXIS,pyxis,pyxis),
+ DO_PYXIS_IO,
DO_PYXIS_BUS,
machine_check: pyxis_machine_check,
max_dma_address: ALPHA_RUFFIAN_MAX_DMA_ADDRESS,
+ min_io_address: DEFAULT_IO_BASE,
+ min_mem_address: DEFAULT_MEM_BASE,
nr_irqs: 48,
irq_probe_mask: RUFFIAN_PROBE_MASK,
@@ -272,10 +253,12 @@ struct alpha_machine_vector ruffian_mv __initmv = {
ack_irq: ruffian_ack_irq,
device_interrupt: ruffian_device_interrupt,
- init_arch: ruffian_init_arch,
+ init_arch: pyxis_init_arch,
init_irq: ruffian_init_irq,
init_pit: ruffian_init_pit,
- pci_fixup: ruffian_pci_fixup,
+ init_pci: common_init_pci,
kill_arch: ruffian_kill_arch,
+ pci_map_irq: ruffian_map_irq,
+ pci_swizzle: common_swizzle,
};
ALIAS_MV(ruffian)