21 #include <linux/kernel.h>
24 #include <asm/machdep.h>
30 #define DBG udbg_printf
42 static void ps3_smp_message_pass(
int cpu,
int msg)
48 DBG(
"%s:%d: bad msg: %d\n", __func__, __LINE__, msg);
56 DBG(
"%s:%d: ps3_send_event_locally(%d, %d) failed"
57 " (%d)\n", __func__, __LINE__, cpu, msg, result);
60 static int __init ps3_smp_probe(
void)
64 for (cpu = 0; cpu < 2; cpu++) {
66 unsigned int *virqs =
per_cpu(ps3_ipi_virqs, cpu);
69 DBG(
" -> %s:%d: (%d)\n", __func__, __LINE__, cpu);
88 DBG(
"%s:%d: (%d, %d) => virq %u\n",
89 __func__, __LINE__, cpu, i, virqs[i]);
101 DBG(
" <- %s:%d: (%d)\n", __func__, __LINE__, cpu);
109 unsigned int *virqs =
per_cpu(ps3_ipi_virqs, cpu);
112 DBG(
" -> %s:%d: (%d)\n", __func__, __LINE__, cpu);
120 DBG(
" <- %s:%d: (%d)\n", __func__, __LINE__, cpu);
123 static struct smp_ops_t ps3_smp_ops = {
124 .probe = ps3_smp_probe,
125 .message_pass = ps3_smp_message_pass,
126 .kick_cpu = smp_generic_kick_cpu,
131 DBG(
" -> %s\n", __func__);
133 DBG(
" <- %s\n", __func__);