On 2017-04-26 16:41, Venkateswara Rao Naralasetty wrote: > Channel active/busy time are showing incorrect > (less than previous or sometimes zero) for > successive survey dump command. > > example: > Survey data from wlan0 > frequency: 5180 MHz [in use] > channel active time: 54995 ms > channel busy time: 432 ms > channel receive time: 0 ms > channel transmit time: 59 ms > Survey data from wlan0 > frequency: 5180 MHz [in use] > channel active time: 32592 ms > channel busy time: 254 ms > channel receive time: 0 ms > channel transmit time: 0 ms > > This patch fix this issue by assigning 'wmi_bss_survey_req_type' > as 'WMI_BSS_SURVEY_REQ_TYPE_READ'. > > Firmware ver 10.4-3.4-00082 > Hardware QCA4019 > > Signed-off-by: Venkateswara Rao Naralasetty <c_vnaral@xxxxxxxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath10k/mac.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c > index 9977829..87a9b55 100644 > --- a/drivers/net/wireless/ath/ath10k/mac.c > +++ b/drivers/net/wireless/ath/ath10k/mac.c > @@ -6621,7 +6621,7 @@ static void ath10k_reconfig_complete(struct ieee80211_hw *hw, > struct ieee80211_channel *channel) > { > int ret; > - enum wmi_bss_survey_req_type type = WMI_BSS_SURVEY_REQ_TYPE_READ_CLEAR; > + enum wmi_bss_survey_req_type type = WMI_BSS_SURVEY_REQ_TYPE_READ; Does the firmware read the registers directly, or does it accumulate the results in a way that can't overflow? If you don't clear the counters on reset, the overflow will be problematic for the current-channel stats. I think a better approach would be to use READ_CLEAR for in-use channels and store the sum inside the driver. - Felix