-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
For hotplug support, we're going to want a place to store operations that do more than bring CPUs online, and it makes sense to group these with our current smp_enable_ops. For cpuidle support, we'll want to group additional functions, and we may want them even for UP kernels. This patch renames smp_enable_ops to the more general cpu_operations, and pulls the definitions out of smp code such that they can be used in UP kernels. While we're at it, fix up instances of the cpu parameter to be an unsigned int, drop the init markings and rename the *_cpu functions to cpu_* to reduce future churn when cpu_operations is extended. Signed-off-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
- Loading branch information
Mark Rutland
authored and
Catalin Marinas
committed
Oct 25, 2013
1 parent
00ef54b
commit cd1aebf
Showing
7 changed files
with
102 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
/* | ||
* Copyright (C) 2013 ARM Ltd. | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
#ifndef __ASM_CPU_OPS_H | ||
#define __ASM_CPU_OPS_H | ||
|
||
#include <linux/init.h> | ||
#include <linux/threads.h> | ||
|
||
struct device_node; | ||
|
||
struct cpu_operations { | ||
const char *name; | ||
int (*cpu_init)(struct device_node *, unsigned int); | ||
int (*cpu_prepare)(unsigned int); | ||
}; | ||
|
||
extern const struct cpu_operations *cpu_ops[NR_CPUS]; | ||
extern const struct cpu_operations * __init cpu_get_ops(const char *name); | ||
|
||
#endif /* ifndef __ASM_CPU_OPS_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
/* | ||
* CPU kernel entry/exit control | ||
* | ||
* Copyright (C) 2013 ARM Ltd. | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
|
||
#include <asm/cpu_ops.h> | ||
#include <linux/string.h> | ||
|
||
extern const struct cpu_operations smp_spin_table_ops; | ||
extern const struct cpu_operations cpu_psci_ops; | ||
|
||
const struct cpu_operations *cpu_ops[NR_CPUS]; | ||
|
||
static const struct cpu_operations *supported_cpu_ops[] __initconst = { | ||
#ifdef CONFIG_SMP | ||
&smp_spin_table_ops, | ||
&cpu_psci_ops, | ||
#endif | ||
NULL, | ||
}; | ||
|
||
const struct cpu_operations * __init cpu_get_ops(const char *name) | ||
{ | ||
const struct cpu_operations **ops = supported_cpu_ops; | ||
|
||
while (*ops) { | ||
if (!strcmp(name, (*ops)->name)) | ||
return *ops; | ||
|
||
ops++; | ||
} | ||
|
||
return NULL; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters