From a555b785b3e5d75875e0ca25da5155f61458e050 Mon Sep 17 00:00:00 2001 From: Joseph Chen Date: Fri, 4 Aug 2023 02:34:57 +0000 Subject: [PATCH] soc: rockchip: amp: Add 'boot-on' property assignment support boot-on is absent or boot-on = <1>: bring up this cpu when driver probe. Signed-off-by: Joseph Chen Change-Id: I0157e72b53f5c35e5478408804a72bab5fd02837 --- drivers/soc/rockchip/rockchip_amp.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/soc/rockchip/rockchip_amp.c b/drivers/soc/rockchip/rockchip_amp.c index 0d1cb29ac207..e7faf3be22c3 100644 --- a/drivers/soc/rockchip/rockchip_amp.c +++ b/drivers/soc/rockchip/rockchip_amp.c @@ -207,7 +207,7 @@ static int rockchip_amp_boot_cpus(struct device *dev, struct device_node *cpu_node, int idx) { u64 cpu_entry, cpu_id; - u32 cpu_mode; + u32 cpu_mode, boot_on; int ret; if (idx >= CONFIG_NR_CPUS) @@ -233,6 +233,9 @@ static int rockchip_amp_boot_cpus(struct device *dev, return -1; } + if (of_property_read_u32_array(cpu_node, "boot-on", &boot_on, 1)) + boot_on = 1; /* compatible old action */ + cpu_boot_info[idx].entry = cpu_entry; cpu_boot_info[idx].mode = cpu_mode; cpu_boot_info[idx].cpu_id = cpu_id; @@ -243,10 +246,12 @@ static int rockchip_amp_boot_cpus(struct device *dev, return ret; } - ret = sip_smc_amp_config(RK_AMP_SUB_FUNC_CPU_ON, cpu_id, cpu_entry, 0); - if (ret) { - dev_warn(dev, "booting up a cpu is error(%d)!\n", ret); - return ret; + if (boot_on) { + ret = sip_smc_amp_config(RK_AMP_SUB_FUNC_CPU_ON, cpu_id, cpu_entry, 0); + if (ret) { + dev_warn(dev, "booting up a cpu is error(%d)!\n", ret); + return ret; + } } cpu_boot_info[idx].en = 1;