All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sudeep KarkadaNagesha <Sudeep.KarkadaNagesha@arm.com>
To: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	devicetree@vger.kernel.org, microblaze-uclinux@itee.uq.edu.au,
	linux@openrisc.net, linuxppc-dev@lists.ozlabs.org
Cc: Sudeep.KarkadaNagesha@arm.com,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Jonas Bonn <jonas@southpole.se>, Michal Simek <monstr@monstr.eu>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	Grant Likely <grant.likely@linaro.org>,
	Rob Herring <rob.herring@calxeda.com>,
	Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
Subject: [RFC PATCH 4/4] of: move of_get_cpu_node implementation to DT core library
Date: Thu, 15 Aug 2013 18:09:40 +0100	[thread overview]
Message-ID: <1376586580-5409-5-git-send-email-Sudeep.KarkadaNagesha@arm.com> (raw)
In-Reply-To: <1376586580-5409-1-git-send-email-Sudeep.KarkadaNagesha@arm.com>

From: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>

This patch moves the generalized implementation of of_get_cpu_node from
PowerPC to DT core library, thereby adding support for retrieving cpu
node for a given logical cpu index on any architecture.

The CPU subsystem can now use this function to assign of_node in the
cpu device while registering CPUs.

It is recommended to use these helper function only in pre-SMP/early
initialisation stages to retrieve CPU device node pointers in logical
ordering. Once the cpu devices are registered, it can be retrieved easily
from cpu device of_node which avoids unnecessary parsing and matching.

Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Grant Likely <grant.likely@linaro.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
---
 arch/powerpc/include/asm/prom.h |  3 --
 arch/powerpc/kernel/prom.c      | 55 ------------------------
 drivers/of/base.c               | 94 +++++++++++++++++++++++++++++++++++++++++
 include/linux/cpu.h             |  1 +
 include/linux/of.h              |  7 +++
 5 files changed, 102 insertions(+), 58 deletions(-)

diff --git a/arch/powerpc/include/asm/prom.h b/arch/powerpc/include/asm/prom.h
index bc2da15..ac204e0 100644
--- a/arch/powerpc/include/asm/prom.h
+++ b/arch/powerpc/include/asm/prom.h
@@ -43,9 +43,6 @@ void of_parse_dma_window(struct device_node *dn, const void *dma_window_prop,
 
 extern void kdump_move_device_tree(void);
 
-/* CPU OF node matching */
-struct device_node *of_get_cpu_node(int cpu, unsigned int *thread);
-
 /* cache lookup */
 struct device_node *of_find_next_cache_node(struct device_node *np);
 
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 594c9f9..1c14cd4 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -870,61 +870,6 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
 	return (int)phys_id == get_hard_smp_processor_id(cpu);
 }
 
-static bool __of_find_n_match_cpu_property(struct device_node *cpun,
-			const char *prop_name, int cpu, unsigned int *thread)
-{
-	const __be32 *cell;
-	int ac, prop_len, tid;
-	u64 hwid;
-
-	ac = of_n_addr_cells(cpun);
-	cell = of_get_property(cpun, prop_name, &prop_len);
-	if (!cell)
-		return false;
-	prop_len /= sizeof(*cell);
-	for (tid = 0; tid < prop_len; tid++) {
-		hwid = of_read_number(cell, ac);
-		if (arch_match_cpu_phys_id(cpu, hwid)) {
-			if (thread)
-				*thread = tid;
-			return true;
-		}
-	}
-	return false;
-}
-
-/* Find the device node for a given logical cpu number, also returns the cpu
- * local thread number (index in ibm,interrupt-server#s) if relevant and
- * asked for (non NULL)
- */
-struct device_node *of_get_cpu_node(int cpu, unsigned int *thread)
-{
-	struct device_node *cpun, *cpus;
-
-	cpus = of_find_node_by_path("/cpus");
-	if (!cpus) {
-		pr_warn("Missing cpus node, bailing out\n");
-		return NULL;
-	}
-
-	for_each_child_of_node(cpus, cpun) {
-		if (of_node_cmp(cpun->type, "cpu"))
-			continue;
-
-		/* Check for ibm,ppc-interrupt-server#s. If it doesn't exist
-		 * fallback to "reg" property and assume no threads
-		 */
-		if (__of_find_n_match_cpu_property(cpun,
-				"ibm,ppc-interrupt-server#s", cpu, thread))
-			return cpun;
-
-		if (__of_find_n_match_cpu_property(cpun, "reg", cpu, thread))
-			return cpun;
-	}
-	return NULL;
-}
-EXPORT_SYMBOL(of_get_cpu_node);
-
 #if defined(CONFIG_DEBUG_FS) && defined(DEBUG)
 static struct debugfs_blob_wrapper flat_dt_blob;
 
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 5c54279..d088e45 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -18,6 +18,7 @@
  *      2 of the License, or (at your option) any later version.
  */
 #include <linux/ctype.h>
+#include <linux/cpu.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/spinlock.h>
@@ -230,6 +231,99 @@ const void *of_get_property(const struct device_node *np, const char *name,
 }
 EXPORT_SYMBOL(of_get_property);
 
+/*
+ * arch_match_cpu_phys_id - Match the given logical CPU and physical id
+ *
+ * @cpu: logical index of a cpu
+ * @phys_id: physical identifier of a cpu
+ *
+ * CPU logical to physical index mapping is architecture specific.
+ * However this __weak function provides a default match of physical
+ * id to logical cpu index.
+ *
+ * Returns true if the physical identifier and the logical index correspond
+ * to the same cpu, false otherwise.
+ */
+bool __weak arch_match_cpu_phys_id(int cpu, u64 phys_id)
+{
+	return (u32)phys_id == cpu;
+}
+
+/**
+ * Checks if the given "prop_name" property holds the physical id of the
+ * core/thread corresponding to the logical cpu 'cpu'. If 'thread' is not
+ * NULL, local thread number within the core is returned in it.
+ */
+static bool __of_find_n_match_cpu_property(struct device_node *cpun,
+			const char *prop_name, int cpu, unsigned int *thread)
+{
+	const __be32 *cell;
+	int ac, prop_len, tid;
+	u64 hwid;
+
+	ac = of_n_addr_cells(cpun);
+	cell = of_get_property(cpun, prop_name, &prop_len);
+	if (!cell)
+		return false;
+	prop_len /= sizeof(*cell);
+	for (tid = 0; tid < prop_len; tid++) {
+		hwid = of_read_number(cell, ac);
+		if (arch_match_cpu_phys_id(cpu, hwid)) {
+			if (thread)
+				*thread = tid;
+			return true;
+		}
+	}
+	return false;
+}
+
+/**
+ * of_get_cpu_node - Get device node associated with the given logical CPU
+ *
+ * @cpu: CPU number(logical index) for which device node is required
+ * @thread: if not NULL, local thread number within the physical core is
+ *          returned
+ *
+ * The main purpose of this function is to retrieve the device node for the
+ * given logical CPU index. It should be used to initialize the of_node in
+ * cpu device. Once of_node in cpu device is populated, all the further
+ * references can use that instead.
+ *
+ * CPU logical to physical index mapping is architecture specific and is built
+ * before booting secondary cores. This function uses arch_match_cpu_phys_id
+ * which can be overridden by architecture specific implementation.
+ *
+ * Returns a node pointer for the logical cpu if found, else NULL.
+ */
+struct device_node *of_get_cpu_node(int cpu, unsigned int *thread)
+{
+	struct device_node *cpun, *cpus;
+
+	cpus = of_find_node_by_path("/cpus");
+	if (!cpus) {
+		pr_warn("Missing cpus node, bailing out\n");
+		return NULL;
+	}
+
+	for_each_child_of_node(cpus, cpun) {
+		if (of_node_cmp(cpun->type, "cpu"))
+			continue;
+#ifdef CONFIG_PPC
+		/* Check for historical "ibm,ppc-interrupt-server#s" property
+		 * for thread ids on PowerPC. If it doesn't exist fallback to
+		 * standard "reg" property.
+		 */
+		if (__of_find_n_match_cpu_property(cpun,
+				"ibm,ppc-interrupt-server#s", cpu, thread))
+			return cpun;
+#endif
+		if (__of_find_n_match_cpu_property(cpun, "reg", cpu, thread))
+			return cpun;
+	}
+	return NULL;
+}
+EXPORT_SYMBOL(of_get_cpu_node);
+
 /** Checks if the given "compat" string matches one of the strings in
  * the device's "compatible" property
  */
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index ab0eade..3dfed2b 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -28,6 +28,7 @@ struct cpu {
 extern int register_cpu(struct cpu *cpu, int num);
 extern struct device *get_cpu_device(unsigned cpu);
 extern bool cpu_is_hotpluggable(unsigned cpu);
+extern bool arch_match_cpu_phys_id(int cpu, u64 phys_id);
 
 extern int cpu_add_dev_attr(struct device_attribute *attr);
 extern void cpu_remove_dev_attr(struct device_attribute *attr);
diff --git a/include/linux/of.h b/include/linux/of.h
index 1fd08ca..c0bb2f1 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -266,6 +266,7 @@ extern int of_device_is_available(const struct device_node *device);
 extern const void *of_get_property(const struct device_node *node,
 				const char *name,
 				int *lenp);
+extern struct device_node *of_get_cpu_node(int cpu, unsigned int *thread);
 #define for_each_property_of_node(dn, pp) \
 	for (pp = dn->properties; pp != NULL; pp = pp->next)
 
@@ -459,6 +460,12 @@ static inline const void *of_get_property(const struct device_node *node,
 	return NULL;
 }
 
+static inline struct device_node *of_get_cpu_node(int cpu,
+					unsigned int *thread)
+{
+	return NULL;
+}
+
 static inline int of_property_read_u64(const struct device_node *np,
 				       const char *propname, u64 *out_value)
 {
-- 
1.8.1.2



WARNING: multiple messages have this Message-ID (diff)
From: Sudeep KarkadaNagesha <Sudeep.KarkadaNagesha@arm.com>
To: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	devicetree@vger.kernel.org, microblaze-uclinux@itee.uq.edu.au,
	linux@lists.openrisc.net, linuxppc-dev@lists.ozlabs.org
Cc: Jonas Bonn <jonas@southpole.se>, Michal Simek <monstr@monstr.eu>,
	Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Rob Herring <rob.herring@calxeda.com>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	Grant Likely <grant.likely@linaro.org>
Subject: [RFC PATCH 4/4] of: move of_get_cpu_node implementation to DT core library
Date: Thu, 15 Aug 2013 18:09:40 +0100	[thread overview]
Message-ID: <1376586580-5409-5-git-send-email-Sudeep.KarkadaNagesha@arm.com> (raw)
In-Reply-To: <1376586580-5409-1-git-send-email-Sudeep.KarkadaNagesha@arm.com>

From: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>

This patch moves the generalized implementation of of_get_cpu_node from
PowerPC to DT core library, thereby adding support for retrieving cpu
node for a given logical cpu index on any architecture.

The CPU subsystem can now use this function to assign of_node in the
cpu device while registering CPUs.

It is recommended to use these helper function only in pre-SMP/early
initialisation stages to retrieve CPU device node pointers in logical
ordering. Once the cpu devices are registered, it can be retrieved easily
from cpu device of_node which avoids unnecessary parsing and matching.

Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Grant Likely <grant.likely@linaro.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
---
 arch/powerpc/include/asm/prom.h |  3 --
 arch/powerpc/kernel/prom.c      | 55 ------------------------
 drivers/of/base.c               | 94 +++++++++++++++++++++++++++++++++++++++++
 include/linux/cpu.h             |  1 +
 include/linux/of.h              |  7 +++
 5 files changed, 102 insertions(+), 58 deletions(-)

diff --git a/arch/powerpc/include/asm/prom.h b/arch/powerpc/include/asm/prom.h
index bc2da15..ac204e0 100644
--- a/arch/powerpc/include/asm/prom.h
+++ b/arch/powerpc/include/asm/prom.h
@@ -43,9 +43,6 @@ void of_parse_dma_window(struct device_node *dn, const void *dma_window_prop,
 
 extern void kdump_move_device_tree(void);
 
-/* CPU OF node matching */
-struct device_node *of_get_cpu_node(int cpu, unsigned int *thread);
-
 /* cache lookup */
 struct device_node *of_find_next_cache_node(struct device_node *np);
 
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 594c9f9..1c14cd4 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -870,61 +870,6 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
 	return (int)phys_id == get_hard_smp_processor_id(cpu);
 }
 
-static bool __of_find_n_match_cpu_property(struct device_node *cpun,
-			const char *prop_name, int cpu, unsigned int *thread)
-{
-	const __be32 *cell;
-	int ac, prop_len, tid;
-	u64 hwid;
-
-	ac = of_n_addr_cells(cpun);
-	cell = of_get_property(cpun, prop_name, &prop_len);
-	if (!cell)
-		return false;
-	prop_len /= sizeof(*cell);
-	for (tid = 0; tid < prop_len; tid++) {
-		hwid = of_read_number(cell, ac);
-		if (arch_match_cpu_phys_id(cpu, hwid)) {
-			if (thread)
-				*thread = tid;
-			return true;
-		}
-	}
-	return false;
-}
-
-/* Find the device node for a given logical cpu number, also returns the cpu
- * local thread number (index in ibm,interrupt-server#s) if relevant and
- * asked for (non NULL)
- */
-struct device_node *of_get_cpu_node(int cpu, unsigned int *thread)
-{
-	struct device_node *cpun, *cpus;
-
-	cpus = of_find_node_by_path("/cpus");
-	if (!cpus) {
-		pr_warn("Missing cpus node, bailing out\n");
-		return NULL;
-	}
-
-	for_each_child_of_node(cpus, cpun) {
-		if (of_node_cmp(cpun->type, "cpu"))
-			continue;
-
-		/* Check for ibm,ppc-interrupt-server#s. If it doesn't exist
-		 * fallback to "reg" property and assume no threads
-		 */
-		if (__of_find_n_match_cpu_property(cpun,
-				"ibm,ppc-interrupt-server#s", cpu, thread))
-			return cpun;
-
-		if (__of_find_n_match_cpu_property(cpun, "reg", cpu, thread))
-			return cpun;
-	}
-	return NULL;
-}
-EXPORT_SYMBOL(of_get_cpu_node);
-
 #if defined(CONFIG_DEBUG_FS) && defined(DEBUG)
 static struct debugfs_blob_wrapper flat_dt_blob;
 
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 5c54279..d088e45 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -18,6 +18,7 @@
  *      2 of the License, or (at your option) any later version.
  */
 #include <linux/ctype.h>
+#include <linux/cpu.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/spinlock.h>
@@ -230,6 +231,99 @@ const void *of_get_property(const struct device_node *np, const char *name,
 }
 EXPORT_SYMBOL(of_get_property);
 
+/*
+ * arch_match_cpu_phys_id - Match the given logical CPU and physical id
+ *
+ * @cpu: logical index of a cpu
+ * @phys_id: physical identifier of a cpu
+ *
+ * CPU logical to physical index mapping is architecture specific.
+ * However this __weak function provides a default match of physical
+ * id to logical cpu index.
+ *
+ * Returns true if the physical identifier and the logical index correspond
+ * to the same cpu, false otherwise.
+ */
+bool __weak arch_match_cpu_phys_id(int cpu, u64 phys_id)
+{
+	return (u32)phys_id == cpu;
+}
+
+/**
+ * Checks if the given "prop_name" property holds the physical id of the
+ * core/thread corresponding to the logical cpu 'cpu'. If 'thread' is not
+ * NULL, local thread number within the core is returned in it.
+ */
+static bool __of_find_n_match_cpu_property(struct device_node *cpun,
+			const char *prop_name, int cpu, unsigned int *thread)
+{
+	const __be32 *cell;
+	int ac, prop_len, tid;
+	u64 hwid;
+
+	ac = of_n_addr_cells(cpun);
+	cell = of_get_property(cpun, prop_name, &prop_len);
+	if (!cell)
+		return false;
+	prop_len /= sizeof(*cell);
+	for (tid = 0; tid < prop_len; tid++) {
+		hwid = of_read_number(cell, ac);
+		if (arch_match_cpu_phys_id(cpu, hwid)) {
+			if (thread)
+				*thread = tid;
+			return true;
+		}
+	}
+	return false;
+}
+
+/**
+ * of_get_cpu_node - Get device node associated with the given logical CPU
+ *
+ * @cpu: CPU number(logical index) for which device node is required
+ * @thread: if not NULL, local thread number within the physical core is
+ *          returned
+ *
+ * The main purpose of this function is to retrieve the device node for the
+ * given logical CPU index. It should be used to initialize the of_node in
+ * cpu device. Once of_node in cpu device is populated, all the further
+ * references can use that instead.
+ *
+ * CPU logical to physical index mapping is architecture specific and is built
+ * before booting secondary cores. This function uses arch_match_cpu_phys_id
+ * which can be overridden by architecture specific implementation.
+ *
+ * Returns a node pointer for the logical cpu if found, else NULL.
+ */
+struct device_node *of_get_cpu_node(int cpu, unsigned int *thread)
+{
+	struct device_node *cpun, *cpus;
+
+	cpus = of_find_node_by_path("/cpus");
+	if (!cpus) {
+		pr_warn("Missing cpus node, bailing out\n");
+		return NULL;
+	}
+
+	for_each_child_of_node(cpus, cpun) {
+		if (of_node_cmp(cpun->type, "cpu"))
+			continue;
+#ifdef CONFIG_PPC
+		/* Check for historical "ibm,ppc-interrupt-server#s" property
+		 * for thread ids on PowerPC. If it doesn't exist fallback to
+		 * standard "reg" property.
+		 */
+		if (__of_find_n_match_cpu_property(cpun,
+				"ibm,ppc-interrupt-server#s", cpu, thread))
+			return cpun;
+#endif
+		if (__of_find_n_match_cpu_property(cpun, "reg", cpu, thread))
+			return cpun;
+	}
+	return NULL;
+}
+EXPORT_SYMBOL(of_get_cpu_node);
+
 /** Checks if the given "compat" string matches one of the strings in
  * the device's "compatible" property
  */
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index ab0eade..3dfed2b 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -28,6 +28,7 @@ struct cpu {
 extern int register_cpu(struct cpu *cpu, int num);
 extern struct device *get_cpu_device(unsigned cpu);
 extern bool cpu_is_hotpluggable(unsigned cpu);
+extern bool arch_match_cpu_phys_id(int cpu, u64 phys_id);
 
 extern int cpu_add_dev_attr(struct device_attribute *attr);
 extern void cpu_remove_dev_attr(struct device_attribute *attr);
diff --git a/include/linux/of.h b/include/linux/of.h
index 1fd08ca..c0bb2f1 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -266,6 +266,7 @@ extern int of_device_is_available(const struct device_node *device);
 extern const void *of_get_property(const struct device_node *node,
 				const char *name,
 				int *lenp);
+extern struct device_node *of_get_cpu_node(int cpu, unsigned int *thread);
 #define for_each_property_of_node(dn, pp) \
 	for (pp = dn->properties; pp != NULL; pp = pp->next)
 
@@ -459,6 +460,12 @@ static inline const void *of_get_property(const struct device_node *node,
 	return NULL;
 }
 
+static inline struct device_node *of_get_cpu_node(int cpu,
+					unsigned int *thread)
+{
+	return NULL;
+}
+
 static inline int of_property_read_u64(const struct device_node *np,
 				       const char *propname, u64 *out_value)
 {
-- 
1.8.1.2

WARNING: multiple messages have this Message-ID (diff)
From: Sudeep KarkadaNagesha <Sudeep.KarkadaNagesha@arm.com>
To: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	devicetree@vger.kernel.org, microblaze-uclinux@itee.uq.edu.au,
	linux@lists.openrisc.net, linuxppc-dev@lists.ozlabs.org
Cc: Jonas Bonn <jonas@southpole.se>, Michal Simek <monstr@monstr.eu>,
	Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>,
	Rob Herring <rob.herring@calxeda.com>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	Grant Likely <grant.likely@linaro.org>
Subject: [RFC PATCH 4/4] of: move of_get_cpu_node implementation to DT core library
Date: Thu, 15 Aug 2013 18:09:40 +0100	[thread overview]
Message-ID: <1376586580-5409-5-git-send-email-Sudeep.KarkadaNagesha@arm.com> (raw)
In-Reply-To: <1376586580-5409-1-git-send-email-Sudeep.KarkadaNagesha@arm.com>

From: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>

This patch moves the generalized implementation of of_get_cpu_node from
PowerPC to DT core library, thereby adding support for retrieving cpu
node for a given logical cpu index on any architecture.

The CPU subsystem can now use this function to assign of_node in the
cpu device while registering CPUs.

It is recommended to use these helper function only in pre-SMP/early
initialisation stages to retrieve CPU device node pointers in logical
ordering. Once the cpu devices are registered, it can be retrieved easily
from cpu device of_node which avoids unnecessary parsing and matching.

Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Grant Likely <grant.likely@linaro.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
---
 arch/powerpc/include/asm/prom.h |  3 --
 arch/powerpc/kernel/prom.c      | 55 ------------------------
 drivers/of/base.c               | 94 +++++++++++++++++++++++++++++++++++++=
++++
 include/linux/cpu.h             |  1 +
 include/linux/of.h              |  7 +++
 5 files changed, 102 insertions(+), 58 deletions(-)

diff --git a/arch/powerpc/include/asm/prom.h b/arch/powerpc/include/asm/pro=
m.h
index bc2da15..ac204e0 100644
--- a/arch/powerpc/include/asm/prom.h
+++ b/arch/powerpc/include/asm/prom.h
@@ -43,9 +43,6 @@ void of_parse_dma_window(struct device_node *dn, const vo=
id *dma_window_prop,
=20
 extern void kdump_move_device_tree(void);
=20
-/* CPU OF node matching */
-struct device_node *of_get_cpu_node(int cpu, unsigned int *thread);
-
 /* cache lookup */
 struct device_node *of_find_next_cache_node(struct device_node *np);
=20
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 594c9f9..1c14cd4 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -870,61 +870,6 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
 =09return (int)phys_id =3D=3D get_hard_smp_processor_id(cpu);
 }
=20
-static bool __of_find_n_match_cpu_property(struct device_node *cpun,
-=09=09=09const char *prop_name, int cpu, unsigned int *thread)
-{
-=09const __be32 *cell;
-=09int ac, prop_len, tid;
-=09u64 hwid;
-
-=09ac =3D of_n_addr_cells(cpun);
-=09cell =3D of_get_property(cpun, prop_name, &prop_len);
-=09if (!cell)
-=09=09return false;
-=09prop_len /=3D sizeof(*cell);
-=09for (tid =3D 0; tid < prop_len; tid++) {
-=09=09hwid =3D of_read_number(cell, ac);
-=09=09if (arch_match_cpu_phys_id(cpu, hwid)) {
-=09=09=09if (thread)
-=09=09=09=09*thread =3D tid;
-=09=09=09return true;
-=09=09}
-=09}
-=09return false;
-}
-
-/* Find the device node for a given logical cpu number, also returns the c=
pu
- * local thread number (index in ibm,interrupt-server#s) if relevant and
- * asked for (non NULL)
- */
-struct device_node *of_get_cpu_node(int cpu, unsigned int *thread)
-{
-=09struct device_node *cpun, *cpus;
-
-=09cpus =3D of_find_node_by_path("/cpus");
-=09if (!cpus) {
-=09=09pr_warn("Missing cpus node, bailing out\n");
-=09=09return NULL;
-=09}
-
-=09for_each_child_of_node(cpus, cpun) {
-=09=09if (of_node_cmp(cpun->type, "cpu"))
-=09=09=09continue;
-
-=09=09/* Check for ibm,ppc-interrupt-server#s. If it doesn't exist
-=09=09 * fallback to "reg" property and assume no threads
-=09=09 */
-=09=09if (__of_find_n_match_cpu_property(cpun,
-=09=09=09=09"ibm,ppc-interrupt-server#s", cpu, thread))
-=09=09=09return cpun;
-
-=09=09if (__of_find_n_match_cpu_property(cpun, "reg", cpu, thread))
-=09=09=09return cpun;
-=09}
-=09return NULL;
-}
-EXPORT_SYMBOL(of_get_cpu_node);
-
 #if defined(CONFIG_DEBUG_FS) && defined(DEBUG)
 static struct debugfs_blob_wrapper flat_dt_blob;
=20
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 5c54279..d088e45 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -18,6 +18,7 @@
  *      2 of the License, or (at your option) any later version.
  */
 #include <linux/ctype.h>
+#include <linux/cpu.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/spinlock.h>
@@ -230,6 +231,99 @@ const void *of_get_property(const struct device_node *=
np, const char *name,
 }
 EXPORT_SYMBOL(of_get_property);
=20
+/*
+ * arch_match_cpu_phys_id - Match the given logical CPU and physical id
+ *
+ * @cpu: logical index of a cpu
+ * @phys_id: physical identifier of a cpu
+ *
+ * CPU logical to physical index mapping is architecture specific.
+ * However this __weak function provides a default match of physical
+ * id to logical cpu index.
+ *
+ * Returns true if the physical identifier and the logical index correspon=
d
+ * to the same cpu, false otherwise.
+ */
+bool __weak arch_match_cpu_phys_id(int cpu, u64 phys_id)
+{
+=09return (u32)phys_id =3D=3D cpu;
+}
+
+/**
+ * Checks if the given "prop_name" property holds the physical id of the
+ * core/thread corresponding to the logical cpu 'cpu'. If 'thread' is not
+ * NULL, local thread number within the core is returned in it.
+ */
+static bool __of_find_n_match_cpu_property(struct device_node *cpun,
+=09=09=09const char *prop_name, int cpu, unsigned int *thread)
+{
+=09const __be32 *cell;
+=09int ac, prop_len, tid;
+=09u64 hwid;
+
+=09ac =3D of_n_addr_cells(cpun);
+=09cell =3D of_get_property(cpun, prop_name, &prop_len);
+=09if (!cell)
+=09=09return false;
+=09prop_len /=3D sizeof(*cell);
+=09for (tid =3D 0; tid < prop_len; tid++) {
+=09=09hwid =3D of_read_number(cell, ac);
+=09=09if (arch_match_cpu_phys_id(cpu, hwid)) {
+=09=09=09if (thread)
+=09=09=09=09*thread =3D tid;
+=09=09=09return true;
+=09=09}
+=09}
+=09return false;
+}
+
+/**
+ * of_get_cpu_node - Get device node associated with the given logical CPU
+ *
+ * @cpu: CPU number(logical index) for which device node is required
+ * @thread: if not NULL, local thread number within the physical core is
+ *          returned
+ *
+ * The main purpose of this function is to retrieve the device node for th=
e
+ * given logical CPU index. It should be used to initialize the of_node in
+ * cpu device. Once of_node in cpu device is populated, all the further
+ * references can use that instead.
+ *
+ * CPU logical to physical index mapping is architecture specific and is b=
uilt
+ * before booting secondary cores. This function uses arch_match_cpu_phys_=
id
+ * which can be overridden by architecture specific implementation.
+ *
+ * Returns a node pointer for the logical cpu if found, else NULL.
+ */
+struct device_node *of_get_cpu_node(int cpu, unsigned int *thread)
+{
+=09struct device_node *cpun, *cpus;
+
+=09cpus =3D of_find_node_by_path("/cpus");
+=09if (!cpus) {
+=09=09pr_warn("Missing cpus node, bailing out\n");
+=09=09return NULL;
+=09}
+
+=09for_each_child_of_node(cpus, cpun) {
+=09=09if (of_node_cmp(cpun->type, "cpu"))
+=09=09=09continue;
+#ifdef CONFIG_PPC
+=09=09/* Check for historical "ibm,ppc-interrupt-server#s" property
+=09=09 * for thread ids on PowerPC. If it doesn't exist fallback to
+=09=09 * standard "reg" property.
+=09=09 */
+=09=09if (__of_find_n_match_cpu_property(cpun,
+=09=09=09=09"ibm,ppc-interrupt-server#s", cpu, thread))
+=09=09=09return cpun;
+#endif
+=09=09if (__of_find_n_match_cpu_property(cpun, "reg", cpu, thread))
+=09=09=09return cpun;
+=09}
+=09return NULL;
+}
+EXPORT_SYMBOL(of_get_cpu_node);
+
 /** Checks if the given "compat" string matches one of the strings in
  * the device's "compatible" property
  */
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index ab0eade..3dfed2b 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -28,6 +28,7 @@ struct cpu {
 extern int register_cpu(struct cpu *cpu, int num);
 extern struct device *get_cpu_device(unsigned cpu);
 extern bool cpu_is_hotpluggable(unsigned cpu);
+extern bool arch_match_cpu_phys_id(int cpu, u64 phys_id);
=20
 extern int cpu_add_dev_attr(struct device_attribute *attr);
 extern void cpu_remove_dev_attr(struct device_attribute *attr);
diff --git a/include/linux/of.h b/include/linux/of.h
index 1fd08ca..c0bb2f1 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -266,6 +266,7 @@ extern int of_device_is_available(const struct device_n=
ode *device);
 extern const void *of_get_property(const struct device_node *node,
 =09=09=09=09const char *name,
 =09=09=09=09int *lenp);
+extern struct device_node *of_get_cpu_node(int cpu, unsigned int *thread);
 #define for_each_property_of_node(dn, pp) \
 =09for (pp =3D dn->properties; pp !=3D NULL; pp =3D pp->next)
=20
@@ -459,6 +460,12 @@ static inline const void *of_get_property(const struct=
 device_node *node,
 =09return NULL;
 }
=20
+static inline struct device_node *of_get_cpu_node(int cpu,
+=09=09=09=09=09unsigned int *thread)
+{
+=09return NULL;
+}
+
 static inline int of_property_read_u64(const struct device_node *np,
 =09=09=09=09       const char *propname, u64 *out_value)
 {
--=20
1.8.1.2

WARNING: multiple messages have this Message-ID (diff)
From: Sudeep.KarkadaNagesha@arm.com (Sudeep KarkadaNagesha)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 4/4] of: move of_get_cpu_node implementation to DT core library
Date: Thu, 15 Aug 2013 18:09:40 +0100	[thread overview]
Message-ID: <1376586580-5409-5-git-send-email-Sudeep.KarkadaNagesha@arm.com> (raw)
In-Reply-To: <1376586580-5409-1-git-send-email-Sudeep.KarkadaNagesha@arm.com>

From: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>

This patch moves the generalized implementation of of_get_cpu_node from
PowerPC to DT core library, thereby adding support for retrieving cpu
node for a given logical cpu index on any architecture.

The CPU subsystem can now use this function to assign of_node in the
cpu device while registering CPUs.

It is recommended to use these helper function only in pre-SMP/early
initialisation stages to retrieve CPU device node pointers in logical
ordering. Once the cpu devices are registered, it can be retrieved easily
from cpu device of_node which avoids unnecessary parsing and matching.

Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Grant Likely <grant.likely@linaro.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
---
 arch/powerpc/include/asm/prom.h |  3 --
 arch/powerpc/kernel/prom.c      | 55 ------------------------
 drivers/of/base.c               | 94 +++++++++++++++++++++++++++++++++++++++++
 include/linux/cpu.h             |  1 +
 include/linux/of.h              |  7 +++
 5 files changed, 102 insertions(+), 58 deletions(-)

diff --git a/arch/powerpc/include/asm/prom.h b/arch/powerpc/include/asm/prom.h
index bc2da15..ac204e0 100644
--- a/arch/powerpc/include/asm/prom.h
+++ b/arch/powerpc/include/asm/prom.h
@@ -43,9 +43,6 @@ void of_parse_dma_window(struct device_node *dn, const void *dma_window_prop,
 
 extern void kdump_move_device_tree(void);
 
-/* CPU OF node matching */
-struct device_node *of_get_cpu_node(int cpu, unsigned int *thread);
-
 /* cache lookup */
 struct device_node *of_find_next_cache_node(struct device_node *np);
 
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 594c9f9..1c14cd4 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -870,61 +870,6 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
 	return (int)phys_id == get_hard_smp_processor_id(cpu);
 }
 
-static bool __of_find_n_match_cpu_property(struct device_node *cpun,
-			const char *prop_name, int cpu, unsigned int *thread)
-{
-	const __be32 *cell;
-	int ac, prop_len, tid;
-	u64 hwid;
-
-	ac = of_n_addr_cells(cpun);
-	cell = of_get_property(cpun, prop_name, &prop_len);
-	if (!cell)
-		return false;
-	prop_len /= sizeof(*cell);
-	for (tid = 0; tid < prop_len; tid++) {
-		hwid = of_read_number(cell, ac);
-		if (arch_match_cpu_phys_id(cpu, hwid)) {
-			if (thread)
-				*thread = tid;
-			return true;
-		}
-	}
-	return false;
-}
-
-/* Find the device node for a given logical cpu number, also returns the cpu
- * local thread number (index in ibm,interrupt-server#s) if relevant and
- * asked for (non NULL)
- */
-struct device_node *of_get_cpu_node(int cpu, unsigned int *thread)
-{
-	struct device_node *cpun, *cpus;
-
-	cpus = of_find_node_by_path("/cpus");
-	if (!cpus) {
-		pr_warn("Missing cpus node, bailing out\n");
-		return NULL;
-	}
-
-	for_each_child_of_node(cpus, cpun) {
-		if (of_node_cmp(cpun->type, "cpu"))
-			continue;
-
-		/* Check for ibm,ppc-interrupt-server#s. If it doesn't exist
-		 * fallback to "reg" property and assume no threads
-		 */
-		if (__of_find_n_match_cpu_property(cpun,
-				"ibm,ppc-interrupt-server#s", cpu, thread))
-			return cpun;
-
-		if (__of_find_n_match_cpu_property(cpun, "reg", cpu, thread))
-			return cpun;
-	}
-	return NULL;
-}
-EXPORT_SYMBOL(of_get_cpu_node);
-
 #if defined(CONFIG_DEBUG_FS) && defined(DEBUG)
 static struct debugfs_blob_wrapper flat_dt_blob;
 
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 5c54279..d088e45 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -18,6 +18,7 @@
  *      2 of the License, or (at your option) any later version.
  */
 #include <linux/ctype.h>
+#include <linux/cpu.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/spinlock.h>
@@ -230,6 +231,99 @@ const void *of_get_property(const struct device_node *np, const char *name,
 }
 EXPORT_SYMBOL(of_get_property);
 
+/*
+ * arch_match_cpu_phys_id - Match the given logical CPU and physical id
+ *
+ * @cpu: logical index of a cpu
+ * @phys_id: physical identifier of a cpu
+ *
+ * CPU logical to physical index mapping is architecture specific.
+ * However this __weak function provides a default match of physical
+ * id to logical cpu index.
+ *
+ * Returns true if the physical identifier and the logical index correspond
+ * to the same cpu, false otherwise.
+ */
+bool __weak arch_match_cpu_phys_id(int cpu, u64 phys_id)
+{
+	return (u32)phys_id == cpu;
+}
+
+/**
+ * Checks if the given "prop_name" property holds the physical id of the
+ * core/thread corresponding to the logical cpu 'cpu'. If 'thread' is not
+ * NULL, local thread number within the core is returned in it.
+ */
+static bool __of_find_n_match_cpu_property(struct device_node *cpun,
+			const char *prop_name, int cpu, unsigned int *thread)
+{
+	const __be32 *cell;
+	int ac, prop_len, tid;
+	u64 hwid;
+
+	ac = of_n_addr_cells(cpun);
+	cell = of_get_property(cpun, prop_name, &prop_len);
+	if (!cell)
+		return false;
+	prop_len /= sizeof(*cell);
+	for (tid = 0; tid < prop_len; tid++) {
+		hwid = of_read_number(cell, ac);
+		if (arch_match_cpu_phys_id(cpu, hwid)) {
+			if (thread)
+				*thread = tid;
+			return true;
+		}
+	}
+	return false;
+}
+
+/**
+ * of_get_cpu_node - Get device node associated with the given logical CPU
+ *
+ * @cpu: CPU number(logical index) for which device node is required
+ * @thread: if not NULL, local thread number within the physical core is
+ *          returned
+ *
+ * The main purpose of this function is to retrieve the device node for the
+ * given logical CPU index. It should be used to initialize the of_node in
+ * cpu device. Once of_node in cpu device is populated, all the further
+ * references can use that instead.
+ *
+ * CPU logical to physical index mapping is architecture specific and is built
+ * before booting secondary cores. This function uses arch_match_cpu_phys_id
+ * which can be overridden by architecture specific implementation.
+ *
+ * Returns a node pointer for the logical cpu if found, else NULL.
+ */
+struct device_node *of_get_cpu_node(int cpu, unsigned int *thread)
+{
+	struct device_node *cpun, *cpus;
+
+	cpus = of_find_node_by_path("/cpus");
+	if (!cpus) {
+		pr_warn("Missing cpus node, bailing out\n");
+		return NULL;
+	}
+
+	for_each_child_of_node(cpus, cpun) {
+		if (of_node_cmp(cpun->type, "cpu"))
+			continue;
+#ifdef CONFIG_PPC
+		/* Check for historical "ibm,ppc-interrupt-server#s" property
+		 * for thread ids on PowerPC. If it doesn't exist fallback to
+		 * standard "reg" property.
+		 */
+		if (__of_find_n_match_cpu_property(cpun,
+				"ibm,ppc-interrupt-server#s", cpu, thread))
+			return cpun;
+#endif
+		if (__of_find_n_match_cpu_property(cpun, "reg", cpu, thread))
+			return cpun;
+	}
+	return NULL;
+}
+EXPORT_SYMBOL(of_get_cpu_node);
+
 /** Checks if the given "compat" string matches one of the strings in
  * the device's "compatible" property
  */
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index ab0eade..3dfed2b 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -28,6 +28,7 @@ struct cpu {
 extern int register_cpu(struct cpu *cpu, int num);
 extern struct device *get_cpu_device(unsigned cpu);
 extern bool cpu_is_hotpluggable(unsigned cpu);
+extern bool arch_match_cpu_phys_id(int cpu, u64 phys_id);
 
 extern int cpu_add_dev_attr(struct device_attribute *attr);
 extern void cpu_remove_dev_attr(struct device_attribute *attr);
diff --git a/include/linux/of.h b/include/linux/of.h
index 1fd08ca..c0bb2f1 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -266,6 +266,7 @@ extern int of_device_is_available(const struct device_node *device);
 extern const void *of_get_property(const struct device_node *node,
 				const char *name,
 				int *lenp);
+extern struct device_node *of_get_cpu_node(int cpu, unsigned int *thread);
 #define for_each_property_of_node(dn, pp) \
 	for (pp = dn->properties; pp != NULL; pp = pp->next)
 
@@ -459,6 +460,12 @@ static inline const void *of_get_property(const struct device_node *node,
 	return NULL;
 }
 
+static inline struct device_node *of_get_cpu_node(int cpu,
+					unsigned int *thread)
+{
+	return NULL;
+}
+
 static inline int of_property_read_u64(const struct device_node *np,
 				       const char *propname, u64 *out_value)
 {
-- 
1.8.1.2

  parent reply	other threads:[~2013-08-15 17:11 UTC|newest]

Thread overview: 379+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-17 14:06 [RFC PATCH v2 00/15] DT/core: update cpu device of_node Sudeep.KarkadaNagesha
2013-07-17 14:06 ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06 ` [RFC PATCH v2 01/15] of: add support for retrieving cpu node for a given logical cpu index Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06   ` Sudeep.KarkadaNagesha-5wv7dgnIgG8
2013-07-17 14:30   ` Nicolas Pitre
2013-07-17 14:30     ` Nicolas Pitre
2013-07-17 14:30     ` Nicolas Pitre
2013-07-17 14:50   ` Rob Herring
2013-07-17 14:50     ` Rob Herring
2013-07-17 15:18     ` Sudeep KarkadaNagesha
2013-07-17 15:18       ` Sudeep KarkadaNagesha
2013-07-17 15:18       ` Sudeep KarkadaNagesha
2013-07-17 14:06 ` [RFC PATCH v2 02/15] driver/core: cpu: initialize of_node in cpu's device struture Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06 ` [RFC PATCH v2 03/15] ARM: DT/kernel: define ARM specific arch_match_cpu_phys_id Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06 ` [RFC PATCH v2 04/15] ARM: topology: remove hwid/MPIDR dependency from cpu_capacity Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06   ` Sudeep.KarkadaNagesha-5wv7dgnIgG8
2013-07-17 14:06 ` [RFC PATCH v2 05/15] ARM: mvebu: remove device tree parsing for cpu nodes Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06   ` Sudeep.KarkadaNagesha-5wv7dgnIgG8
2013-07-17 14:06 ` [RFC PATCH v2 06/15] drivers/bus: arm-cci: avoid parsing DT for cpu device nodes Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06   ` Sudeep.KarkadaNagesha
2013-07-17 14:06 ` [RFC PATCH v2 07/15] cpufreq: imx6q-cpufreq: remove device tree parsing for cpu nodes Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06   ` Sudeep.KarkadaNagesha-5wv7dgnIgG8
2013-07-17 14:06 ` [RFC PATCH v2 08/15] cpufreq: cpufreq-cpu0: " Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06   ` Sudeep.KarkadaNagesha-5wv7dgnIgG8
2013-07-17 14:06 ` [RFC PATCH v2 09/15] cpufreq: highbank-cpufreq: " Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06 ` [RFC PATCH v2 10/15] cpufreq: spear-cpufreq: " Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06 ` [RFC PATCH v2 11/15] cpufreq: kirkwood-cpufreq: " Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:43   ` Andrew Lunn
2013-07-17 14:43     ` Andrew Lunn
2013-07-18  7:53     ` Viresh Kumar
2013-07-18  7:53       ` Viresh Kumar
2013-07-18  8:24     ` Sudeep KarkadaNagesha
2013-07-18  8:24       ` Sudeep KarkadaNagesha
2013-07-18  8:24       ` Sudeep KarkadaNagesha
2013-07-18 10:14       ` Sudeep KarkadaNagesha
2013-07-18 10:14         ` Sudeep KarkadaNagesha
2013-07-18 10:14         ` Sudeep KarkadaNagesha
2013-07-18 18:30         ` Rob Herring
2013-07-18 18:30           ` Rob Herring
2013-07-18 18:30           ` Rob Herring
2013-07-17 14:06 ` [RFC PATCH v2 12/15] cpufreq: arm_big_little: " Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06 ` [RFC PATCH v2 13/15] cpufreq: maple-cpufreq: " Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06 ` [RFC PATCH v2 14/15] cpufreq: pmac64-cpufreq: " Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-17 14:06 ` [RFC PATCH v2 15/15] cpufreq: pmac32-cpufreq: " Sudeep.KarkadaNagesha
2013-07-17 14:06   ` Sudeep.KarkadaNagesha at arm.com
2013-07-18  7:54 ` [RFC PATCH v2 00/15] DT/core: update cpu device of_node Viresh Kumar
2013-07-18  7:54   ` Viresh Kumar
2013-07-22 11:32 ` [PATCH v3 00/16] " Sudeep KarkadaNagesha
2013-07-22 11:32   ` Sudeep KarkadaNagesha
2013-07-22 11:32   ` [PATCH v3 01/16] of: add support for retrieving cpu node for a given logical cpu index Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 14:14     ` Nicolas Pitre
2013-07-22 14:14       ` Nicolas Pitre
2013-07-22 15:07       ` Sudeep KarkadaNagesha
2013-07-22 15:07         ` Sudeep KarkadaNagesha
2013-07-22 15:07         ` Sudeep KarkadaNagesha
2013-07-23 10:54         ` Sudeep KarkadaNagesha
2013-07-23 10:54           ` Sudeep KarkadaNagesha
2013-08-15 11:32     ` Tomasz Figa
2013-08-15 11:32       ` Tomasz Figa
2013-08-15 14:59       ` Sudeep KarkadaNagesha
2013-08-15 14:59         ` Sudeep KarkadaNagesha
2013-08-15 14:59         ` Sudeep KarkadaNagesha
2013-07-22 11:32   ` [PATCH v3 02/16] ARM: DT/kernel: define ARM specific arch_match_cpu_phys_id Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 14:14     ` Nicolas Pitre
2013-07-22 14:14       ` Nicolas Pitre
2013-07-22 11:32   ` [PATCH v3 03/16] driver/core: cpu: initialize of_node in cpu's device struture Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-08-15 11:35     ` Tomasz Figa
2013-08-15 11:35       ` Tomasz Figa
2013-08-15 15:13       ` Sudeep KarkadaNagesha
2013-08-15 15:13         ` Sudeep KarkadaNagesha
2013-08-15 15:13         ` Sudeep KarkadaNagesha
2013-07-22 11:32   ` [PATCH v3 04/16] ARM: topology: remove hwid/MPIDR dependency from cpu_capacity Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 14:25     ` Nicolas Pitre
2013-07-22 14:25       ` Nicolas Pitre
2013-07-22 11:32   ` [PATCH v3 05/16] ARM: mvebu: remove device tree parsing for cpu nodes Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-08-01  9:54     ` Sudeep KarkadaNagesha
2013-08-01  9:54       ` Sudeep KarkadaNagesha
2013-08-01  9:54       ` Sudeep KarkadaNagesha
2013-08-01 12:02       ` Jason Cooper
2013-08-01 12:02         ` Jason Cooper
2013-08-01 12:02         ` Jason Cooper
2013-08-05 16:28         ` Sudeep KarkadaNagesha
2013-08-05 16:28           ` Sudeep KarkadaNagesha
2013-08-05 16:28           ` Sudeep KarkadaNagesha
2013-08-06  8:25           ` Gregory CLEMENT
2013-08-06  8:25             ` Gregory CLEMENT
2013-08-06  8:25             ` Gregory CLEMENT
2013-08-06  9:02             ` Sudeep KarkadaNagesha
2013-08-06  9:02               ` Sudeep KarkadaNagesha
2013-08-06  9:02               ` Sudeep KarkadaNagesha
2013-07-22 11:32   ` [PATCH v3 06/16] drivers/bus: arm-cci: avoid parsing DT for cpu device nodes Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 14:37     ` Nicolas Pitre
2013-07-22 14:37       ` Nicolas Pitre
2013-07-22 11:32   ` [PATCH v3 07/16] of/device: add helper to get cpu device node from logical cpu index Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-26 17:01     ` Sudeep KarkadaNagesha
2013-07-26 17:01       ` Sudeep KarkadaNagesha
2013-07-26 17:01       ` Sudeep KarkadaNagesha
2013-07-26 18:55       ` Rob Herring
2013-07-26 18:55         ` Rob Herring
2013-07-26 18:55         ` Rob Herring
2013-07-22 11:32   ` [PATCH v3 08/16] cpufreq: imx6q-cpufreq: remove device tree parsing for cpu nodes Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 11:32   ` [PATCH v3 09/16] cpufreq: cpufreq-cpu0: " Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 11:32   ` [PATCH v3 10/16] cpufreq: highbank-cpufreq: " Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 11:32   ` [PATCH v3 11/16] cpufreq: spear-cpufreq: " Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 11:32   ` [PATCH v3 12/16] cpufreq: kirkwood-cpufreq: " Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-23  9:25     ` Andrew Lunn
2013-07-23  9:25       ` Andrew Lunn
2013-07-22 11:32   ` [PATCH v3 13/16] cpufreq: arm_big_little: " Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 11:32   ` [PATCH v3 14/16] cpufreq: maple-cpufreq: " Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 11:32   ` [PATCH v3 15/16] cpufreq: pmac64-cpufreq: " Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-07-22 11:32   ` [PATCH v3 16/16] cpufreq: pmac32-cpufreq: " Sudeep KarkadaNagesha
2013-07-22 11:32     ` Sudeep KarkadaNagesha
2013-08-01 10:05   ` [PATCH v3 00/16] DT/core: update cpu device of_node Sudeep KarkadaNagesha
2013-08-01 10:05     ` Sudeep KarkadaNagesha
2013-08-01 10:05     ` Sudeep KarkadaNagesha
2013-08-15 17:09   ` [RFC PATCH 0/4] DT: move of_get_cpu_node from PPC to DT core Sudeep KarkadaNagesha
2013-08-15 17:09     ` Sudeep KarkadaNagesha
2013-08-15 17:09     ` Sudeep KarkadaNagesha
2013-08-15 17:09     ` Sudeep KarkadaNagesha
2013-08-15 17:09     ` [RFC PATCH 1/4] microblaze: remove undefined of_get_cpu_node declaration Sudeep KarkadaNagesha
2013-08-15 17:09       ` Sudeep KarkadaNagesha
2013-08-15 17:09       ` Sudeep KarkadaNagesha
2013-08-15 17:09       ` Sudeep KarkadaNagesha
2013-08-15 17:09     ` [RFC PATCH 2/4] openrisc: " Sudeep KarkadaNagesha
2013-08-15 17:09       ` Sudeep KarkadaNagesha
2013-08-15 17:09       ` Sudeep KarkadaNagesha
2013-08-15 17:09       ` Sudeep KarkadaNagesha
2013-08-16  9:41       ` Sudeep KarkadaNagesha
2013-08-16  9:41         ` Sudeep KarkadaNagesha
2013-08-16  9:41         ` Sudeep KarkadaNagesha
2013-08-16  9:41         ` Sudeep KarkadaNagesha
2013-08-21  5:10         ` Jonas Bonn
2013-08-21  5:10           ` Jonas Bonn
2013-08-21  5:10           ` Jonas Bonn
2013-08-21  5:10           ` Jonas Bonn
2013-08-15 17:09     ` [RFC PATCH 3/4] powerpc: refactor of_get_cpu_node to support other architectures Sudeep KarkadaNagesha
2013-08-15 17:09       ` Sudeep KarkadaNagesha
2013-08-15 17:09       ` Sudeep KarkadaNagesha
2013-08-15 17:09       ` Sudeep KarkadaNagesha
2013-08-16  4:49       ` Benjamin Herrenschmidt
2013-08-16  4:49         ` Benjamin Herrenschmidt
2013-08-16  4:49         ` Benjamin Herrenschmidt
2013-08-16  8:48         ` Sudeep KarkadaNagesha
2013-08-16  8:48           ` Sudeep KarkadaNagesha
2013-08-16  8:48           ` Sudeep KarkadaNagesha
2013-08-16  8:48           ` Sudeep KarkadaNagesha
2013-08-16 12:32           ` Benjamin Herrenschmidt
2013-08-16 12:32             ` Benjamin Herrenschmidt
2013-08-16 12:32             ` Benjamin Herrenschmidt
2013-08-16 12:44             ` Sudeep KarkadaNagesha
2013-08-16 12:44               ` Sudeep KarkadaNagesha
2013-08-16 12:44               ` Sudeep KarkadaNagesha
2013-08-16 12:44               ` Sudeep KarkadaNagesha
2013-08-16  4:50       ` Benjamin Herrenschmidt
2013-08-16  4:50         ` Benjamin Herrenschmidt
2013-08-16  4:50         ` Benjamin Herrenschmidt
2013-08-16  8:43         ` Sudeep KarkadaNagesha
2013-08-16  8:43           ` Sudeep KarkadaNagesha
2013-08-16  8:43           ` Sudeep KarkadaNagesha
2013-08-16  8:43           ` Sudeep KarkadaNagesha
2013-08-15 17:09     ` Sudeep KarkadaNagesha [this message]
2013-08-15 17:09       ` [RFC PATCH 4/4] of: move of_get_cpu_node implementation to DT core library Sudeep KarkadaNagesha
2013-08-15 17:09       ` Sudeep KarkadaNagesha
2013-08-15 17:09       ` Sudeep KarkadaNagesha
2013-08-16 17:39     ` [RFC PATCH v2 0/4] DT: move of_get_cpu_node from PPC to DT core Sudeep KarkadaNagesha
2013-08-16 17:39       ` Sudeep KarkadaNagesha
2013-08-16 17:39       ` Sudeep KarkadaNagesha
2013-08-16 17:39       ` [RFC PATCH v2 3/4] powerpc: refactor of_get_cpu_node to support other architectures Sudeep KarkadaNagesha
2013-08-16 17:39         ` Sudeep KarkadaNagesha
2013-08-16 17:39         ` Sudeep KarkadaNagesha
2013-08-16 22:13         ` Benjamin Herrenschmidt
2013-08-16 22:13           ` Benjamin Herrenschmidt
2013-08-16 22:13           ` Benjamin Herrenschmidt
2013-08-19 10:13           ` Sudeep KarkadaNagesha
2013-08-19 10:13             ` Sudeep KarkadaNagesha
2013-08-19 10:13             ` Sudeep KarkadaNagesha
2013-08-19 10:13             ` Sudeep KarkadaNagesha
2013-08-17 10:50         ` Tomasz Figa
2013-08-17 10:50           ` Tomasz Figa
2013-08-17 10:50           ` Tomasz Figa
2013-08-17 22:09           ` Benjamin Herrenschmidt
2013-08-17 22:09             ` Benjamin Herrenschmidt
2013-08-17 22:09             ` Benjamin Herrenschmidt
2013-08-17 22:22             ` Tomasz Figa
2013-08-17 22:22               ` Tomasz Figa
2013-08-17 22:22               ` Tomasz Figa
2013-08-19 10:19             ` Mark Rutland
2013-08-19 10:19               ` Mark Rutland
2013-08-19 10:19               ` Mark Rutland
2013-08-19 13:02               ` Rob Herring
2013-08-19 13:02                 ` Rob Herring
2013-08-19 13:02                 ` Rob Herring
2013-08-19 13:02                 ` Rob Herring
2013-08-19 13:56                 ` Sudeep KarkadaNagesha
2013-08-19 13:56                   ` Sudeep KarkadaNagesha
2013-08-19 13:56                   ` Sudeep KarkadaNagesha
2013-08-19 13:56                   ` Sudeep KarkadaNagesha
2013-08-22 13:59                   ` Mark Rutland
2013-08-22 13:59                     ` Mark Rutland
2013-08-22 13:59                     ` Mark Rutland
2013-08-22 13:59                     ` Mark Rutland
2013-08-22 16:51                     ` Sudeep KarkadaNagesha
2013-08-22 16:51                       ` Sudeep KarkadaNagesha
2013-08-22 16:51                       ` Sudeep KarkadaNagesha
2013-08-22 16:51                       ` Sudeep KarkadaNagesha
2013-08-28 19:46                     ` Grant Likely
2013-08-28 19:46                       ` Grant Likely
2013-08-28 19:46                       ` Grant Likely
2013-08-28 19:46                       ` Grant Likely
2013-08-29  9:50                       ` Lorenzo Pieralisi
2013-08-29  9:50                         ` Lorenzo Pieralisi
2013-08-29  9:50                         ` Lorenzo Pieralisi
2013-08-29  9:50                         ` Lorenzo Pieralisi
2013-08-16 17:39       ` [RFC PATCH v2 4/4] of: move of_get_cpu_node implementation to DT core library Sudeep KarkadaNagesha
2013-08-16 17:39         ` Sudeep KarkadaNagesha
2013-08-16 17:39         ` Sudeep KarkadaNagesha
2013-08-16 22:14         ` Benjamin Herrenschmidt
2013-08-16 22:14           ` Benjamin Herrenschmidt
2013-08-16 22:14           ` Benjamin Herrenschmidt
2013-08-19 10:21           ` Sudeep KarkadaNagesha
2013-08-19 10:21             ` Sudeep KarkadaNagesha
2013-08-19 10:21             ` Sudeep KarkadaNagesha
2013-08-19 10:21             ` Sudeep KarkadaNagesha
2013-08-19 13:11         ` Rob Herring
2013-08-19 13:11           ` Rob Herring
2013-08-19 13:11           ` Rob Herring
2013-08-19 13:24           ` Sudeep KarkadaNagesha
2013-08-19 13:24             ` Sudeep KarkadaNagesha
2013-08-19 13:24             ` Sudeep KarkadaNagesha
2013-08-19 13:24             ` Sudeep KarkadaNagesha
2013-08-20  9:30   ` [PATCH v4 00/19] DT/core: update cpu device of_node Sudeep KarkadaNagesha
2013-08-20  9:30     ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 01/19] microblaze: remove undefined of_get_cpu_node declaration Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 02/19] openrisc: " Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 03/19] powerpc: refactor of_get_cpu_node to support other architectures Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20 12:27       ` Rafael J. Wysocki
2013-08-20 12:27         ` Rafael J. Wysocki
2013-08-20 12:27         ` Rafael J. Wysocki
2013-08-20 12:22         ` Sudeep KarkadaNagesha
2013-08-20 12:22           ` Sudeep KarkadaNagesha
2013-08-20 12:22           ` Sudeep KarkadaNagesha
2013-08-20 12:22           ` Sudeep KarkadaNagesha
2013-08-20 21:48           ` Benjamin Herrenschmidt
2013-08-20 21:48             ` Benjamin Herrenschmidt
2013-08-20 21:48             ` Benjamin Herrenschmidt
2013-08-22  6:15       ` Benjamin Herrenschmidt
2013-08-22  6:15         ` Benjamin Herrenschmidt
2013-08-22  6:15         ` Benjamin Herrenschmidt
2013-08-22 13:29         ` Sudeep KarkadaNagesha
2013-08-22 13:29           ` Sudeep KarkadaNagesha
2013-08-22 13:29           ` Sudeep KarkadaNagesha
2013-08-22 13:29           ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 04/19] of: move of_get_cpu_node implementation to DT core library Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 05/19] ARM: DT/kernel: define ARM specific arch_match_cpu_phys_id Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 06/19] driver/core: cpu: initialize of_node in cpu's device struture Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20 12:28       ` Rafael J. Wysocki
2013-08-20 12:28         ` Rafael J. Wysocki
2013-08-20 12:28         ` Rafael J. Wysocki
2013-08-20 15:18       ` Greg Kroah-Hartman
2013-08-20 15:18         ` Greg Kroah-Hartman
2013-08-20 15:18         ` Greg Kroah-Hartman
2013-08-20  9:30     ` [PATCH v4 07/19] of/device: add helper to get cpu device node from logical cpu index Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 08/19] ARM: topology: remove hwid/MPIDR dependency from cpu_capacity Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 09/19] ARM: mvebu: remove device tree parsing for cpu nodes Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 10/19] drivers/bus: arm-cci: avoid parsing DT for cpu device nodes Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 11/19] cpufreq: imx6q-cpufreq: remove device tree parsing for cpu nodes Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 12/19] cpufreq: cpufreq-cpu0: " Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-09-06 13:44       ` Guennadi Liakhovetski
2013-09-06 13:44         ` Guennadi Liakhovetski
2013-09-06 13:44         ` Guennadi Liakhovetski
2013-09-09  9:24         ` Sudeep KarkadaNagesha
2013-09-09  9:24           ` Sudeep KarkadaNagesha
2013-09-09  9:24           ` Sudeep KarkadaNagesha
2013-09-09  9:24           ` Sudeep KarkadaNagesha
2013-09-09 14:32           ` Shawn Guo
2013-09-09 14:32             ` Shawn Guo
2013-09-09 14:32             ` Shawn Guo
2013-09-09 14:32             ` Shawn Guo
2013-09-09 15:24             ` Sudeep KarkadaNagesha
2013-09-09 15:24               ` Sudeep KarkadaNagesha
2013-09-09 15:24               ` Sudeep KarkadaNagesha
2013-09-09 15:24               ` Sudeep KarkadaNagesha
2013-09-10  2:44               ` Shawn Guo
2013-09-10  2:44                 ` Shawn Guo
2013-09-10  2:44                 ` Shawn Guo
2013-09-10  2:44                 ` Shawn Guo
2013-09-10 10:56                 ` Sudeep KarkadaNagesha
2013-09-10 10:56                   ` Sudeep KarkadaNagesha
2013-09-10 10:56                   ` Sudeep KarkadaNagesha
2013-09-10 10:56                   ` Sudeep KarkadaNagesha
2013-09-10 11:19                   ` Shawn Guo
2013-09-10 11:19                     ` Shawn Guo
2013-09-10 11:19                     ` Shawn Guo
2013-09-10 11:19                     ` Shawn Guo
2013-08-20  9:30     ` [PATCH v4 13/19] cpufreq: highbank-cpufreq: " Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 14/19] cpufreq: spear-cpufreq: " Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 15/19] cpufreq: kirkwood-cpufreq: " Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 16/19] cpufreq: arm_big_little: " Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 17/19] cpufreq: maple-cpufreq: " Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 18/19] cpufreq: pmac64-cpufreq: " Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30     ` [PATCH v4 19/19] cpufreq: pmac32-cpufreq: " Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha
2013-08-20  9:30       ` Sudeep KarkadaNagesha

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1376586580-5409-5-git-send-email-Sudeep.KarkadaNagesha@arm.com \
    --to=sudeep.karkadanagesha@arm.com \
    --cc=benh@kernel.crashing.org \
    --cc=devicetree@vger.kernel.org \
    --cc=grant.likely@linaro.org \
    --cc=jonas@southpole.se \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux@openrisc.net \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=microblaze-uclinux@itee.uq.edu.au \
    --cc=monstr@monstr.eu \
    --cc=rjw@sisk.pl \
    --cc=rob.herring@calxeda.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.