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