mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 01:04:41 +01:00
ath.git update for v7.0-rc3
Fix issues with ath12k station statistics requests. -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQQ/mtSHzPUi16IfDEksFbugiYzLewUCaaWv9gAKCRAsFbugiYzL e0rCAQDBvfi6748qu6mWXLN9c74kG1aOFWlk7C4YTmVeOqANngD+OXSuJs01kOBS dZAPzahSNZz3F7zcuolYDxxOE3J8DwQ= =dQ5e -----END PGP SIGNATURE----- Merge tag 'ath-current-20260302' of git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath Jeff Johnson says: ================== ath.git update for v7.0-rc3 Fix issues with ath12k station statistics requests. ================== Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
commit
9003a0e3b6
2 changed files with 16 additions and 26 deletions
|
|
@ -5430,7 +5430,7 @@ int ath12k_mac_op_get_txpower(struct ieee80211_hw *hw,
|
|||
ar->last_tx_power_update))
|
||||
goto send_tx_power;
|
||||
|
||||
params.pdev_id = ar->pdev->pdev_id;
|
||||
params.pdev_id = ath12k_mac_get_target_pdev_id(ar);
|
||||
params.vdev_id = arvif->vdev_id;
|
||||
params.stats_id = WMI_REQUEST_PDEV_STAT;
|
||||
ret = ath12k_mac_get_fw_stats(ar, ¶ms);
|
||||
|
|
@ -13452,7 +13452,7 @@ void ath12k_mac_op_sta_statistics(struct ieee80211_hw *hw,
|
|||
/* TODO: Use real NF instead of default one. */
|
||||
signal = rate_info.rssi_comb;
|
||||
|
||||
params.pdev_id = ar->pdev->pdev_id;
|
||||
params.pdev_id = ath12k_mac_get_target_pdev_id(ar);
|
||||
params.vdev_id = 0;
|
||||
params.stats_id = WMI_REQUEST_VDEV_STAT;
|
||||
|
||||
|
|
@ -13580,7 +13580,7 @@ void ath12k_mac_op_link_sta_statistics(struct ieee80211_hw *hw,
|
|||
spin_unlock_bh(&ar->ab->dp->dp_lock);
|
||||
|
||||
if (!signal && ahsta->ahvif->vdev_type == WMI_VDEV_TYPE_STA) {
|
||||
params.pdev_id = ar->pdev->pdev_id;
|
||||
params.pdev_id = ath12k_mac_get_target_pdev_id(ar);
|
||||
params.vdev_id = 0;
|
||||
params.stats_id = WMI_REQUEST_VDEV_STAT;
|
||||
|
||||
|
|
|
|||
|
|
@ -8241,8 +8241,6 @@ static int ath12k_wmi_tlv_fw_stats_data_parse(struct ath12k_base *ab,
|
|||
struct ath12k_fw_stats *stats = parse->stats;
|
||||
struct ath12k *ar;
|
||||
struct ath12k_link_vif *arvif;
|
||||
struct ieee80211_sta *sta;
|
||||
struct ath12k_sta *ahsta;
|
||||
struct ath12k_link_sta *arsta;
|
||||
int i, ret = 0;
|
||||
const void *data = ptr;
|
||||
|
|
@ -8278,21 +8276,19 @@ static int ath12k_wmi_tlv_fw_stats_data_parse(struct ath12k_base *ab,
|
|||
|
||||
arvif = ath12k_mac_get_arvif(ar, le32_to_cpu(src->vdev_id));
|
||||
if (arvif) {
|
||||
sta = ieee80211_find_sta_by_ifaddr(ath12k_ar_to_hw(ar),
|
||||
arvif->bssid,
|
||||
NULL);
|
||||
if (sta) {
|
||||
ahsta = ath12k_sta_to_ahsta(sta);
|
||||
arsta = &ahsta->deflink;
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
arsta = ath12k_link_sta_find_by_addr(ab, arvif->bssid);
|
||||
if (arsta) {
|
||||
arsta->rssi_beacon = le32_to_cpu(src->beacon_snr);
|
||||
ath12k_dbg(ab, ATH12K_DBG_WMI,
|
||||
"wmi stats vdev id %d snr %d\n",
|
||||
src->vdev_id, src->beacon_snr);
|
||||
} else {
|
||||
ath12k_dbg(ab, ATH12K_DBG_WMI,
|
||||
"not found station bssid %pM for vdev stat\n",
|
||||
arvif->bssid);
|
||||
ath12k_warn(ab,
|
||||
"not found link sta with bssid %pM for vdev stat\n",
|
||||
arvif->bssid);
|
||||
}
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
}
|
||||
|
||||
data += sizeof(*src);
|
||||
|
|
@ -8363,8 +8359,6 @@ static int ath12k_wmi_tlv_rssi_chain_parse(struct ath12k_base *ab,
|
|||
struct ath12k_fw_stats *stats = parse->stats;
|
||||
struct ath12k_link_vif *arvif;
|
||||
struct ath12k_link_sta *arsta;
|
||||
struct ieee80211_sta *sta;
|
||||
struct ath12k_sta *ahsta;
|
||||
struct ath12k *ar;
|
||||
int vdev_id;
|
||||
int j;
|
||||
|
|
@ -8400,19 +8394,15 @@ static int ath12k_wmi_tlv_rssi_chain_parse(struct ath12k_base *ab,
|
|||
"stats bssid %pM vif %p\n",
|
||||
arvif->bssid, arvif->ahvif->vif);
|
||||
|
||||
sta = ieee80211_find_sta_by_ifaddr(ath12k_ar_to_hw(ar),
|
||||
arvif->bssid,
|
||||
NULL);
|
||||
if (!sta) {
|
||||
ath12k_dbg(ab, ATH12K_DBG_WMI,
|
||||
"not found station of bssid %pM for rssi chain\n",
|
||||
arvif->bssid);
|
||||
guard(spinlock_bh)(&ab->base_lock);
|
||||
arsta = ath12k_link_sta_find_by_addr(ab, arvif->bssid);
|
||||
if (!arsta) {
|
||||
ath12k_warn(ab,
|
||||
"not found link sta with bssid %pM for rssi chain\n",
|
||||
arvif->bssid);
|
||||
return -EPROTO;
|
||||
}
|
||||
|
||||
ahsta = ath12k_sta_to_ahsta(sta);
|
||||
arsta = &ahsta->deflink;
|
||||
|
||||
BUILD_BUG_ON(ARRAY_SIZE(arsta->chain_signal) >
|
||||
ARRAY_SIZE(stats_rssi->rssi_avg_beacon));
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue