[PATCH v2] wifi: ath12k: report station mode per-chain signal strength

Lingbo Kong quic_lingbok at quicinc.com
Wed Feb 26 03:34:03 PST 2025



On 2025/2/10 13:40, Lingbo Kong wrote:
> Currently, command “iw wlan0 station dump” does not show per-chain signal
> strength.
> 
> This is because ath12k does not handle the num_per_chain_rssi and
> rssi_avg_beacon reported by firmware to ath12k.
> 
> To address this, update ath12k to send WMI_REQUEST_STATS_CMDID with the
> flag WMI_REQUEST_RSSI_PER_CHAIN_STAT to the firmware. Then, add logic to
> handle num_per_chain_rssi and rssi_avg_beacon in the
> ath12k_wmi_tlv_fw_stats_parse(), and assign the resulting per-chain signal
> strength to the chain_signal of struct station_info.
> 
> After that, "iw dev xxx station dump" shows the correct per-chain signal
> strength.
> Such as:
> 
> Station AA:BB:CC:DD:EE:FF (on wlan0)
>          inactive time:  212 ms
>          rx bytes:       10398
>          rx packets:     64
>          tx bytes:       4362
>          tx packets:     33
>          tx retries:     49
>          tx failed:      0
>          beacon loss:    0
>          beacon rx:      14
>          rx drop misc:   16
>          signal:         -45 [-51, -46] dBm
>          beacon signal avg:      -44 dBm
> 
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4
> 
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219751
> Signed-off-by: Lingbo Kong <quic_lingbok at quicinc.com>
> ---
> v2:
> 1.add break to avoid warning
> 
>   drivers/net/wireless/ath/ath12k/core.h |  5 ++
>   drivers/net/wireless/ath/ath12k/mac.c  | 39 ++++++++++--
>   drivers/net/wireless/ath/ath12k/mac.h  |  2 +
>   drivers/net/wireless/ath/ath12k/wmi.c  | 82 ++++++++++++++++++++++++++
>   drivers/net/wireless/ath/ath12k/wmi.h  | 18 +++++-
>   5 files changed, 139 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath12k/core.h b/drivers/net/wireless/ath/ath12k/core.h
> index 57e71ccbbb67..967e3cad3bca 100644
> --- a/drivers/net/wireless/ath/ath12k/core.h
> +++ b/drivers/net/wireless/ath/ath12k/core.h
> @@ -508,6 +508,7 @@ struct ath12k_link_sta {
>   	u32 bw_prev;


hi jeff,
do you have any updates on this patch?🙂

/lingbo



More information about the ath12k mailing list