diff options
Diffstat (limited to 'arch/powerpc/platforms/pseries')
-rw-r--r-- | arch/powerpc/platforms/pseries/eeh.c | 10 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/pci_dlpar.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/reconfig.c | 9 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/setup.c | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/smp.c | 2 |
5 files changed, 18 insertions, 9 deletions
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c index 989d6462c154..ccd8dd03b8c9 100644 --- a/arch/powerpc/platforms/pseries/eeh.c +++ b/arch/powerpc/platforms/pseries/eeh.c | |||
@@ -744,7 +744,15 @@ int pcibios_set_pcie_reset_state(struct pci_dev *dev, enum pcie_reset_state stat | |||
744 | 744 | ||
745 | static void __rtas_set_slot_reset(struct pci_dn *pdn) | 745 | static void __rtas_set_slot_reset(struct pci_dn *pdn) |
746 | { | 746 | { |
747 | rtas_pci_slot_reset (pdn, 1); | 747 | struct pci_dev *dev = pdn->pcidev; |
748 | |||
749 | /* Determine type of EEH reset required by device, | ||
750 | * default hot reset or fundamental reset | ||
751 | */ | ||
752 | if (dev->needs_freset) | ||
753 | rtas_pci_slot_reset(pdn, 3); | ||
754 | else | ||
755 | rtas_pci_slot_reset(pdn, 1); | ||
748 | 756 | ||
749 | /* The PCI bus requires that the reset be held high for at least | 757 | /* The PCI bus requires that the reset be held high for at least |
750 | * a 100 milliseconds. We wait a bit longer 'just in case'. */ | 758 | * a 100 milliseconds. We wait a bit longer 'just in case'. */ |
diff --git a/arch/powerpc/platforms/pseries/pci_dlpar.c b/arch/powerpc/platforms/pseries/pci_dlpar.c index ad152a0e3946..b6fa3e4b51b5 100644 --- a/arch/powerpc/platforms/pseries/pci_dlpar.c +++ b/arch/powerpc/platforms/pseries/pci_dlpar.c | |||
@@ -151,7 +151,7 @@ struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn) | |||
151 | if (dn->child) | 151 | if (dn->child) |
152 | eeh_add_device_tree_early(dn); | 152 | eeh_add_device_tree_early(dn); |
153 | 153 | ||
154 | scan_phb(phb); | 154 | pcibios_scan_phb(phb, dn); |
155 | pcibios_finish_adding_to_bus(phb->bus); | 155 | pcibios_finish_adding_to_bus(phb->bus); |
156 | 156 | ||
157 | return phb; | 157 | return phb; |
diff --git a/arch/powerpc/platforms/pseries/reconfig.c b/arch/powerpc/platforms/pseries/reconfig.c index b6f1b137d427..2e2bbe120b90 100644 --- a/arch/powerpc/platforms/pseries/reconfig.c +++ b/arch/powerpc/platforms/pseries/reconfig.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <asm/machdep.h> | 20 | #include <asm/machdep.h> |
21 | #include <asm/uaccess.h> | 21 | #include <asm/uaccess.h> |
22 | #include <asm/pSeries_reconfig.h> | 22 | #include <asm/pSeries_reconfig.h> |
23 | #include <asm/mmu.h> | ||
23 | 24 | ||
24 | 25 | ||
25 | 26 | ||
@@ -439,9 +440,15 @@ static int do_update_property(char *buf, size_t bufsize) | |||
439 | if (!newprop) | 440 | if (!newprop) |
440 | return -ENOMEM; | 441 | return -ENOMEM; |
441 | 442 | ||
443 | if (!strcmp(name, "slb-size") || !strcmp(name, "ibm,slb-size")) | ||
444 | slb_set_size(*(int *)value); | ||
445 | |||
442 | oldprop = of_find_property(np, name,NULL); | 446 | oldprop = of_find_property(np, name,NULL); |
443 | if (!oldprop) | 447 | if (!oldprop) { |
448 | if (strlen(name)) | ||
449 | return prom_add_property(np, newprop); | ||
444 | return -ENODEV; | 450 | return -ENODEV; |
451 | } | ||
445 | 452 | ||
446 | rc = prom_update_property(np, newprop, oldprop); | 453 | rc = prom_update_property(np, newprop, oldprop); |
447 | if (rc) | 454 | if (rc) |
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index 8d75ea21296f..ca5f2e10972c 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c | |||
@@ -223,10 +223,6 @@ static void pseries_lpar_enable_pmcs(void) | |||
223 | set = 1UL << 63; | 223 | set = 1UL << 63; |
224 | reset = 0; | 224 | reset = 0; |
225 | plpar_hcall_norets(H_PERFMON, set, reset); | 225 | plpar_hcall_norets(H_PERFMON, set, reset); |
226 | |||
227 | /* instruct hypervisor to maintain PMCs */ | ||
228 | if (firmware_has_feature(FW_FEATURE_SPLPAR)) | ||
229 | get_lppaca()->pmcregs_in_use = 1; | ||
230 | } | 226 | } |
231 | 227 | ||
232 | static void __init pseries_discover_pic(void) | 228 | static void __init pseries_discover_pic(void) |
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c index 1f8f6cfb94f7..440000cc7130 100644 --- a/arch/powerpc/platforms/pseries/smp.c +++ b/arch/powerpc/platforms/pseries/smp.c | |||
@@ -56,8 +56,6 @@ | |||
56 | */ | 56 | */ |
57 | static cpumask_t of_spin_map; | 57 | static cpumask_t of_spin_map; |
58 | 58 | ||
59 | extern void generic_secondary_smp_init(unsigned long); | ||
60 | |||
61 | /** | 59 | /** |
62 | * smp_startup_cpu() - start the given cpu | 60 | * smp_startup_cpu() - start the given cpu |
63 | * | 61 | * |