All of lore.kernel.org
 help / color / mirror / Atom feed
From: robherring2@gmail.com (Rob Herring)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 25/28] arm: use common of_flat_dt_match_machine
Date: Mon, 16 Sep 2013 18:09:21 -0500	[thread overview]
Message-ID: <1379372965-22359-26-git-send-email-robherring2@gmail.com> (raw)
In-Reply-To: <1379372965-22359-1-git-send-email-robherring2@gmail.com>

From: Rob Herring <rob.herring@calxeda.com>

Convert arm to use the common of_flat_dt_match_machine function.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: linux-arm-kernel at lists.infradead.org
---
 arch/arm/kernel/devtree.c | 42 ++++++++++++++++++++----------------------
 1 file changed, 20 insertions(+), 22 deletions(-)

diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c
index 04050f7..cb918f6 100644
--- a/arch/arm/kernel/devtree.c
+++ b/arch/arm/kernel/devtree.c
@@ -174,6 +174,19 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
 	return (phys_id & MPIDR_HWID_BITMASK) == cpu_logical_map(cpu);
 }
 
+static void * __init arch_get_next_mach(const char *const **match)
+{
+	static struct machine_desc *mdesc = __arch_info_begin;
+	struct machine_desc *m = mdesc;
+
+	if (m >= __arch_info_end)
+		return NULL;
+
+	mdesc++;
+	*match = m->dt_compat;
+	return m;
+}
+
 /**
  * setup_machine_fdt - Machine setup when an dtb was passed to the kernel
  * @dt_phys: physical address of dt blob
@@ -184,9 +197,6 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
 const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
 {
 	const struct machine_desc *mdesc, *mdesc_best = NULL;
-	unsigned int score, mdesc_score = ~1;
-	unsigned long dt_root;
-	const char *model;
 
 #ifdef CONFIG_ARCH_MULTIPLATFORM
 	DT_MACHINE_START(GENERIC_DT, "Generic DT based system")
@@ -199,23 +209,17 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
 		return NULL;
 
 	early_init_dt_scan(phys_to_virt(dt_phys));
+	mdesc = of_flat_dt_match_machine(mdesc_best, arch_get_next_mach);
 
-	/* Search the mdescs for the 'best' compatible value match */
-	dt_root = of_get_flat_dt_root();
-	for_each_machine_desc(mdesc) {
-		score = of_flat_dt_match(dt_root, mdesc->dt_compat);
-		if (score > 0 && score < mdesc_score) {
-			mdesc_best = mdesc;
-			mdesc_score = score;
-		}
-	}
-	if (!mdesc_best) {
+	if (!mdesc) {
 		const char *prop;
 		long size;
+		unsigned long dt_root;
 
 		early_print("\nError: unrecognized/unsupported "
 			    "device tree compatible list:\n[ ");
 
+		dt_root = of_get_flat_dt_root();
 		prop = of_get_flat_dt_prop(dt_root, "compatible", &size);
 		while (size > 0) {
 			early_print("'%s' ", prop);
@@ -226,16 +230,10 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
 
 		dump_machine_table(); /* does not return */
 	}
-
-	model = of_get_flat_dt_prop(dt_root, "model", NULL);
-	if (!model)
-		model = of_get_flat_dt_prop(dt_root, "compatible", NULL);
-	if (!model)
-		model = "<unknown>";
-	pr_info("Machine: %s, model: %s\n", mdesc_best->name, model);
+	early_print("matched mach %s\n", mdesc->name);
 
 	/* Change machine number to match the mdesc we're using */
-	__machine_arch_type = mdesc_best->nr;
+	__machine_arch_type = mdesc->nr;
 
-	return mdesc_best;
+	return mdesc;
 }
-- 
1.8.1.2

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robherring2@gmail.com>
To: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
Cc: Grant Likely <grant.likely@linaro.org>,
	Rob Herring <rob.herring@calxeda.com>,
	Russell King <linux@arm.linux.org.uk>,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH 25/28] arm: use common of_flat_dt_match_machine
Date: Mon, 16 Sep 2013 18:09:21 -0500	[thread overview]
Message-ID: <1379372965-22359-26-git-send-email-robherring2@gmail.com> (raw)
In-Reply-To: <1379372965-22359-1-git-send-email-robherring2@gmail.com>

From: Rob Herring <rob.herring@calxeda.com>

Convert arm to use the common of_flat_dt_match_machine function.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: linux-arm-kernel@lists.infradead.org
---
 arch/arm/kernel/devtree.c | 42 ++++++++++++++++++++----------------------
 1 file changed, 20 insertions(+), 22 deletions(-)

diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c
index 04050f7..cb918f6 100644
--- a/arch/arm/kernel/devtree.c
+++ b/arch/arm/kernel/devtree.c
@@ -174,6 +174,19 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
 	return (phys_id & MPIDR_HWID_BITMASK) == cpu_logical_map(cpu);
 }
 
+static void * __init arch_get_next_mach(const char *const **match)
+{
+	static struct machine_desc *mdesc = __arch_info_begin;
+	struct machine_desc *m = mdesc;
+
+	if (m >= __arch_info_end)
+		return NULL;
+
+	mdesc++;
+	*match = m->dt_compat;
+	return m;
+}
+
 /**
  * setup_machine_fdt - Machine setup when an dtb was passed to the kernel
  * @dt_phys: physical address of dt blob
@@ -184,9 +197,6 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
 const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
 {
 	const struct machine_desc *mdesc, *mdesc_best = NULL;
-	unsigned int score, mdesc_score = ~1;
-	unsigned long dt_root;
-	const char *model;
 
 #ifdef CONFIG_ARCH_MULTIPLATFORM
 	DT_MACHINE_START(GENERIC_DT, "Generic DT based system")
@@ -199,23 +209,17 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
 		return NULL;
 
 	early_init_dt_scan(phys_to_virt(dt_phys));
+	mdesc = of_flat_dt_match_machine(mdesc_best, arch_get_next_mach);
 
-	/* Search the mdescs for the 'best' compatible value match */
-	dt_root = of_get_flat_dt_root();
-	for_each_machine_desc(mdesc) {
-		score = of_flat_dt_match(dt_root, mdesc->dt_compat);
-		if (score > 0 && score < mdesc_score) {
-			mdesc_best = mdesc;
-			mdesc_score = score;
-		}
-	}
-	if (!mdesc_best) {
+	if (!mdesc) {
 		const char *prop;
 		long size;
+		unsigned long dt_root;
 
 		early_print("\nError: unrecognized/unsupported "
 			    "device tree compatible list:\n[ ");
 
+		dt_root = of_get_flat_dt_root();
 		prop = of_get_flat_dt_prop(dt_root, "compatible", &size);
 		while (size > 0) {
 			early_print("'%s' ", prop);
@@ -226,16 +230,10 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
 
 		dump_machine_table(); /* does not return */
 	}
-
-	model = of_get_flat_dt_prop(dt_root, "model", NULL);
-	if (!model)
-		model = of_get_flat_dt_prop(dt_root, "compatible", NULL);
-	if (!model)
-		model = "<unknown>";
-	pr_info("Machine: %s, model: %s\n", mdesc_best->name, model);
+	early_print("matched mach %s\n", mdesc->name);
 
 	/* Change machine number to match the mdesc we're using */
-	__machine_arch_type = mdesc_best->nr;
+	__machine_arch_type = mdesc->nr;
 
-	return mdesc_best;
+	return mdesc;
 }
-- 
1.8.1.2

  parent reply	other threads:[~2013-09-16 23:09 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-16 23:08 [PATCH 00/28] Early flattened DT init consolidation Rob Herring
2013-09-16 23:08 ` Rob Herring
2013-09-16 23:08 ` [PATCH 01/28] c6x: use boot_command_line instead of private c6x_command_line Rob Herring
2013-09-18  3:07   ` Grant Likely
2013-09-18 13:35   ` Mark Salter
2013-09-16 23:08 ` [PATCH 02/28] openrisc: use boot_command_line instead of private cmd_line Rob Herring
2013-09-16 23:08   ` Rob Herring
     [not found] ` <1379372965-22359-1-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-16 23:08   ` [PATCH 03/28] of: create unflatten_and_copy_device_tree Rob Herring
2013-09-16 23:08     ` Rob Herring
2013-09-17  5:24     ` Vineet Gupta
2013-09-18  3:15     ` Grant Likely
2013-09-16 23:09   ` [PATCH 04/28] arc: use unflatten_and_copy_device_tree Rob Herring
2013-09-16 23:09     ` Rob Herring
2013-09-17  5:27     ` Vineet Gupta
2013-09-17  5:27       ` Vineet Gupta
2013-09-16 23:09 ` [PATCH 05/28] openrisc: " Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09 ` [PATCH 06/28] x86: " Rob Herring
2013-09-16 23:09 ` [PATCH 07/28] xtensa: " Rob Herring
     [not found]   ` <1379372965-22359-8-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-23 10:52     ` Max Filippov
2013-09-23 10:52       ` Max Filippov
2013-09-16 23:09 ` [PATCH 08/28] metag: " Rob Herring
2013-09-16 23:09 ` [PATCH 09/28] of: Introduce common early_init_dt_scan Rob Herring
     [not found]   ` <1379372965-22359-10-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-17  5:46     ` Vineet Gupta
2013-09-17  5:46       ` Vineet Gupta
2013-09-18  3:24     ` Grant Likely
2013-09-18  3:24       ` Grant Likely
2013-09-16 23:09 ` [PATCH 10/28] arc: use early_init_dt_scan Rob Herring
2013-09-17  6:37   ` Vineet Gupta
2013-09-17  6:37     ` Vineet Gupta
2013-09-16 23:09 ` [PATCH 11/28] arm: " Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09 ` [PATCH 12/28] arm64: " Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-17  8:43   ` Catalin Marinas
2013-09-17  8:43     ` Catalin Marinas
2013-09-17  8:43     ` Catalin Marinas
2013-09-16 23:09 ` [PATCH 13/28] c6x: " Rob Herring
     [not found]   ` <1379372965-22359-14-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-17 12:00     ` Mark Salter
2013-09-17 12:00       ` Mark Salter
2013-09-16 23:09 ` [PATCH 14/28] microblaze: " Rob Herring
2013-09-17 13:05   ` Michal Simek
2013-09-16 23:09 ` [PATCH 15/28] mips: " Rob Herring
2013-09-17  4:32   ` John Crispin
2013-09-16 23:09 ` [PATCH 16/28] openrisc: " Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09 ` [PATCH 17/28] xtensa: " Rob Herring
     [not found]   ` <1379372965-22359-18-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-23 10:53     ` Max Filippov
2013-09-23 10:53       ` Max Filippov
2013-09-16 23:09 ` [PATCH 18/28] of: create default early_init_dt_add_memory_arch Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-17  8:46   ` Catalin Marinas
2013-09-17  8:46     ` Catalin Marinas
2013-09-17  8:46     ` Catalin Marinas
2013-09-17 13:01     ` Rob Herring
2013-09-17 13:01       ` Rob Herring
2013-09-17 13:01       ` Rob Herring
2013-09-17 15:28       ` Catalin Marinas
2013-09-17 15:28         ` Catalin Marinas
2013-09-17 15:28         ` Catalin Marinas
2013-09-18  3:33   ` Grant Likely
2013-09-18  3:33     ` Grant Likely
2013-09-18  3:33     ` Grant Likely
2013-09-18 15:09     ` Rob Herring
2013-09-18 15:09       ` Rob Herring
2013-09-18 15:09       ` Rob Herring
2013-09-22 12:16       ` Grant Likely
2013-09-22 12:16         ` Grant Likely
2013-09-22 12:16         ` Grant Likely
2013-09-16 23:09 ` [PATCH 19/28] arm: set initrd_start/initrd_end for fdt scan Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-18  3:36   ` Grant Likely
2013-09-18  3:36     ` Grant Likely
2013-09-18  3:36     ` Grant Likely
2013-09-16 23:09 ` [PATCH 20/28] arm64: " Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-17  8:50   ` Catalin Marinas
2013-09-17  8:50     ` Catalin Marinas
2013-09-17  8:50     ` Catalin Marinas
2013-09-18  3:36     ` Grant Likely
2013-09-18  3:36       ` Grant Likely
2013-09-18  3:36       ` Grant Likely
2013-09-16 23:09 ` [PATCH 21/28] of: remove early_init_dt_setup_initrd_arch Rob Herring
2013-09-17  6:45   ` Vineet Gupta
2013-09-18  3:39   ` Grant Likely
2013-09-16 23:09 ` [PATCH 22/28] openrisc: remove unnecessary prom.c includes Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09 ` [PATCH 23/28] of: introduce common FDT machine related functions Rob Herring
     [not found]   ` <1379372965-22359-24-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-18  3:44     ` Grant Likely
2013-09-18  3:44       ` Grant Likely
2013-10-04 18:49     ` Grant Likely
2013-10-04 18:49       ` Grant Likely
2013-09-16 23:09 ` [PATCH 24/28] arc: use common of_flat_dt_match_machine Rob Herring
2013-09-17  6:50   ` Vineet Gupta
2013-09-17  6:50     ` Vineet Gupta
2013-09-16 23:09 ` Rob Herring [this message]
2013-09-16 23:09   ` [PATCH 25/28] arm: " Rob Herring
2013-09-16 23:09 ` [PATCH 26/28] arm64: use common of_flat_dt_get_machine_name Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-17  8:53   ` Catalin Marinas
2013-09-17  8:53     ` Catalin Marinas
2013-09-17  8:53     ` Catalin Marinas
2013-09-16 23:09 ` [PATCH 27/28] metag: use common of_flat_dt_match_machine Rob Herring
2013-09-16 23:09 ` [PATCH 28/28] mips: use common of_flat_dt_get_machine_name Rob Herring
2013-09-17  4:32   ` John Crispin
2013-09-17  4:32     ` John Crispin
2013-09-23  9:58 ` [PATCH 00/28] Early flattened DT init consolidation James Hogan
2013-09-23  9:58   ` James Hogan

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=1379372965-22359-26-git-send-email-robherring2@gmail.com \
    --to=robherring2@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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.