mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 14:23:38 +00:00
65 lines
2.7 KiB
Diff
65 lines
2.7 KiB
Diff
From 9212c1b9e80a869e732769a4fe7f82d392b219be Mon Sep 17 00:00:00 2001
|
|
From: P Praneesh <quic_ppranees@quicinc.com>
|
|
Date: Mon, 25 Oct 2021 17:47:09 +0530
|
|
Subject: [PATCH 091/120] 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: Lavanya Suresh <lavaks@codeaurora.org>
|
|
Signed-off-by: Lavanya Suresh <lavaks@codeaurora.org>
|
|
Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
|
|
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
|
Link: https://lore.kernel.org/r/1635164229-22880-1-git-send-email-quic_ppranees@quicinc.com
|
|
---
|
|
drivers/net/wireless/ath/ath11k/mac.c | 12 ++++++------
|
|
drivers/net/wireless/ath/ath11k/wmi.c | 2 ++
|
|
2 files changed, 8 insertions(+), 6 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
|
@@ -775,9 +775,9 @@ static int ath11k_mac_monitor_vdev_start
|
|
arg.channel.chan_radar = !!(channel->flags & IEEE80211_CHAN_RADAR);
|
|
|
|
arg.channel.min_power = 0;
|
|
- arg.channel.max_power = channel->max_power * 2;
|
|
- arg.channel.max_reg_power = channel->max_reg_power * 2;
|
|
- arg.channel.max_antenna_gain = channel->max_antenna_gain * 2;
|
|
+ arg.channel.max_power = channel->max_power;
|
|
+ arg.channel.max_reg_power = channel->max_reg_power;
|
|
+ arg.channel.max_antenna_gain = channel->max_antenna_gain;
|
|
|
|
arg.pref_tx_streams = ar->num_tx_chains;
|
|
arg.pref_rx_streams = ar->num_rx_chains;
|
|
@@ -6123,9 +6123,9 @@ ath11k_mac_vdev_start_restart(struct ath
|
|
ath11k_phymodes[chandef->chan->band][chandef->width];
|
|
|
|
arg.channel.min_power = 0;
|
|
- arg.channel.max_power = chandef->chan->max_power * 2;
|
|
- arg.channel.max_reg_power = chandef->chan->max_reg_power * 2;
|
|
- arg.channel.max_antenna_gain = chandef->chan->max_antenna_gain * 2;
|
|
+ arg.channel.max_power = chandef->chan->max_power;
|
|
+ arg.channel.max_reg_power = chandef->chan->max_reg_power;
|
|
+ arg.channel.max_antenna_gain = chandef->chan->max_antenna_gain;
|
|
|
|
arg.pref_tx_streams = ar->num_tx_chains;
|
|
arg.pref_rx_streams = ar->num_rx_chains;
|
|
--- a/drivers/net/wireless/ath/ath11k/wmi.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
|
|
@@ -2387,6 +2387,8 @@ int ath11k_wmi_send_scan_chan_list_cmd(s
|
|
tchan_info->reg_class_id);
|
|
*reg2 |= FIELD_PREP(WMI_CHAN_REG_INFO2_ANT_MAX,
|
|
tchan_info->antennamax);
|
|
+ *reg2 |= FIELD_PREP(WMI_CHAN_REG_INFO2_MAX_TX_PWR,
|
|
+ tchan_info->maxregpower);
|
|
|
|
ath11k_dbg(ar->ab, ATH11K_DBG_WMI,
|
|
"WMI chan scan list chan[%d] = %u, chan_info->info %8x\n",
|