Thread (7 messages) flat view 7 messages, 3 authors, 2011-09-08
STALE5449d

[RFC PATCH 2/3] ARM: SoC: Add per SoC SMP and CPU hotplug operations

From: arnd@arndb.de (Arnd Bergmann)
Date: 2011-09-08 20:23:53

On Thursday 08 September 2011 18:00:11 Marc Zyngier wrote:
+struct arm_soc_smp_ops {
+       void (*smp_init_cpus)(void);
+       void (*smp_prepare_cpus)(unsigned int max_cpus);
+       void (*smp_secondary_init)(unsigned int cpu);
+       int  (*smp_boot_secondary)(unsigned int cpu, struct task_struct *idle);
+#ifdef CONFIG_HOTPLUG_CPU
+       int  (*cpu_kill)(unsigned int cpu);
+       void (*cpu_die)(unsigned int cpu);
+       int  (*cpu_disable)(unsigned int cpu);
+#endif
+};
+
 struct arm_soc_desc {
        const char              *name;
+#ifdef CONFIG_SMP
+       struct arm_soc_smp_ops  smp_ops;
+#endif
 };
If you make this two data structures, I would actually recommend using a
pointer to the arm_soc_smp_ops instead of embedding it in arm_soc_desc.

This will make it possible to put the arm_soc_smp_ops into the plat_smp.c file
and get rid of a few more #ifdefs.

It may also be a good idea to have global pointers and for arm_soc_desc and
arm_soc_smp_ops instead of pointing to them from the board file. I can see
reasons both ways, and that should probably be driven by code efficiency
concerns.

	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help