summaryrefslogtreecommitdiffstats
path: root/target/linux/ipq806x/patches/0008-ARM-Introduce-CPU_METHOD_OF_DECLARE-for-cpu-hotplug-.patch
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2015-02-11 10:09:23 +0000
committerJohn Crispin <john@openwrt.org>2015-02-11 10:09:23 +0000
commit88ddb3746188037afd38d631f7a893587fa8bdf0 (patch)
treedf4684db63441435126c4b6ff1fda4ce615e1ff0 /target/linux/ipq806x/patches/0008-ARM-Introduce-CPU_METHOD_OF_DECLARE-for-cpu-hotplug-.patch
parentddcbef5766fa18f52e7a7d1928b25edc63e73937 (diff)
downloadmaster-31e0f0ae-88ddb3746188037afd38d631f7a893587fa8bdf0.tar.gz
master-31e0f0ae-88ddb3746188037afd38d631f7a893587fa8bdf0.tar.bz2
master-31e0f0ae-88ddb3746188037afd38d631f7a893587fa8bdf0.zip
ipq806x: update target to v3.18
Patches in the ipq806x/patches folder were out of tree in v3.14. The newest patch at the time was from June, so we can safely assume that either the patches have been merged, or they have been rejected for a good reason. If patches are seen missing, we'll cherry-pick them on a per-needed basis. This new kernel have been tested on AP148, which seems to works fine. Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org> SVN-Revision: 44386
Diffstat (limited to 'target/linux/ipq806x/patches/0008-ARM-Introduce-CPU_METHOD_OF_DECLARE-for-cpu-hotplug-.patch')
-rw-r--r--target/linux/ipq806x/patches/0008-ARM-Introduce-CPU_METHOD_OF_DECLARE-for-cpu-hotplug-.patch150
1 files changed, 0 insertions, 150 deletions
diff --git a/target/linux/ipq806x/patches/0008-ARM-Introduce-CPU_METHOD_OF_DECLARE-for-cpu-hotplug-.patch b/target/linux/ipq806x/patches/0008-ARM-Introduce-CPU_METHOD_OF_DECLARE-for-cpu-hotplug-.patch
deleted file mode 100644
index b4a8b4b5ef..0000000000
--- a/target/linux/ipq806x/patches/0008-ARM-Introduce-CPU_METHOD_OF_DECLARE-for-cpu-hotplug-.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From 48f17325fef9cbebc5cb39aa78f4c1caff5d7b16 Mon Sep 17 00:00:00 2001
-From: Stephen Boyd <sboyd@codeaurora.org>
-Date: Wed, 30 Oct 2013 18:21:09 -0700
-Subject: [PATCH 008/182] ARM: Introduce CPU_METHOD_OF_DECLARE() for cpu
- hotplug/smp
-
-The goal of multi-platform kernels is to remove the need for mach
-directories and machine descriptors. To further that goal,
-introduce CPU_METHOD_OF_DECLARE() to allow cpu hotplug/smp
-support to be separated from the machine descriptors.
-Implementers should specify an enable-method property in their
-cpus node and then implement a matching set of smp_ops in their
-hotplug/smp code, wiring it up with the CPU_METHOD_OF_DECLARE()
-macro. When the kernel is compiled we'll collect all the
-enable-method smp_ops into one section for use at boot.
-
-At boot time we'll look for an enable-method in each cpu node and
-try to match that against all known CPU enable methods in the
-kernel. If there are no enable-methods in the cpu nodes we
-fallback to the cpus node and try to use any enable-method found
-there. If that doesn't work we fall back to the old way of using
-the machine descriptor.
-
-Acked-by: Mark Rutland <mark.rutland@arm.com>
-Cc: Russell King <linux@arm.linux.org.uk>
-Cc: <devicetree@vger.kernel.org>
-Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
-Signed-off-by: Kumar Gala <galak@codeaurora.org>
----
- arch/arm/include/asm/smp.h | 9 +++++++++
- arch/arm/kernel/devtree.c | 40 +++++++++++++++++++++++++++++++++++++
- include/asm-generic/vmlinux.lds.h | 10 ++++++++++
- 3 files changed, 59 insertions(+)
-
---- a/arch/arm/include/asm/smp.h
-+++ b/arch/arm/include/asm/smp.h
-@@ -114,6 +114,15 @@ struct smp_operations {
- #endif
- };
-
-+struct of_cpu_method {
-+ const char *method;
-+ struct smp_operations *ops;
-+};
-+
-+#define CPU_METHOD_OF_DECLARE(name, _method, _ops) \
-+ static const struct of_cpu_method __cpu_method_of_table_##name \
-+ __used __section(__cpu_method_of_table) \
-+ = { .method = _method, .ops = _ops }
- /*
- * set platform specific SMP operations
- */
---- a/arch/arm/kernel/devtree.c
-+++ b/arch/arm/kernel/devtree.c
-@@ -18,6 +18,7 @@
- #include <linux/of_fdt.h>
- #include <linux/of_irq.h>
- #include <linux/of_platform.h>
-+#include <linux/smp.h>
-
- #include <asm/cputype.h>
- #include <asm/setup.h>
-@@ -63,6 +64,34 @@ void __init arm_dt_memblock_reserve(void
- }
- }
-
-+#ifdef CONFIG_SMP
-+extern struct of_cpu_method __cpu_method_of_table_begin[];
-+extern struct of_cpu_method __cpu_method_of_table_end[];
-+
-+static int __init set_smp_ops_by_method(struct device_node *node)
-+{
-+ const char *method;
-+ struct of_cpu_method *m = __cpu_method_of_table_begin;
-+
-+ if (of_property_read_string(node, "enable-method", &method))
-+ return 0;
-+
-+ for (; m < __cpu_method_of_table_end; m++)
-+ if (!strcmp(m->method, method)) {
-+ smp_set_ops(m->ops);
-+ return 1;
-+ }
-+
-+ return 0;
-+}
-+#else
-+static inline int set_smp_ops_by_method(struct device_node *node)
-+{
-+ return 1;
-+}
-+#endif
-+
-+
- /*
- * arm_dt_init_cpu_maps - Function retrieves cpu nodes from the device tree
- * and builds the cpu logical map array containing MPIDR values related to
-@@ -79,6 +108,7 @@ void __init arm_dt_init_cpu_maps(void)
- * read as 0.
- */
- struct device_node *cpu, *cpus;
-+ int found_method = 0;
- u32 i, j, cpuidx = 1;
- u32 mpidr = is_smp() ? read_cpuid_mpidr() & MPIDR_HWID_BITMASK : 0;
-
-@@ -150,8 +180,18 @@ void __init arm_dt_init_cpu_maps(void)
- }
-
- tmp_map[i] = hwid;
-+
-+ if (!found_method)
-+ found_method = set_smp_ops_by_method(cpu);
- }
-
-+ /*
-+ * Fallback to an enable-method in the cpus node if nothing found in
-+ * a cpu node.
-+ */
-+ if (!found_method)
-+ set_smp_ops_by_method(cpus);
-+
- if (!bootcpu_valid) {
- pr_warn("DT missing boot CPU MPIDR[23:0], fall back to default cpu_logical_map\n");
- return;
---- a/include/asm-generic/vmlinux.lds.h
-+++ b/include/asm-generic/vmlinux.lds.h
-@@ -177,6 +177,15 @@
- #define CLK_OF_TABLES()
- #endif
-
-+#ifdef CONFIG_SMP
-+#define CPU_METHOD_OF_TABLES() . = ALIGN(8); \
-+ VMLINUX_SYMBOL(__cpu_method_of_table_begin) = .; \
-+ *(__cpu_method_of_table) \
-+ VMLINUX_SYMBOL(__cpu_method_of_table_end) = .;
-+#else
-+#define CPU_METHOD_OF_TABLES()
-+#endif
-+
- #define KERNEL_DTB() \
- STRUCT_ALIGN(); \
- VMLINUX_SYMBOL(__dtb_start) = .; \
-@@ -502,6 +511,7 @@
- MEM_DISCARD(init.rodata) \
- CLK_OF_TABLES() \
- CLKSRC_OF_TABLES() \
-+ CPU_METHOD_OF_TABLES() \
- KERNEL_DTB() \
- IRQCHIP_OF_MATCH_TABLE()
-