[PATCHv4] ath10k : Fix channel survey dump
diff mbox series

Message ID 1588820612-15884-1-git-send-email-vnaralas@codeaurora.org
State New
Headers show
Series
  • [PATCHv4] ath10k : Fix channel survey dump
Related show

Commit Message

Venkateswara Naralasetty May 7, 2020, 3:03 a.m. UTC
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' which accumulate survey data in
FW and send survey data to driver upon the driver request. Wrap around
is taken care by FW.

hardware used : QCA9984
firmware ver  : ver 10.4-3.5.3-00057

hardware used : QCA988X
firmware ver  : 10.2.4-1.0-00047

Tested-by: Markus Theil <markus.theil@tu-ilmenau.de>
Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org>
---
v4:
 * updated signed-off-by

v3:
 * Rebased on TOT and added Tested-by

 drivers/net/wireless/ath/ath10k/mac.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

John Deere May 17, 2020, 2:25 a.m. UTC | #1
On 5/7/20 11:03 AM, Venkateswara 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' which accumulate survey data in
> FW and send survey data to driver upon the driver request. Wrap around
> is taken care by FW.
> 
> hardware used : QCA9984
> firmware ver  : ver 10.4-3.5.3-00057
> 
> hardware used : QCA988X
> firmware ver  : 10.2.4-1.0-00047
> 
> Tested-by: Markus Theil <markus.theil@tu-ilmenau.de>
> Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org>
> ---
> v4:
>   * updated signed-off-by
> 
> v3:
>   * Rebased on TOT and added Tested-by
> 
>   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 a1147cc..9330b52 100644
> --- a/drivers/net/wireless/ath/ath10k/mac.c
> +++ b/drivers/net/wireless/ath/ath10k/mac.c
> @@ -7275,7 +7275,7 @@ ath10k_mac_update_bss_chan_survey(struct ath10k *ar,
>   				  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;
>   
>   	lockdep_assert_held(&ar->conf_mutex);
>   
> 


I have tested this on a QCA9980 device on a TP-Link Archer A7v5 with the 
firmware version 10.2.4.70.70.

[root@Archer-A7v5 ~]# uptime
  10:18:40 up 7 days,  3:52,  load average: 0.03, 0.01, 0.00


It has been working fine:

Survey data from wlan0
	frequency:			5240 MHz [in use]
	noise:				-101 dBm
	channel active time:		593724580 ms
	channel busy time:		9706985 ms
	channel receive time:		2053580 ms
	channel transmit time:		6473058 ms

Tested-by: John Deere <24601deerej@gmail.com>
John Deere May 17, 2020, 2:26 a.m. UTC | #2
On 5/7/20 11:03 AM, Venkateswara 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' which accumulate survey data in
> FW and send survey data to driver upon the driver request. Wrap around
> is taken care by FW.
> 
> hardware used : QCA9984
> firmware ver  : ver 10.4-3.5.3-00057
> 
> hardware used : QCA988X
> firmware ver  : 10.2.4-1.0-00047
> 
> Tested-by: Markus Theil <markus.theil@tu-ilmenau.de>
> Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org>
> ---
> v4:
>   * updated signed-off-by
> 
> v3:
>   * Rebased on TOT and added Tested-by
> 
>   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 a1147cc..9330b52 100644
> --- a/drivers/net/wireless/ath/ath10k/mac.c
> +++ b/drivers/net/wireless/ath/ath10k/mac.c
> @@ -7275,7 +7275,7 @@ ath10k_mac_update_bss_chan_survey(struct ath10k *ar,
>   				  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;
>   
>   	lockdep_assert_held(&ar->conf_mutex);
>   
> 


I have tested this on a QCA9980 device on a TP-Link Archer A7v5 with the 
firmware version 10.2.4.70.70.

[root@Archer-A7v5 ~]# uptime
  10:18:40 up 7 days,  3:52,  load average: 0.03, 0.01, 0.00


It has been working fine:

Survey data from wlan0
	frequency:			5240 MHz [in use]
	noise:				-101 dBm
	channel active time:		593724580 ms
	channel busy time:		9706985 ms
	channel receive time:		2053580 ms
	channel transmit time:		6473058 ms

Tested-by: John Deere <24601deerej@gmail.com>
Markus Theil May 20, 2020, 6:48 a.m. UTC | #3
I've seen this patch got dropped again from the ath.git pending branch.
On which hw/firmware combination did it fail to operate?

On 5/17/20 4:26 AM, John Deere wrote:
>
> On 5/7/20 11:03 AM, Venkateswara 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' which accumulate survey data in
>> FW and send survey data to driver upon the driver request. Wrap around
>> is taken care by FW.
>>
>> hardware used : QCA9984
>> firmware ver  : ver 10.4-3.5.3-00057
>>
>> hardware used : QCA988X
>> firmware ver  : 10.2.4-1.0-00047
>>
>> Tested-by: Markus Theil <markus.theil@tu-ilmenau.de>
>> Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org>
>> ---
>> v4:
>>   * updated signed-off-by
>>
>> v3:
>>   * Rebased on TOT and added Tested-by
>>
>>   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 a1147cc..9330b52 100644
>> --- a/drivers/net/wireless/ath/ath10k/mac.c
>> +++ b/drivers/net/wireless/ath/ath10k/mac.c
>> @@ -7275,7 +7275,7 @@ ath10k_mac_update_bss_chan_survey(struct ath10k
>> *ar,
>>                     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;
>>         lockdep_assert_held(&ar->conf_mutex);
>>  
>
>
> I have tested this on a QCA9980 device on a TP-Link Archer A7v5 with
> the firmware version 10.2.4.70.70.
>
> [root@Archer-A7v5 ~]# uptime
>  10:18:40 up 7 days,  3:52,  load average: 0.03, 0.01, 0.00
>
>
> It has been working fine:
>
> Survey data from wlan0
>     frequency:            5240 MHz [in use]
>     noise:                -101 dBm
>     channel active time:        593724580 ms
>     channel busy time:        9706985 ms
>     channel receive time:        2053580 ms
>     channel transmit time:        6473058 ms
>
> Tested-by: John Deere <24601deerej@gmail.com>
>
> _______________________________________________
> ath10k mailing list
> ath10k@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/ath10k
Kalle Valo May 20, 2020, 1:56 p.m. UTC | #4
Markus Theil <markus.theil@tu-ilmenau.de> writes:

> I've seen this patch got dropped again from the ath.git pending branch.
> On which hw/firmware combination did it fail to operate?

It's deferred at the moment:

https://patchwork.kernel.org/patch/11532357/

The conclusion from the other thread was not clear for me, so I put it
into deferred and will take a closer look once I have time.

Patch
diff mbox series

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index a1147cc..9330b52 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -7275,7 +7275,7 @@  ath10k_mac_update_bss_chan_survey(struct ath10k *ar,
 				  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;
 
 	lockdep_assert_held(&ar->conf_mutex);