X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fpowerpc%2Fplatforms%2Fcell%2Fsetup.c;h=fd3e5609e3e004492fdbded682e899f4da21eec8;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=282987d6d4a2165272e3eef5ad68d15fd411a8e9;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c index 282987d6d..fd3e5609e 100644 --- a/arch/powerpc/platforms/cell/setup.c +++ b/arch/powerpc/platforms/cell/setup.c @@ -14,6 +14,7 @@ */ #undef DEBUG +#include #include #include #include @@ -48,14 +49,10 @@ #include #include #include -#include -#include #include "interrupt.h" #include "iommu.h" -#include "cbe_regs.h" #include "pervasive.h" -#include "ras.h" #ifdef DEBUG #define DBG(fmt...) udbg_printf(fmt) @@ -80,31 +77,10 @@ static void cell_progress(char *s, unsigned short hex) printk("*** %04x : %s\n", hex, s ? s : ""); } -static void __init cell_pcibios_fixup(void) -{ - struct pci_dev *dev = NULL; - - for_each_pci_dev(dev) - pci_read_irq_line(dev); -} - -static void __init cell_init_irq(void) -{ - iic_init_IRQ(); - spider_init_IRQ(); -} - static void __init cell_setup_arch(void) { -#ifdef CONFIG_SPU_BASE - spu_priv1_ops = &spu_priv1_mmio_ops; -#endif - - cbe_regs_init(); - -#ifdef CONFIG_CBE_RAS - cbe_ras_init(); -#endif + ppc_md.init_IRQ = iic_init_IRQ; + ppc_md.get_irq = iic_get_irq; #ifdef CONFIG_SMP smp_init_cell(); @@ -121,7 +97,8 @@ static void __init cell_setup_arch(void) /* Find and initialize PCI host bridges */ init_pci_config_tokens(); find_and_init_phbs(); - cbe_pervasive_init(); + spider_init_IRQ(); + cell_pervasive_init(); #ifdef CONFIG_DUMMY_CONSOLE conswitchp = &dummy_con; #endif @@ -136,8 +113,12 @@ static void __init cell_init_early(void) { DBG(" -> cell_init_early()\n"); + hpte_init_native(); + cell_init_iommu(); + ppc64_interrupt_controller = IC_CELL_PIC; + DBG(" <- cell_init_early()\n"); } @@ -146,17 +127,11 @@ static int __init cell_probe(void) { unsigned long root = of_get_flat_dt_root(); - if (!of_flat_dt_is_compatible(root, "IBM,CBEA") && - !of_flat_dt_is_compatible(root, "IBM,CPBW-1.0")) - return 0; - -#ifdef CONFIG_UDBG_RTAS_CONSOLE - udbg_init_rtas_console(); -#endif - - hpte_init_native(); + if (of_flat_dt_is_compatible(root, "IBM,CBEA") || + of_flat_dt_is_compatible(root, "IBM,CPBW-1.0")) + return 1; - return 1; + return 0; } /* @@ -183,8 +158,6 @@ define_machine(cell) { .calibrate_decr = generic_calibrate_decr, .check_legacy_ioport = cell_check_legacy_ioport, .progress = cell_progress, - .init_IRQ = cell_init_irq, - .pcibios_fixup = cell_pcibios_fixup, #ifdef CONFIG_KEXEC .machine_kexec = default_machine_kexec, .machine_kexec_prepare = default_machine_kexec_prepare,