Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9b5cdec1 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ARM: dts: msm: Optimize boot order for msm8953 iot"

parents 11ddc0bd f891f37a
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -65,6 +65,17 @@ config ARCH_MSM8953
	select HAVE_CLK_PREPARE
	select COMMON_CLK_MSM

config ARCH_MSM8953_BOOT_ORDERING
	bool "Enable support for MSM8953 device boot ordering"
	default n
	help
	  Populate devices from devicetree at late_init, after
	  drivers for all platform devices have been registered.
	  This causes devices to be probed in the order they are
	  listed in devicetree. Thus it is possible to have
	  greater control over the probe ordering such that
	  overall boot time can be reduced.

config ARCH_MSM8937
	bool "Enable support for MSM8937"
	select CPU_V7
+17 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
#include "board-dt.h"
#include <asm/mach/map.h>
#include <asm/mach/arch.h>
#include <linux/of_platform.h>

static const char *msm8953_dt_match[] __initconst = {
	"qcom,msm8953",
@@ -23,9 +24,25 @@ static const char *msm8953_dt_match[] __initconst = {

static void __init msm8953_init(void)
{
	if (IS_ENABLED(CONFIG_ARCH_MSM8953_BOOT_ORDERING))
		return;
	board_dt_populate(NULL);
}

#ifdef CONFIG_ARCH_MSM8953_BOOT_ORDERING
static int __init msm8953_dt_populate(void)
{
	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);

	/* Explicitly parent the /soc devices to the root node to preserve
	 * the kernel ABI (sysfs structure, etc) until userspace is updated
	 */
	of_platform_populate(of_find_node_by_path("/soc"),
			     of_default_bus_match_table, NULL, NULL);
}
late_initcall(msm8953_dt_populate);
#endif

DT_MACHINE_START(MSM8953_DT,
	"Qualcomm Technologies, Inc. MSM8953 (Flattened Device Tree)")
	.init_machine		= msm8953_init,
+13 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/regulator/qcom,rpm-smd-regulator.h>
#include <dt-bindings/clock/msm-clocks-8953.h>
#include <dt-bindings/msm/msm-bus-ids.h>

/ {
	model = "Qualcomm Technologies, Inc. MSM8953";
@@ -168,7 +169,18 @@
		spi3 = &spi_3;
	};

	soc: soc { };
	soc: soc {
		/*
		 * The ordering of these devices is important to boot time
		 * for iot projects.
		 */
		smem: qcom,smem@86300000 {};
		rpm_bus: qcom,rpm-smd {};
		clock_gcc: qcom,gcc@1800000 {};
		ad_hoc_bus: ad-hoc-bus@580000 {};
		tlmm: pinctrl@1000000 {};
		sdhc_1: sdhci@7824900 {};
	};

};

+1 −1
Original line number Diff line number Diff line
@@ -502,7 +502,7 @@ int of_platform_default_populate(struct device_node *root,
}
EXPORT_SYMBOL_GPL(of_platform_default_populate);

#ifndef CONFIG_PPC
#if !defined(CONFIG_PPC) && !defined(CONFIG_ARCH_MSM8953_BOOT_ORDERING)
static int __init of_platform_default_populate_init(void)
{
	struct device_node *node;