diff mbox series

[PATCHv2] ath10k : Fix channel survey dump

Message ID 1533039077-1532-1-git-send-email-vnaralas@codeaurora.org (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show
Series [PATCHv2] ath10k : Fix channel survey dump | expand

Commit Message

Venkateswara Naralasetty July 31, 2018, 12:11 p.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

Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org>
---
v2:
 * updated commit log.

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

Comments

Ben Greear July 31, 2018, 5:37 p.m. UTC | #1
On 07/31/2018 05:11 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

Have you tested this on other firmwares?  I am pretty sure that at least
some of them, probably 10.2, will have issues.

Maybe you could make this change specific to certain firmware that
is known to work with the change?

Thanks,
Ben

>
> Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org>
> ---
> v2:
>  * updated commit log.
>
>  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 f068e2b..db93ab1 100644
> --- a/drivers/net/wireless/ath/ath10k/mac.c
> +++ b/drivers/net/wireless/ath/ath10k/mac.c
> @@ -6837,7 +6837,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);
>
>
Jasmine Strong July 31, 2018, 6:33 p.m. UTC | #2
On Tue, Jul 31, 2018 at 10:38 AM Ben Greear <greearb@candelatech.com> wrote:

> On 07/31/2018 05:11 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
>
> Have you tested this on other firmwares?  I am pretty sure that at least
> some of them, probably 10.2, will have issues.
>
> Maybe you could make this change specific to certain firmware that
> is known to work with the change?
>
>
There are bigger problems with it than that;  even with firmwares that
behave correctly,
this changes the behavior that a lot of upper-layer software depends upon,
and will likely
make anything that actually uses the channel survey data misbehave.

It is therefore a breaking change for any device that actually implements
ACS.

-J.
<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Jul 31, 2018 at 10:38 AM Ben Greear &lt;<a href="mailto:greearb@candelatech.com">greearb@candelatech.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 07/31/2018 05:11 AM, Venkateswara Naralasetty wrote:<br>
&gt; Channel active/busy time are showing incorrect(less than previous or<br>
&gt; sometimes zero) for successive survey dump command.<br>
&gt;<br>
&gt; example:<br>
&gt; Survey data from wlan0<br>
&gt;       frequency:                      5180 MHz [in use]<br>
&gt;       channel active time:            54995 ms<br>
&gt;       channel busy time:              432 ms<br>
&gt;       channel receive time:           0 ms<br>
&gt;       channel transmit time:          59 ms<br>
&gt; Survey data from wlan0<br>
&gt;       frequency:                      5180 MHz [in use]<br>
&gt;       channel active time:            32592 ms<br>
&gt;       channel busy time:              254 ms<br>
&gt;       channel receive time:           0 ms<br>
&gt;       channel transmit time:          0 ms<br>
&gt;<br>
&gt; This patch fix this issue by assigning &#39;wmi_bss_survey_req_type&#39;<br>
&gt; as &#39;WMI_BSS_SURVEY_REQ_TYPE_READ&#39; which accumulate survey data in<br>
&gt; FW and send survey data to driver upon the driver request. Wrap around<br>
&gt; is taken care by FW.<br>
&gt;<br>
&gt; hardware used : QCA9984<br>
&gt; firmware ver  : ver 10.4-3.5.3-00057<br>
<br>
Have you tested this on other firmwares?  I am pretty sure that at least<br>
some of them, probably 10.2, will have issues.<br>
<br>
Maybe you could make this change specific to certain firmware that<br>
is known to work with the change?<br><br></blockquote><div><br></div><div>There are bigger problems with it than that;  even with firmwares that behave correctly,</div><div>this changes the behavior that a lot of upper-layer software depends upon, and will likely</div><div>make anything that actually uses the channel survey data misbehave.</div><div><br></div><div>It is therefore a breaking change for any device that actually implements ACS.</div><div><br></div><div>-J. </div></div></div>
Venkateswara Naralasetty Aug. 1, 2018, 8:47 a.m. UTC | #3
> -----Original Message-----
> From: ath10k <ath10k-bounces@lists.infradead.org> On Behalf Of Ben
> Greear
> Sent: Tuesday, July 31, 2018 11:08 PM
> To: Venkateswara Naralasetty <vnaralas@codeaurora.org>;
> ath10k@lists.infradead.org
> Cc: linux-wireless@vger.kernel.org
> Subject: Re: [PATCHv2] ath10k : Fix channel survey dump
> 
> On 07/31/2018 05:11 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
> 
> Have you tested this on other firmwares?  I am pretty sure that at least some
> of them, probably 10.2, will have issues.
> 
I have tested this change with firmware version 10.2.4-1.0-00036 (hw used QCA988x) as well it's working fine for me without any issues.
 
> Maybe you could make this change specific to certain firmware that is known
> to work with the change?
> 
> Thanks,
> Ben
> 
> >
> > Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org>
> > ---
> > v2:
> >  * updated commit log.
> >
> >  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 f068e2b..db93ab1 100644
> > --- a/drivers/net/wireless/ath/ath10k/mac.c
> > +++ b/drivers/net/wireless/ath/ath10k/mac.c
> > @@ -6837,7 +6837,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);
> >
> >
> 
> 
> --
> Ben Greear <greearb@candelatech.com>
> Candela Technologies Inc  http://www.candelatech.com
> 
> 
> _______________________________________________
> ath10k mailing list
> ath10k@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/ath10k
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index f068e2b..db93ab1 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -6837,7 +6837,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);