These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / arm64 / include / asm / cpu_ops.h
index 5a31d67..8f03446 100644 (file)
 #include <linux/init.h>
 #include <linux/threads.h>
 
-struct device_node;
-
 /**
  * struct cpu_operations - Callback operations for hotplugging CPUs.
  *
  * @name:      Name of the property as appears in a devicetree cpu node's
- *             enable-method property.
- * @cpu_init:  Reads any data necessary for a specific enable-method from the
- *             devicetree, for a given cpu node and proposed logical id.
+ *             enable-method property. On systems booting with ACPI, @name
+ *             identifies the struct cpu_operations entry corresponding to
+ *             the boot protocol specified in the ACPI MADT table.
+ * @cpu_init:  Reads any data necessary for a specific enable-method for a
+ *             proposed logical id.
  * @cpu_prepare: Early one-time preparation step for a cpu. If there is a
  *             mechanism for doing so, tests whether it is possible to boot
  *             the given CPU.
@@ -40,15 +40,15 @@ struct device_node;
  * @cpu_die:   Makes a cpu leave the kernel. Must not fail. Called from the
  *             cpu being killed.
  * @cpu_kill:  Ensures a cpu has left the kernel. Called from another cpu.
- * @cpu_init_idle: Reads any data necessary to initialize CPU idle states from
- *             devicetree, for a given cpu node and proposed logical id.
+ * @cpu_init_idle: Reads any data necessary to initialize CPU idle states for
+ *                a proposed logical id.
  * @cpu_suspend: Suspends a cpu and saves the required context. May fail owing
  *               to wrong parameters or error conditions. Called from the
  *               CPU being suspended. Must be called with IRQs disabled.
  */
 struct cpu_operations {
        const char      *name;
-       int             (*cpu_init)(struct device_node *, unsigned int);
+       int             (*cpu_init)(unsigned int);
        int             (*cpu_prepare)(unsigned int);
        int             (*cpu_boot)(unsigned int);
        void            (*cpu_postboot)(void);
@@ -58,14 +58,17 @@ struct cpu_operations {
        int             (*cpu_kill)(unsigned int cpu);
 #endif
 #ifdef CONFIG_CPU_IDLE
-       int             (*cpu_init_idle)(struct device_node *, unsigned int);
+       int             (*cpu_init_idle)(unsigned int);
        int             (*cpu_suspend)(unsigned long);
 #endif
 };
 
 extern const struct cpu_operations *cpu_ops[NR_CPUS];
-int __init cpu_read_ops(struct device_node *dn, int cpu);
-void __init cpu_read_bootcpu_ops(void);
-const struct cpu_operations *cpu_get_ops(const char *name);
+int __init cpu_read_ops(int cpu);
+
+static inline void __init cpu_read_bootcpu_ops(void)
+{
+       cpu_read_ops(0);
+}
 
 #endif /* ifndef __ASM_CPU_OPS_H */