diff options
Diffstat (limited to 'arch/powerpc/platforms/powermac')
-rw-r--r-- | arch/powerpc/platforms/powermac/Kconfig | 11 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/pic.c | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/smp.c | 8 |
3 files changed, 16 insertions, 7 deletions
diff --git a/arch/powerpc/platforms/powermac/Kconfig b/arch/powerpc/platforms/powermac/Kconfig index 1e1a0873e1dd..1afd10f67858 100644 --- a/arch/powerpc/platforms/powermac/Kconfig +++ b/arch/powerpc/platforms/powermac/Kconfig | |||
@@ -18,4 +18,13 @@ config PPC_PMAC64 | |||
18 | select PPC_970_NAP | 18 | select PPC_970_NAP |
19 | default y | 19 | default y |
20 | 20 | ||
21 | 21 | config PPC_PMAC32_PSURGE | |
22 | bool "Support for powersurge upgrade cards" if EXPERT | ||
23 | depends on SMP && PPC32 && PPC_PMAC | ||
24 | select PPC_SMP_MUXED_IPI | ||
25 | default y | ||
26 | help | ||
27 | The powersurge cpu boards can be used in the generation | ||
28 | of powermacs that have a socket for an upgradeable cpu card, | ||
29 | including the 7500, 8500, 9500, 9600. Support exists for | ||
30 | both dual and quad socket upgrade cards. | ||
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c index 2f34ad04029f..b706cb3ad99c 100644 --- a/arch/powerpc/platforms/powermac/pic.c +++ b/arch/powerpc/platforms/powermac/pic.c | |||
@@ -239,7 +239,7 @@ static unsigned int pmac_pic_get_irq(void) | |||
239 | unsigned long bits = 0; | 239 | unsigned long bits = 0; |
240 | unsigned long flags; | 240 | unsigned long flags; |
241 | 241 | ||
242 | #ifdef CONFIG_SMP | 242 | #ifdef CONFIG_PPC_PMAC32_PSURGE |
243 | void psurge_smp_message_recv(void); | 243 | void psurge_smp_message_recv(void); |
244 | 244 | ||
245 | /* IPI's are a hack on the powersurge -- Cort */ | 245 | /* IPI's are a hack on the powersurge -- Cort */ |
@@ -247,7 +247,7 @@ static unsigned int pmac_pic_get_irq(void) | |||
247 | psurge_smp_message_recv(); | 247 | psurge_smp_message_recv(); |
248 | return NO_IRQ_IGNORE; /* ignore, already handled */ | 248 | return NO_IRQ_IGNORE; /* ignore, already handled */ |
249 | } | 249 | } |
250 | #endif /* CONFIG_SMP */ | 250 | #endif /* CONFIG_PPC_PMAC32_PSURGE */ |
251 | raw_spin_lock_irqsave(&pmac_pic_lock, flags); | 251 | raw_spin_lock_irqsave(&pmac_pic_lock, flags); |
252 | for (irq = max_real_irqs; (irq -= 32) >= 0; ) { | 252 | for (irq = max_real_irqs; (irq -= 32) >= 0; ) { |
253 | int i = irq >> 5; | 253 | int i = irq >> 5; |
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c index a3401071abfb..67b6e1432be2 100644 --- a/arch/powerpc/platforms/powermac/smp.c +++ b/arch/powerpc/platforms/powermac/smp.c | |||
@@ -70,7 +70,7 @@ static void (*pmac_tb_freeze)(int freeze); | |||
70 | static u64 timebase; | 70 | static u64 timebase; |
71 | static int tb_req; | 71 | static int tb_req; |
72 | 72 | ||
73 | #ifdef CONFIG_PPC32 | 73 | #ifdef CONFIG_PPC_PMAC32_PSURGE |
74 | 74 | ||
75 | /* | 75 | /* |
76 | * Powersurge (old powermac SMP) support. | 76 | * Powersurge (old powermac SMP) support. |
@@ -420,7 +420,7 @@ struct smp_ops_t psurge_smp_ops = { | |||
420 | .give_timebase = smp_psurge_give_timebase, | 420 | .give_timebase = smp_psurge_give_timebase, |
421 | .take_timebase = smp_psurge_take_timebase, | 421 | .take_timebase = smp_psurge_take_timebase, |
422 | }; | 422 | }; |
423 | #endif /* CONFIG_PPC32 - actually powersurge support */ | 423 | #endif /* CONFIG_PPC_PMAC32_PSURGE */ |
424 | 424 | ||
425 | /* | 425 | /* |
426 | * Core 99 and later support | 426 | * Core 99 and later support |
@@ -980,7 +980,7 @@ void __init pmac_setup_smp(void) | |||
980 | of_node_put(np); | 980 | of_node_put(np); |
981 | smp_ops = &core99_smp_ops; | 981 | smp_ops = &core99_smp_ops; |
982 | } | 982 | } |
983 | #ifdef CONFIG_PPC32 | 983 | #ifdef CONFIG_PPC_PMAC32_PSURGE |
984 | else { | 984 | else { |
985 | /* We have to set bits in cpu_possible_mask here since the | 985 | /* We have to set bits in cpu_possible_mask here since the |
986 | * secondary CPU(s) aren't in the device tree. Various | 986 | * secondary CPU(s) aren't in the device tree. Various |
@@ -993,7 +993,7 @@ void __init pmac_setup_smp(void) | |||
993 | set_cpu_possible(cpu, true); | 993 | set_cpu_possible(cpu, true); |
994 | smp_ops = &psurge_smp_ops; | 994 | smp_ops = &psurge_smp_ops; |
995 | } | 995 | } |
996 | #endif /* CONFIG_PPC32 */ | 996 | #endif /* CONFIG_PPC_PMAC32_PSURGE */ |
997 | 997 | ||
998 | #ifdef CONFIG_HOTPLUG_CPU | 998 | #ifdef CONFIG_HOTPLUG_CPU |
999 | ppc_md.cpu_die = pmac_cpu_die; | 999 | ppc_md.cpu_die = pmac_cpu_die; |