[PATCH] at91sam9x5ek: Add appropriate compatibility guards to all initcalls

Andrey Smirnov andrew.smirnov at gmail.com
Tue Jan 23 06:30:53 PST 2018


Add appropriate calls to of_machine_is_compatible() to all initcalls
to avoid having those executed for wrong boards in multi-board build.

Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
---
 arch/arm/boards/at91sam9x5ek/hw_version.c |  3 +++
 arch/arm/boards/at91sam9x5ek/init.c       | 13 +++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/arch/arm/boards/at91sam9x5ek/hw_version.c b/arch/arm/boards/at91sam9x5ek/hw_version.c
index 10563cf98..f15cd3dc0 100644
--- a/arch/arm/boards/at91sam9x5ek/hw_version.c
+++ b/arch/arm/boards/at91sam9x5ek/hw_version.c
@@ -253,6 +253,9 @@ static int cm_cogent_fixup(struct device_node *root, void *unused)
 
 static int at91sam9x5ek_devices_detect_hw(void)
 {
+	if (!of_machine_is_compatible("atmel,at91sam9x5ek"))
+		return 0;
+
 	at91sam9x5ek_devices_detect_one("/dev/ds24310");
 	at91sam9x5ek_devices_detect_one("/dev/ds24311");
 	at91sam9x5ek_devices_detect_one("/dev/ds24330");
diff --git a/arch/arm/boards/at91sam9x5ek/init.c b/arch/arm/boards/at91sam9x5ek/init.c
index 646cff5d6..649545e8a 100644
--- a/arch/arm/boards/at91sam9x5ek/init.c
+++ b/arch/arm/boards/at91sam9x5ek/init.c
@@ -66,6 +66,10 @@ static struct sam9_smc_config cm_nand_smc_config = {
 static int ek_add_device_smc(void)
 {
 	unsigned long csa;
+
+	if (!of_machine_is_compatible("atmel,at91sam9x5ek"))
+		return 0;
+
 	csa = at91_sys_read(AT91_MATRIX_EBICSA);
 
 	/* Enable CS3 */
@@ -105,6 +109,9 @@ static int ek_register_mac_address(void)
 {
 	int ret;
 
+	if (!of_machine_is_compatible("atmel,at91sam9x5ek"))
+		return 0;
+
 	ret = w1_local_mac_address_register(0, "tml", "w1-2d-0");
 	if (!ret)
 		return ret;
@@ -158,6 +165,9 @@ static void ek_add_device_lcdc(void) {}
 
 static int at91sam9x5ek_devices_init(void)
 {
+	if (!of_machine_is_compatible("atmel,at91sam9x5ek"))
+		return 0;
+
 	ek_add_device_lcdc();
 
 	armlinux_set_architecture(CONFIG_MACH_AT91SAM9X5EK);
@@ -171,6 +181,9 @@ device_initcall(at91sam9x5ek_devices_init);
 
 static int at91sam9x5ek_console_init(void)
 {
+	if (!of_machine_is_compatible("atmel,at91sam9x5ek"))
+		return 0;
+
 	barebox_set_model("Atmel at91sam9x5-ek");
 	barebox_set_hostname("at91sam9x5-ek");
 
-- 
2.14.3




More information about the barebox mailing list