diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h index d604ca0ca161..3d629419ec7b 100644 --- a/core/hdd/inc/wlan_hdd_main.h +++ b/core/hdd/inc/wlan_hdd_main.h @@ -112,7 +112,7 @@ #include "qdf_periodic_work.h" #endif -#ifdef CLD_PM_QOS +#if defined(CLD_PM_QOS) || defined(FEATURE_RUNTIME_PM) #include #endif @@ -4710,6 +4710,25 @@ static inline void hdd_beacon_latency_event_cb(uint32_t latency_level) } #endif +#if defined(CLD_PM_QOS) || defined(FEATURE_RUNTIME_PM) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 7, 0)) +/** + * wlan_hdd_get_pm_qos_cpu_latency() - get PM QOS CPU latency + * + * Return: PM QOS CPU latency value + */ +static inline unsigned long wlan_hdd_get_pm_qos_cpu_latency(void) +{ + return PM_QOS_CPU_LATENCY_DEFAULT_VALUE; +} +#else +static inline unsigned long wlan_hdd_get_pm_qos_cpu_latency(void) +{ + return PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE; +} +#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 7, 0) */ +#endif /* defined(CLD_PM_QOS) || defined(FEATURE_RUNTIME_PM) */ + /** * hdd_netdev_feature_update - Update the netdev features * @net_dev: Handle to net_device diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 134b8ec66e9f..21771a77c9d3 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -9479,7 +9479,7 @@ static inline void hdd_pm_qos_update_request(struct hdd_context *hdd_ctx, qdf_cpumask_copy(&hdd_ctx->qos_cpu_mask, pm_qos_cpu_mask); if (qdf_cpumask_empty(pm_qos_cpu_mask)) { - latency = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE; + latency = wlan_hdd_get_pm_qos_cpu_latency(); qdf_for_each_possible_cpu(cpu) { dev_pm_qos_update_request( &hdd_ctx->pm_qos_req[cpu], @@ -9494,7 +9494,7 @@ static inline void hdd_pm_qos_update_request(struct hdd_context *hdd_ctx, qdf_for_each_cpu_not(cpu, &hdd_ctx->qos_cpu_mask) { dev_pm_qos_update_request( &hdd_ctx->pm_qos_req[cpu], - PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE); + wlan_hdd_get_pm_qos_cpu_latency()); } /* Set latency to 1 for CPUs included in mask */ qdf_for_each_cpu(cpu, &hdd_ctx->qos_cpu_mask) { @@ -9521,7 +9521,7 @@ static inline void hdd_pm_qos_add_request(struct hdd_context *hdd_ctx) dev_pm_qos_add_request(cpu_dev, &hdd_ctx->pm_qos_req[cpu], DEV_PM_QOS_RESUME_LATENCY, - PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE); + wlan_hdd_get_pm_qos_cpu_latency()); hdd_debug("Set qos_cpu_mask %*pb for affine_cores", cpumask_pr_args(&hdd_ctx->qos_cpu_mask)); } diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c index c9aa79c045e2..5522b8b0ce14 100644 --- a/core/hdd/src/wlan_hdd_power.c +++ b/core/hdd/src/wlan_hdd_power.c @@ -1056,11 +1056,11 @@ int wlan_hdd_pm_qos_notify(struct notifier_block *nb, unsigned long curr_val, qdf_spin_lock_irqsave(&hdd_ctx->pm_qos_lock); if (!hdd_ctx->runtime_pm_prevented && - curr_val != PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE) { + curr_val != wlan_hdd_get_pm_qos_cpu_latency()) { hif_pm_runtime_get_noresume(hif_ctx, RTPM_ID_QOS_NOTIFY); hdd_ctx->runtime_pm_prevented = true; } else if (hdd_ctx->runtime_pm_prevented && - curr_val == PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE) { + curr_val == wlan_hdd_get_pm_qos_cpu_latency()) { hif_pm_runtime_put(hif_ctx, RTPM_ID_QOS_NOTIFY); hdd_ctx->runtime_pm_prevented = false; }