| Magnus Damm | 1c51ed4 | 2010-12-14 16:56:55 +0900 | [diff] [blame] | 1 | /* | 
|  | 2 | * SMP support for R-Mobile / SH-Mobile | 
|  | 3 | * | 
|  | 4 | * Copyright (C) 2010  Magnus Damm | 
|  | 5 | * | 
|  | 6 | * Based on realview, Copyright (C) 2002 ARM Ltd, All Rights Reserved | 
|  | 7 | * | 
|  | 8 | * This program is free software; you can redistribute it and/or modify | 
|  | 9 | * it under the terms of the GNU General Public License version 2 as | 
|  | 10 | * published by the Free Software Foundation. | 
|  | 11 | */ | 
|  | 12 | #include <linux/kernel.h> | 
|  | 13 | #include <linux/errno.h> | 
|  | 14 | #include <linux/smp.h> | 
|  | 15 |  | 
|  | 16 | int platform_cpu_kill(unsigned int cpu) | 
|  | 17 | { | 
|  | 18 | return 1; | 
|  | 19 | } | 
|  | 20 |  | 
|  | 21 | void platform_cpu_die(unsigned int cpu) | 
|  | 22 | { | 
|  | 23 | while (1) { | 
|  | 24 | /* | 
|  | 25 | * here's the WFI | 
|  | 26 | */ | 
|  | 27 | asm(".word	0xe320f003\n" | 
|  | 28 | : | 
|  | 29 | : | 
|  | 30 | : "memory", "cc"); | 
|  | 31 | } | 
|  | 32 | } | 
|  | 33 |  | 
|  | 34 | int platform_cpu_disable(unsigned int cpu) | 
|  | 35 | { | 
|  | 36 | /* | 
|  | 37 | * we don't allow CPU 0 to be shutdown (it is still too special | 
|  | 38 | * e.g. clock tick interrupts) | 
|  | 39 | */ | 
|  | 40 | return cpu == 0 ? -EPERM : 0; | 
|  | 41 | } |