Jeff Johnson <quic_jjohnson@xxxxxxxxxxx> writes: > On 11/14/2024 10:28 PM, Roopni Devanathan wrote: > >> From: Dinesh Karthikeyan <quic_dinek@xxxxxxxxxxx> >> >> Add support to request counters and Transmission Power Control >> (TPC) stats through HTT stats type 37. These stats give >> information about counters like received packet count, CRC pass >> count, error count, transmit abort count, etc., about counter reset >> like reset cause, channel frequency, number and mode, channel flags, >> etc., about TPC like transmit power scale, maximum transmit power, >> gain cap, EIRP, etc. >> >> Note: MCC firmware version - >> WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 does not >> support HTT stats type 37, i.e., the firmware does not respond to the >> command requesting stats. >> >> Sample output: >> ------------- >> echo 37 > /sys/kernel/debug/ath12k/pci-0000\:06\:00.0/mac0/htt_stats_type >> cat /sys/kernel/debug/ath12k/pci-0000\:06\:00.0/mac0/htt_stats >> HTT_PHY_STATS_TLV: >> bdf_nf_chain[0] = -92 >> bdf_nf_chain[1] = -94 >> bdf_nf_chain[2] = -94 >> bdf_nf_chain[3] = -93 >> ..... >> >> HTT_PHY_COUNTERS_TLV: >> rx_ofdma_timing_err_cnt = 18068 >> rx_cck_fail_cnt = 0 >> mactx_abort_cnt = 2612 >> macrx_abort_cnt = 0 >> ..... >> >> HTT_PHY_RESET_STATS_TLV: >> pdev_id = 0 >> chan_mhz = 0 >> chan_band_center_freq1 = 0 >> chan_band_center_freq2 = 0 >> ..... >> >> HTT_PHY_RESET_COUNTERS_TLV: >> pdev_id = 0 >> cf_active_low_fail_cnt = 0 >> cf_active_low_pass_cnt = 0 >> phy_off_through_vreg_cnt = 0 >> ..... >> >> HTT_PHY_TPC_STATS_TLV: >> pdev_id = 0 >> tx_power_scale = 0 >> tx_power_scale_db = 0 >> min_negative_tx_power = 0 >> ..... >> >> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 >> >> Signed-off-by: Dinesh Karthikeyan <quic_dinek@xxxxxxxxxxx> >> Signed-off-by: Roopni Devanathan <quic_rdevanat@xxxxxxxxxxx> > Acked-by: Jeff Johnson <quic_jjohnson@xxxxxxxxxxx> > >> +struct ath12k_htt_phy_stats_tlv { >> + a_sle32 nf_chain[ATH12K_HTT_STATS_MAX_CHAINS]; >> + __le32 false_radar_cnt; >> + __le32 radar_cs_cnt; >> + a_sle32 ani_level; >> + __le32 fw_run_time; >> + a_sle32 runtime_nf_chain[ATH12K_HTT_STATS_MAX_CHAINS]; >> +} __packed; > > it just occurred to me that these structs are actually misnamed. > these represent the payload of the tlv, not the actual tlv. > Kalle, as a future cleanup I suggest that we either rename these or modify > them plus the parsing code such that the TLV header is included in the struct. Yeah, that would be good to do. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches