[MIPS] RM: Collected changes
- EISA support for non PCI RMs (RM200 and RM400-xxx). The major part is the splitting of the EISA and onboard ISA of the RM200, which makes the EISA bus on the RM200 look like on other RMs. - 64bit kernel support - system type detection is now common for big and little endian - moved sniprom code to arch/mips/fw - added call_o32 function to arch/mips/fw/lib, which uses a private stack for calling prom functions - fix problem with ISA interrupts, which makes using PIT clockevent possible Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
committed by
Ralf Baechle
parent
237cfee1db
commit
231a35d372
50
arch/mips/sni/eisa.c
Normal file
50
arch/mips/sni/eisa.c
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Virtual EISA root driver.
|
||||
* Acts as a placeholder if we don't have a proper EISA bridge.
|
||||
*
|
||||
* (C) 2003 Marc Zyngier <maz@wild-wind.fr.eu.org>
|
||||
* modified for SNI usage by Thomas Bogendoerfer
|
||||
*
|
||||
* This code is released under the GPL version 2.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/eisa.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
/* The default EISA device parent (virtual root device).
|
||||
* Now use a platform device, since that's the obvious choice. */
|
||||
|
||||
static struct platform_device eisa_root_dev = {
|
||||
.name = "eisa",
|
||||
.id = 0,
|
||||
};
|
||||
|
||||
static struct eisa_root_device eisa_bus_root = {
|
||||
.dev = &eisa_root_dev.dev,
|
||||
.bus_base_addr = 0,
|
||||
.res = &ioport_resource,
|
||||
.slots = EISA_MAX_SLOTS,
|
||||
.dma_mask = 0xffffffff,
|
||||
.force_probe = 1,
|
||||
};
|
||||
|
||||
int __init sni_eisa_root_init(void)
|
||||
{
|
||||
int r;
|
||||
|
||||
r = platform_device_register(&eisa_root_dev);
|
||||
if (!r)
|
||||
return r;
|
||||
|
||||
eisa_root_dev.dev.driver_data = &eisa_bus_root;
|
||||
|
||||
if (eisa_root_register(&eisa_bus_root)) {
|
||||
/* A real bridge may have been registered before
|
||||
* us. So quietly unregister. */
|
||||
platform_device_unregister(&eisa_root_dev);
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user