qcacld-3.0: Use pm_qos only at high bandwidth

Currently we use PM qos apis to set masks and latency values at
PLD_BUS_WIDTH_LOW throughput level. As per experiments and power
measurements, this can also be done at the PLD_BUS_WIDTH_MEDIUM level
without any throughput impact and can help CPU enter C4 states at this
level.

Hence, donot use pm-qos APIs at less than high throughput levels.

Change-Id: I8bebb3b593b9d26aa6764b16b218814979bcd322
CRs-Fixed: 2507386
This commit is contained in:
Mohit Khanna 2019-07-31 19:13:02 -07:00 committed by nshrivas
parent 378b7ee6a4
commit 58a898ba9e

View File

@ -8422,8 +8422,6 @@ static void hdd_pld_request_bus_bandwidth(struct hdd_context *hdd_ctx,
*/
if (hdd_ctx->en_tcp_delack_no_lro) {
rx_tp_data.rx_tp_flags |= TCP_DEL_ACK_IND;
hdd_debug("TCP DELACK trigger level %d, average_rx: %llu",
next_rx_level, avg_rx);
}
if (hdd_ctx->config->enable_tcp_adv_win_scale)
@ -8465,9 +8463,6 @@ static void hdd_pld_request_bus_bandwidth(struct hdd_context *hdd_ctx,
if ((hdd_ctx->config->enable_tcp_limit_output) &&
(hdd_ctx->cur_tx_level != next_tx_level)) {
struct wlan_tx_tp_data tx_tp_data = {0};
hdd_debug("change TCP TX trigger level %d, average_tx: %llu",
next_tx_level, avg_tx);
hdd_ctx->cur_tx_level = next_tx_level;
tx_level_change = true;
tx_tp_data.level = next_tx_level;
@ -8478,7 +8473,7 @@ static void hdd_pld_request_bus_bandwidth(struct hdd_context *hdd_ctx,
index = hdd_ctx->hdd_txrx_hist_idx;
if (vote_level_change || tx_level_change || rx_level_change) {
/* Clear all the mask if no silver/gold vote is required */
if (next_vote_level < PLD_BUS_WIDTH_MEDIUM) {
if (next_vote_level < PLD_BUS_WIDTH_HIGH) {
is_rx_pm_qos_high = false;
is_tx_pm_qos_high = false;
cpumask_clear(&pm_qos_cpu_mask);