Thread (127 messages) 127 messages, 17 authors, 2013-09-10

[RFC PATCH 3/4] powerpc: refactor of_get_cpu_node to support other architectures

From: benh@kernel.crashing.org (Benjamin Herrenschmidt)
Date: 2013-08-16 12:33:45
Also in: linux-pm, linuxppc-dev, lkml

On Fri, 2013-08-16 at 09:48 +0100, Sudeep KarkadaNagesha wrote:
quoted
Naming is a bit gross. You might want to make it clearer that
we are talking about CPU IDs in the device-tree here.
Any particular preference to the name or just a note is sufficient.
Also unlike PPC, in ARM we don't set hard processor id value based
values read from device tree. DT must contain the values matching to the
hardware ID registers.
This is exactly the same on ppc. We don't "set" HW values. The
device-tree content matches the HW internals. Some processors have a
"PIR" register as well which contains the HW value, in this case the
device-tree must contain the same value as the PIR on that processor.
quoted
quoted
+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;
+		}
Missing:          cell += ac;
Ah, missed it while refactoring, will fix it. Thanks
Ben.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help