ARM: OMAP2+: Register SoC device attributes from machine .init()
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Fri, 4 Aug 2017 22:43:45 +0000 (01:43 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 15 Aug 2017 12:18:25 +0000 (15:18 +0300)
SoC device attributes are registered with a call to
soc_device_register() from the machine .init_late() operation, which is
called from the late initcall, after all drivers built-in drivers have
been probed. This results in the impossibility for drivers to use SoC
device matching in their probe function.

The omap_soc_device_init() function is safe to call from the machine
.init() operation, as all data it depends on is initialized from the
.init_early() operation. Move SoC device attribute registration to
machine .init() like on all other ARM platforms.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
arch/arm/mach-omap2/board-generic.c
arch/arm/mach-omap2/io.c

index b1e661b..583fc39 100644 (file)
@@ -33,6 +33,7 @@ static void __init __maybe_unused omap_generic_init(void)
        pdata_quirks_init(omap_dt_match_table);
 
        omapdss_init_of();
+       omap_soc_device_init();
 }
 
 #ifdef CONFIG_SOC_OMAP2420
index 1cd20e4..cb5d731 100644 (file)
@@ -428,7 +428,6 @@ static void __init __maybe_unused omap_hwmod_init_postsetup(void)
 static void __init __maybe_unused omap_common_late_init(void)
 {
        omap2_common_pm_late_init();
-       omap_soc_device_init();
 }
 
 #ifdef CONFIG_SOC_OMAP2420