diff --git a/arch/arm64/configs/vendor/kalama_GKI.config b/arch/arm64/configs/vendor/kalama_GKI.config index ffa8c3d52926..d346eb694b32 100644 --- a/arch/arm64/configs/vendor/kalama_GKI.config +++ b/arch/arm64/configs/vendor/kalama_GKI.config @@ -39,6 +39,7 @@ CONFIG_MFD_SPMI_PMIC=m CONFIG_MSM_BOOT_STATS=m # CONFIG_MSM_BOOT_TIME_MARKER is not set CONFIG_MSM_HSUSB_PHY=m +CONFIG_MSM_PERFORMANCE=m CONFIG_NOP_USB_XCEIV=m CONFIG_PHY_QCOM_UFS=m CONFIG_PHY_QCOM_UFS_V4=m diff --git a/arch/arm64/configs/vendor/pineapple_GKI.config b/arch/arm64/configs/vendor/pineapple_GKI.config index 236fd4a90a2e..f25927e71c76 100644 --- a/arch/arm64/configs/vendor/pineapple_GKI.config +++ b/arch/arm64/configs/vendor/pineapple_GKI.config @@ -57,6 +57,7 @@ CONFIG_MSM_BOOT_STATS=m CONFIG_MSM_CORE_HANG_DETECT=m CONFIG_MSM_GPI_DMA=m # CONFIG_MSM_GPI_DMA_DEBUG is not set +CONFIG_MSM_PERFORMANCE=m CONFIG_MSM_QMP=m # CONFIG_NITRO_ENCLAVES is not set CONFIG_NOP_USB_XCEIV=m diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig index 9c12ec0cb0fe..8b20924cea45 100644 --- a/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig @@ -719,4 +719,12 @@ config QCOM_ICC_BWMON source "drivers/soc/qcom/mem_buf/Kconfig" +config MSM_PERFORMANCE + tristate "msm performance driver to support userspace fmin/fmax request" + help + This driver can restrict max freq or min freq of cpu cluster + when requested by the userspace by changing the cpufreq policy + fmin and fmax. The user space can request the cpu freq change by + writing cpu#:freq values + endmenu diff --git a/drivers/soc/qcom/Makefile b/drivers/soc/qcom/Makefile index 850d5b14df59..a81f7f58b2d1 100644 --- a/drivers/soc/qcom/Makefile +++ b/drivers/soc/qcom/Makefile @@ -63,3 +63,5 @@ obj-$(CONFIG_QCOM_DCVS) += dcvs/ obj-$(CONFIG_QCOM_CPUCP) += qcom_cpucp.o obj-$(CONFIG_QTI_CPUCP_LOG) += cpucp_log.o obj-$(CONFIG_QTI_SYS_PM_VX) += sys_pm_vx.o +obj-$(CONFIG_MSM_PERFORMANCE) += msm_performance.o + diff --git a/drivers/soc/qcom/msm_performance.c b/drivers/soc/qcom/msm_performance.c index f08f6aad5df2..e3817c333895 100644 --- a/drivers/soc/qcom/msm_performance.c +++ b/drivers/soc/qcom/msm_performance.c @@ -821,15 +821,15 @@ static int msm_perf_core_ctl_notify(struct notifier_block *nb, static unsigned int tld, nrb, i; static unsigned int top_ld[CLUSTER_MAX], curr_cp[CLUSTER_MAX]; static DECLARE_WORK(sysfs_notify_work, nr_notify_userspace); - struct core_ctl_notif_data *d = data; + // struct core_ctl_notif_data *d = data; int cluster = 0; - nrb += d->nr_big; - tld += d->coloc_load_pct; - for (cluster = 0; cluster < CLUSTER_MAX; cluster++) { - top_ld[cluster] += d->ta_util_pct[cluster]; - curr_cp[cluster] += d->cur_cap_pct[cluster]; - } + // nrb += d->nr_big; + // tld += d->coloc_load_pct; + // for (cluster = 0; cluster < CLUSTER_MAX; cluster++) { + // top_ld[cluster] += d->ta_util_pct[cluster]; + // curr_cp[cluster] += d->cur_cap_pct[cluster]; + // } i++; if (i == POLL_INT) { aggr_big_nr = ((nrb%POLL_INT) ? 1 : 0) + nrb/POLL_INT;