123456789101112131415161718192021222324252627282930313233343536373839 |
- /*
- * CPU hotplug support for CSR Marco dual-core SMP SoCs
- *
- * Copyright (c) 2012 Cambridge Silicon Radio Limited, a CSR plc group company.
- *
- * Licensed under GPLv2 or later.
- */
- #include <linux/kernel.h>
- #include <linux/errno.h>
- #include <linux/smp.h>
- #include <asm/smp_plat.h>
- static inline void platform_do_lowpower(unsigned int cpu)
- {
- /* we put the platform to just WFI */
- for (;;) {
- __asm__ __volatile__("dsb\n\t" "wfi\n\t"
- : : : "memory");
- if (pen_release == cpu_logical_map(cpu)) {
- /*
- * OK, proper wakeup, we're done
- */
- break;
- }
- }
- }
- /*
- * platform-specific code to shutdown a CPU
- *
- * Called with IRQs disabled
- */
- void sirfsoc_cpu_die(unsigned int cpu)
- {
- platform_do_lowpower(cpu);
- }
|