diff options
Diffstat (limited to 'arch/ppc')
-rw-r--r-- | arch/ppc/Kconfig | 6 | ||||
-rw-r--r-- | arch/ppc/kernel/smp.c | 4 | ||||
-rw-r--r-- | arch/ppc/platforms/pmac_feature.c | 20 |
3 files changed, 22 insertions, 8 deletions
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig index 8fa51b0a32d2..cc3f64c084c5 100644 --- a/arch/ppc/Kconfig +++ b/arch/ppc/Kconfig | |||
@@ -767,14 +767,14 @@ config CPM2 | |||
767 | on it (826x, 827x, 8560). | 767 | on it (826x, 827x, 8560). |
768 | 768 | ||
769 | config PPC_CHRP | 769 | config PPC_CHRP |
770 | bool " Common Hardware Reference Platform (CHRP) based machines" | 770 | bool |
771 | depends on PPC_MULTIPLATFORM | 771 | depends on PPC_MULTIPLATFORM |
772 | select PPC_I8259 | 772 | select PPC_I8259 |
773 | select PPC_INDIRECT_PCI | 773 | select PPC_INDIRECT_PCI |
774 | default y | 774 | default y |
775 | 775 | ||
776 | config PPC_PMAC | 776 | config PPC_PMAC |
777 | bool " Apple PowerMac based machines" | 777 | bool |
778 | depends on PPC_MULTIPLATFORM | 778 | depends on PPC_MULTIPLATFORM |
779 | select PPC_INDIRECT_PCI | 779 | select PPC_INDIRECT_PCI |
780 | default y | 780 | default y |
@@ -785,7 +785,7 @@ config PPC_PMAC64 | |||
785 | default y | 785 | default y |
786 | 786 | ||
787 | config PPC_PREP | 787 | config PPC_PREP |
788 | bool " PowerPC Reference Platform (PReP) based machines" | 788 | bool |
789 | depends on PPC_MULTIPLATFORM | 789 | depends on PPC_MULTIPLATFORM |
790 | select PPC_I8259 | 790 | select PPC_I8259 |
791 | select PPC_INDIRECT_PCI | 791 | select PPC_INDIRECT_PCI |
diff --git a/arch/ppc/kernel/smp.c b/arch/ppc/kernel/smp.c index 43b8fc2ca591..becbfa397556 100644 --- a/arch/ppc/kernel/smp.c +++ b/arch/ppc/kernel/smp.c | |||
@@ -301,6 +301,10 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
301 | 301 | ||
302 | /* Probe platform for CPUs: always linear. */ | 302 | /* Probe platform for CPUs: always linear. */ |
303 | num_cpus = smp_ops->probe(); | 303 | num_cpus = smp_ops->probe(); |
304 | |||
305 | if (num_cpus < 2) | ||
306 | smp_tb_synchronized = 1; | ||
307 | |||
304 | for (i = 0; i < num_cpus; ++i) | 308 | for (i = 0; i < num_cpus; ++i) |
305 | cpu_set(i, cpu_possible_map); | 309 | cpu_set(i, cpu_possible_map); |
306 | 310 | ||
diff --git a/arch/ppc/platforms/pmac_feature.c b/arch/ppc/platforms/pmac_feature.c index 1e69b0593162..6b7b3a150631 100644 --- a/arch/ppc/platforms/pmac_feature.c +++ b/arch/ppc/platforms/pmac_feature.c | |||
@@ -1606,11 +1606,19 @@ void pmac_tweak_clock_spreading(int enable) | |||
1606 | */ | 1606 | */ |
1607 | 1607 | ||
1608 | if (macio->type == macio_intrepid) { | 1608 | if (macio->type == macio_intrepid) { |
1609 | if (enable) | 1609 | struct device_node *clock = |
1610 | UN_OUT(UNI_N_CLOCK_SPREADING, 2); | 1610 | of_find_node_by_path("/uni-n@f8000000/hw-clock"); |
1611 | else | 1611 | if (clock && get_property(clock, "platform-do-clockspreading", |
1612 | UN_OUT(UNI_N_CLOCK_SPREADING, 0); | 1612 | NULL)) { |
1613 | mdelay(40); | 1613 | printk(KERN_INFO "%sabling clock spreading on Intrepid" |
1614 | " ASIC\n", enable ? "En" : "Dis"); | ||
1615 | if (enable) | ||
1616 | UN_OUT(UNI_N_CLOCK_SPREADING, 2); | ||
1617 | else | ||
1618 | UN_OUT(UNI_N_CLOCK_SPREADING, 0); | ||
1619 | mdelay(40); | ||
1620 | } | ||
1621 | of_node_put(clock); | ||
1614 | } | 1622 | } |
1615 | 1623 | ||
1616 | while (machine_is_compatible("PowerBook5,2") || | 1624 | while (machine_is_compatible("PowerBook5,2") || |
@@ -1680,6 +1688,8 @@ void pmac_tweak_clock_spreading(int enable) | |||
1680 | pmac_low_i2c_close(ui2c); | 1688 | pmac_low_i2c_close(ui2c); |
1681 | break; | 1689 | break; |
1682 | } | 1690 | } |
1691 | printk(KERN_INFO "%sabling clock spreading on i2c clock chip\n", | ||
1692 | enable ? "En" : "Dis"); | ||
1683 | pmac_low_i2c_setmode(ui2c, pmac_low_i2c_mode_stdsub); | 1693 | pmac_low_i2c_setmode(ui2c, pmac_low_i2c_mode_stdsub); |
1684 | rc = pmac_low_i2c_xfer(ui2c, 0xd2 | pmac_low_i2c_write, 0x80, buffer, 9); | 1694 | rc = pmac_low_i2c_xfer(ui2c, 0xd2 | pmac_low_i2c_write, 0x80, buffer, 9); |
1685 | DBG("write result: %d,", rc); | 1695 | DBG("write result: %d,", rc); |