Sven Eckelmann <sven@xxxxxxxxxxxxx> writes: > From: Sven Eckelmann <seckelmann@xxxxxxxxx> > > The survey counters from firmwares like 10.2.4 are not actually using the > full 64 bit. Instead, they only use the lower 31 bit and overflow ever > 14-30s. The driver must frequently fetch the survey data and add it to the > survey data storage to avoid this problem and to present meaningful values > to the caller of .get_survey. > > It is assumed for now that only the current rx_channel retrieves relevant > updates for the survey data. This should avoid that the bss channel survey > request times out too often. Please clarify in the commit log on which hardware this workaround is enabled. It should be all hardware with ATH10K_HW_CC_WRAP_SHIFTED_ALL enabled so both QCA988X versions and QCA9887, right? > Tested on QCA988x hw2.0 10.2.4-1.0-00043 > > Signed-off-by: Sven Eckelmann <seckelmann@xxxxxxxxx> [...] > --- a/drivers/net/wireless/ath/ath10k/mac.h > +++ b/drivers/net/wireless/ath/ath10k/mac.h > @@ -40,6 +40,9 @@ void ath10k_offchan_tx_purge(struct ath10k *ar); > void ath10k_offchan_tx_work(struct work_struct *work); > void ath10k_mgmt_over_wmi_tx_purge(struct ath10k *ar); > void ath10k_mgmt_over_wmi_tx_work(struct work_struct *work); > +void ath10k_survey_dwork(struct work_struct *work); > +int ath10k_survey_start(struct ath10k *ar); > +void ath10k_survey_stop(struct ath10k *ar); Please use ath10k_mac_ prefix for all functions you are adding to mac.c. Yeah, I know not all the existing one even have that, should fix it at some point. -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches