diff options
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/switch.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/chrp/chrp.h | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/chrp/pci.c | 6 | ||||
-rw-r--r-- | arch/powerpc/platforms/chrp/setup.c | 44 | ||||
-rw-r--r-- | arch/powerpc/platforms/iseries/setup.c | 7 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/eeh.c | 6 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/rtasd.c | 2 |
7 files changed, 38 insertions, 30 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/switch.c b/arch/powerpc/platforms/cell/spufs/switch.c index 97898d5d34e5..1726bfe38ee0 100644 --- a/arch/powerpc/platforms/cell/spufs/switch.c +++ b/arch/powerpc/platforms/cell/spufs/switch.c | |||
@@ -1297,7 +1297,7 @@ static inline void setup_decr(struct spu_state *csa, struct spu *spu) | |||
1297 | cycles_t resume_time = get_cycles(); | 1297 | cycles_t resume_time = get_cycles(); |
1298 | cycles_t delta_time = resume_time - csa->suspend_time; | 1298 | cycles_t delta_time = resume_time - csa->suspend_time; |
1299 | 1299 | ||
1300 | csa->lscsa->decr.slot[0] = delta_time; | 1300 | csa->lscsa->decr.slot[0] -= delta_time; |
1301 | } | 1301 | } |
1302 | } | 1302 | } |
1303 | 1303 | ||
diff --git a/arch/powerpc/platforms/chrp/chrp.h b/arch/powerpc/platforms/chrp/chrp.h index 63f0aee4c158..996c28744e96 100644 --- a/arch/powerpc/platforms/chrp/chrp.h +++ b/arch/powerpc/platforms/chrp/chrp.h | |||
@@ -9,3 +9,4 @@ extern long chrp_time_init(void); | |||
9 | 9 | ||
10 | extern void chrp_find_bridges(void); | 10 | extern void chrp_find_bridges(void); |
11 | extern void chrp_event_scan(unsigned long); | 11 | extern void chrp_event_scan(unsigned long); |
12 | extern void chrp_pcibios_fixup(void); | ||
diff --git a/arch/powerpc/platforms/chrp/pci.c b/arch/powerpc/platforms/chrp/pci.c index 8ef279ad36ad..ac224876ce59 100644 --- a/arch/powerpc/platforms/chrp/pci.c +++ b/arch/powerpc/platforms/chrp/pci.c | |||
@@ -23,6 +23,8 @@ | |||
23 | #include <asm/grackle.h> | 23 | #include <asm/grackle.h> |
24 | #include <asm/rtas.h> | 24 | #include <asm/rtas.h> |
25 | 25 | ||
26 | #include "chrp.h" | ||
27 | |||
26 | /* LongTrail */ | 28 | /* LongTrail */ |
27 | void __iomem *gg2_pci_config_base; | 29 | void __iomem *gg2_pci_config_base; |
28 | 30 | ||
@@ -314,6 +316,6 @@ chrp_find_bridges(void) | |||
314 | } | 316 | } |
315 | 317 | ||
316 | /* Do not fixup interrupts from OF tree on pegasos */ | 318 | /* Do not fixup interrupts from OF tree on pegasos */ |
317 | if (is_pegasos == 0) | 319 | if (is_pegasos) |
318 | ppc_md.pcibios_fixup = chrp_pcibios_fixup; | 320 | ppc_md.pcibios_fixup = NULL; |
319 | } | 321 | } |
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c index 23a201718704..18d89f38796b 100644 --- a/arch/powerpc/platforms/chrp/setup.c +++ b/arch/powerpc/platforms/chrp/setup.c | |||
@@ -440,8 +440,6 @@ void __init chrp_init_IRQ(void) | |||
440 | 440 | ||
441 | if (_chrp_type == _CHRP_Pegasos) | 441 | if (_chrp_type == _CHRP_Pegasos) |
442 | ppc_md.get_irq = i8259_irq; | 442 | ppc_md.get_irq = i8259_irq; |
443 | else | ||
444 | ppc_md.get_irq = mpic_get_irq; | ||
445 | 443 | ||
446 | #if defined(CONFIG_VT) && defined(CONFIG_INPUT_ADBHID) && defined(XMON) | 444 | #if defined(CONFIG_VT) && defined(CONFIG_INPUT_ADBHID) && defined(XMON) |
447 | /* see if there is a keyboard in the device tree | 445 | /* see if there is a keyboard in the device tree |
@@ -528,26 +526,24 @@ static int __init chrp_probe(void) | |||
528 | /* Assume we have an 8259... */ | 526 | /* Assume we have an 8259... */ |
529 | __irq_offset_value = NUM_ISA_INTERRUPTS; | 527 | __irq_offset_value = NUM_ISA_INTERRUPTS; |
530 | 528 | ||
531 | ppc_md.setup_arch = chrp_setup_arch; | 529 | return 1; |
532 | ppc_md.show_cpuinfo = chrp_show_cpuinfo; | ||
533 | |||
534 | ppc_md.init_IRQ = chrp_init_IRQ; | ||
535 | ppc_md.init = chrp_init2; | ||
536 | |||
537 | ppc_md.phys_mem_access_prot = pci_phys_mem_access_prot; | ||
538 | |||
539 | ppc_md.restart = rtas_restart; | ||
540 | ppc_md.power_off = rtas_power_off; | ||
541 | ppc_md.halt = rtas_halt; | ||
542 | |||
543 | ppc_md.time_init = chrp_time_init; | ||
544 | ppc_md.calibrate_decr = generic_calibrate_decr; | ||
545 | |||
546 | /* this may get overridden with rtas routines later... */ | ||
547 | ppc_md.set_rtc_time = chrp_set_rtc_time; | ||
548 | ppc_md.get_rtc_time = chrp_get_rtc_time; | ||
549 | |||
550 | #ifdef CONFIG_SMP | ||
551 | smp_ops = &chrp_smp_ops; | ||
552 | #endif /* CONFIG_SMP */ | ||
553 | } | 530 | } |
531 | |||
532 | define_machine(chrp) { | ||
533 | .name = "CHRP", | ||
534 | .probe = chrp_probe, | ||
535 | .setup_arch = chrp_setup_arch, | ||
536 | .init = chrp_init2, | ||
537 | .show_cpuinfo = chrp_show_cpuinfo, | ||
538 | .init_IRQ = chrp_init_IRQ, | ||
539 | .get_irq = mpic_get_irq, | ||
540 | .pcibios_fixup = chrp_pcibios_fixup, | ||
541 | .restart = rtas_restart, | ||
542 | .power_off = rtas_power_off, | ||
543 | .halt = rtas_halt, | ||
544 | .time_init = chrp_time_init, | ||
545 | .set_rtc_time = chrp_set_rtc_time, | ||
546 | .get_rtc_time = chrp_get_rtc_time, | ||
547 | .calibrate_decr = generic_calibrate_decr, | ||
548 | .phys_mem_access_prot = pci_phys_mem_access_prot, | ||
549 | }; | ||
diff --git a/arch/powerpc/platforms/iseries/setup.c b/arch/powerpc/platforms/iseries/setup.c index 6ce8a404ba6b..a6fd9bedb074 100644 --- a/arch/powerpc/platforms/iseries/setup.c +++ b/arch/powerpc/platforms/iseries/setup.c | |||
@@ -54,6 +54,7 @@ | |||
54 | #include <asm/iseries/hv_lp_event.h> | 54 | #include <asm/iseries/hv_lp_event.h> |
55 | #include <asm/iseries/lpar_map.h> | 55 | #include <asm/iseries/lpar_map.h> |
56 | #include <asm/udbg.h> | 56 | #include <asm/udbg.h> |
57 | #include <asm/irq.h> | ||
57 | 58 | ||
58 | #include "naca.h" | 59 | #include "naca.h" |
59 | #include "setup.h" | 60 | #include "setup.h" |
@@ -684,6 +685,12 @@ static int __init iseries_probe(void) | |||
684 | powerpc_firmware_features |= FW_FEATURE_ISERIES; | 685 | powerpc_firmware_features |= FW_FEATURE_ISERIES; |
685 | powerpc_firmware_features |= FW_FEATURE_LPAR; | 686 | powerpc_firmware_features |= FW_FEATURE_LPAR; |
686 | 687 | ||
688 | /* | ||
689 | * The Hypervisor only allows us up to 256 interrupt | ||
690 | * sources (the irq number is passed in a u8). | ||
691 | */ | ||
692 | virt_irq_max = 255; | ||
693 | |||
687 | return 1; | 694 | return 1; |
688 | } | 695 | } |
689 | 696 | ||
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c index 780fb27a0099..32eaddfa5470 100644 --- a/arch/powerpc/platforms/pseries/eeh.c +++ b/arch/powerpc/platforms/pseries/eeh.c | |||
@@ -957,8 +957,10 @@ static void eeh_remove_device(struct pci_dev *dev) | |||
957 | pci_addr_cache_remove_device(dev); | 957 | pci_addr_cache_remove_device(dev); |
958 | 958 | ||
959 | dn = pci_device_to_OF_node(dev); | 959 | dn = pci_device_to_OF_node(dev); |
960 | PCI_DN(dn)->pcidev = NULL; | 960 | if (PCI_DN(dn)->pcidev) { |
961 | pci_dev_put (dev); | 961 | PCI_DN(dn)->pcidev = NULL; |
962 | pci_dev_put (dev); | ||
963 | } | ||
962 | } | 964 | } |
963 | 965 | ||
964 | void eeh_remove_bus_device(struct pci_dev *dev) | 966 | void eeh_remove_bus_device(struct pci_dev *dev) |
diff --git a/arch/powerpc/platforms/pseries/rtasd.c b/arch/powerpc/platforms/pseries/rtasd.c index fcc4d561a236..e0000ce769e5 100644 --- a/arch/powerpc/platforms/pseries/rtasd.c +++ b/arch/powerpc/platforms/pseries/rtasd.c | |||
@@ -488,7 +488,7 @@ static int __init rtas_init(void) | |||
488 | /* No RTAS */ | 488 | /* No RTAS */ |
489 | if (rtas_token("event-scan") == RTAS_UNKNOWN_SERVICE) { | 489 | if (rtas_token("event-scan") == RTAS_UNKNOWN_SERVICE) { |
490 | printk(KERN_INFO "rtasd: no event-scan on system\n"); | 490 | printk(KERN_INFO "rtasd: no event-scan on system\n"); |
491 | return 1; | 491 | return -ENODEV; |
492 | } | 492 | } |
493 | 493 | ||
494 | entry = create_proc_entry("ppc64/rtas/error_log", S_IRUSR, NULL); | 494 | entry = create_proc_entry("ppc64/rtas/error_log", S_IRUSR, NULL); |