diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1999-10-09 00:00:47 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1999-10-09 00:00:47 +0000 |
commit | d6434e1042f3b0a6dfe1b1f615af369486f9b1fa (patch) | |
tree | e2be02f33984c48ec019c654051d27964e42c441 /arch/alpha/kernel/sys_ruffian.c | |
parent | 609d1e803baf519487233b765eb487f9ec227a18 (diff) |
Merge with 2.3.19.
Diffstat (limited to 'arch/alpha/kernel/sys_ruffian.c')
-rw-r--r-- | arch/alpha/kernel/sys_ruffian.c | 57 |
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) |