[PATCH v2] ath10k: Fix 10.4 extended peer stats update

Valo, Kalle kvalo at qca.qualcomm.com
Tue May 31 11:57:52 PDT 2016


Mohammed Shafi Shajakhan <mohammed at codeaurora.org> writes:

>> > +void ath10k_sta_update_rx_duration(struct ath10k *ar,
>> > +				   struct ath10k_fw_stats *stats)
>> > +{
>> > +	struct ath10k_fw_file *fw_file = &ar->normal_mode_fw.fw_file;
>> > +
>> > +	if (fw_file->wmi_op_version < ATH10K_FW_WMI_OP_VERSION_10_4)
>> > +		ath10k_sta_update_stats_rx_duration(ar, &stats->peers);
>> > +	else
>> > +		ath10k_sta_update_extd_stats_rx_duration(ar,
>> > +							 &stats->peers_extd);
>> > +}
>> 
>> _Ideally_ wmi_op_version should be used only in ath10k_wmi_attach() and
>> nowhere else. Isn't there any other way to detect this scenario? For
>> example, what if you store stats_id to struct ath10k_fw_stats and do
>> something like this:
>> 
>> if (stats->stats_id & WMI_10_4_STAT_PEER_EXTD)
>> 	ath10k_sta_update_extd_stats_rx_duration(ar,
>> 						 &stats->peers_extd);
>> else
>> 	ath10k_sta_update_stats_rx_duration(ar, &stats->peers);
>> 
>> Would that work?
>
> [shafi] I am also thinking to re-use (ar->fw_stats_req_mask & WMI_10_4_STAT_PEER_EXTD)
> it might work, but will it conflict vdev stats WMI_STAT_VDEV (though its not currently
> supported for 10.2 )

Can you describe more how they conflict?

> let me know your thoughts about this, seems extended stats was
> implemented for 10.4 wmi version so i made it explicit

I don't like hard coding features like this based on wmi_op_version as
that might create problems managing the firmware interfaces in the
future. The simplest is if we can automatically runtime detect if
firmware uses the extended version or not.

-- 
Kalle Valo


More information about the ath10k mailing list