From 6bba50349f2059745afb748e32d8270ed73c5fee Mon Sep 17 00:00:00 2001 From: Tushar Nimkar Date: Fri, 10 Jul 2020 16:06:59 +0530 Subject: [PATCH] cpuidle: lpm-levels: Remove dependency on QGKI Fix compilation issue for lpm driver when dependency on QGKI is removed. Also this patch remove QGKI dependency from QTI_DDR_STATS_LOG, QCOM_SOC_SLEEP_STATS configs and defines CONFIG_QGKI_LPM_IPI_CHECK config. Change-Id: I60c7d5d173a8739a72f0a9c3ceb8cbb357154618 Signed-off-by: Tushar Nimkar --- drivers/cpuidle/Kconfig.arm | 9 ++++++++- drivers/cpuidle/lpm-levels.c | 4 ++++ drivers/soc/qcom/Kconfig | 2 -- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm index 849374d3bbdb..16ee6e098c4c 100644 --- a/drivers/cpuidle/Kconfig.arm +++ b/drivers/cpuidle/Kconfig.arm @@ -90,7 +90,7 @@ config ARM_MVEBU_V7_CPUIDLE config ARM_QCOM_LPM_CPUIDLE depends on ARCH_QCOM || COMPILE_TEST select CPU_IDLE_MULTIPLE_DRIVERS - select MSM_PM if QGKI + select MSM_PM select QGKI_LPM_IPI_CHECK if QGKI tristate "Qualcomm Technologies, Inc. (QTI) Power Management Drivers" help @@ -99,3 +99,10 @@ config ARM_QCOM_LPM_CPUIDLE into low power modes. It implements OS initiated scheme and determines last CPU to call into PSCI for cluster Low power modes. + +config QGKI_LPM_IPI_CHECK + depends on ARM_QCOM_LPM_CPUIDLE + bool "Qualcomm Technologies, Inc. (QTI) LPM IPI Check" + help + When this option is selected, last cpu doesn't select cluster low + power mode if there is any pending IPI already on any online cpu. diff --git a/drivers/cpuidle/lpm-levels.c b/drivers/cpuidle/lpm-levels.c index 64a96f6f9ed2..c3a11f466748 100644 --- a/drivers/cpuidle/lpm-levels.c +++ b/drivers/cpuidle/lpm-levels.c @@ -176,6 +176,7 @@ static int lpm_online_cpu(unsigned int cpu) } #endif +#ifdef CONFIG_MSM_PM /** * msm_cpuidle_get_deep_idle_latency - Get deep idle latency value * @@ -197,6 +198,7 @@ uint32_t register_system_pm_ops(struct system_pm_ops *pm_ops) return 0; } EXPORT_SYMBOL(register_system_pm_ops); +#endif static void update_debug_pc_event(enum debug_event event, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4) @@ -1299,6 +1301,7 @@ static int lpm_cpuidle_select(struct cpuidle_driver *drv, return cpu_power_select(dev, cpu); } +#ifdef CONFIG_MSM_PM void update_ipi_history(int cpu) { struct ipi_history *history = &per_cpu(cpu_ipi_history, cpu); @@ -1312,6 +1315,7 @@ void update_ipi_history(int cpu) history->current_ptr = 0; history->cpu_idle_resched_ts = now; } +#endif static void update_history(struct cpuidle_device *dev, int idx) { diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig index 89b14c991436..2aa6c77f96d9 100644 --- a/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig @@ -709,7 +709,6 @@ config QTI_RPM_STATS_LOG config QTI_DDR_STATS_LOG tristate "Qualcomm Technologies Inc (QTI) DDR Stats Driver" depends on QCOM_RPMH - depends on QGKI help This option enables a driver which reads DDR statistical information from AOP shared memory location such as DDR low power modes and DDR @@ -750,7 +749,6 @@ config QCOM_FSA4480_I2C config QCOM_SOC_SLEEP_STATS tristate "Qualcomm Technologies, Inc. (QTI) SoC sleep stats driver" - depends on QGKI help Qualcomm Technologies Inc (QTI) SoC sleep stats driver to read the shared memory exported by the remote processor related to