Commit 9212c1b9 authored by P Praneesh's avatar P Praneesh Committed by Kalle Valo

ath11k: send proper txpower and maxregpower values to firmware

Set proper values for max_regpower, max_power, max_antenna_gain as it
is because firmware will convert power values to 0.5dbm steps by
multiplying it with 2.

If txpower is not set, it will lead to cca stuck resulting in latency
issues for QCN9074.

Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.4.0.1-01386-QCAHKSWPL_SILICONZ-1
Co-developed-by: default avatarLavanya Suresh <lavaks@codeaurora.org>
Signed-off-by: default avatarLavanya Suresh <lavaks@codeaurora.org>
Signed-off-by: default avatarP Praneesh <quic_ppranees@quicinc.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1635164229-22880-1-git-send-email-quic_ppranees@quicinc.com
parent 78726489
...@@ -775,9 +775,9 @@ static int ath11k_mac_monitor_vdev_start(struct ath11k *ar, int vdev_id, ...@@ -775,9 +775,9 @@ static int ath11k_mac_monitor_vdev_start(struct ath11k *ar, int vdev_id,
arg.channel.chan_radar = !!(channel->flags & IEEE80211_CHAN_RADAR); arg.channel.chan_radar = !!(channel->flags & IEEE80211_CHAN_RADAR);
arg.channel.min_power = 0; arg.channel.min_power = 0;
arg.channel.max_power = channel->max_power * 2; arg.channel.max_power = channel->max_power;
arg.channel.max_reg_power = channel->max_reg_power * 2; arg.channel.max_reg_power = channel->max_reg_power;
arg.channel.max_antenna_gain = channel->max_antenna_gain * 2; arg.channel.max_antenna_gain = channel->max_antenna_gain;
arg.pref_tx_streams = ar->num_tx_chains; arg.pref_tx_streams = ar->num_tx_chains;
arg.pref_rx_streams = ar->num_rx_chains; arg.pref_rx_streams = ar->num_rx_chains;
...@@ -6123,9 +6123,9 @@ ath11k_mac_vdev_start_restart(struct ath11k_vif *arvif, ...@@ -6123,9 +6123,9 @@ ath11k_mac_vdev_start_restart(struct ath11k_vif *arvif,
ath11k_phymodes[chandef->chan->band][chandef->width]; ath11k_phymodes[chandef->chan->band][chandef->width];
arg.channel.min_power = 0; arg.channel.min_power = 0;
arg.channel.max_power = chandef->chan->max_power * 2; arg.channel.max_power = chandef->chan->max_power;
arg.channel.max_reg_power = chandef->chan->max_reg_power * 2; arg.channel.max_reg_power = chandef->chan->max_reg_power;
arg.channel.max_antenna_gain = chandef->chan->max_antenna_gain * 2; arg.channel.max_antenna_gain = chandef->chan->max_antenna_gain;
arg.pref_tx_streams = ar->num_tx_chains; arg.pref_tx_streams = ar->num_tx_chains;
arg.pref_rx_streams = ar->num_rx_chains; arg.pref_rx_streams = ar->num_rx_chains;
......
...@@ -2387,6 +2387,8 @@ int ath11k_wmi_send_scan_chan_list_cmd(struct ath11k *ar, ...@@ -2387,6 +2387,8 @@ int ath11k_wmi_send_scan_chan_list_cmd(struct ath11k *ar,
tchan_info->reg_class_id); tchan_info->reg_class_id);
*reg2 |= FIELD_PREP(WMI_CHAN_REG_INFO2_ANT_MAX, *reg2 |= FIELD_PREP(WMI_CHAN_REG_INFO2_ANT_MAX,
tchan_info->antennamax); tchan_info->antennamax);
*reg2 |= FIELD_PREP(WMI_CHAN_REG_INFO2_MAX_TX_PWR,
tchan_info->maxregpower);
ath11k_dbg(ar->ab, ATH11K_DBG_WMI, ath11k_dbg(ar->ab, ATH11K_DBG_WMI,
"WMI chan scan list chan[%d] = %u, chan_info->info %8x\n", "WMI chan scan list chan[%d] = %u, chan_info->info %8x\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment