lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 183/757] ath10k: provide survey info as accumulated data
    Date
    From: Venkateswara Naralasetty <vnaralas@codeaurora.org>

    [ Upstream commit 720e5c03e5cb26d33d97f55192b791bb48478aa5 ]

    It is expected that the returned counters by .get_survey are monotonic
    increasing. But the data from ath10k gets reset to zero regularly. Channel
    active/busy time are then showing incorrect values (less than previous or
    sometimes zero) for the currently active channel during successive survey
    dump commands.

    example:

    $ iw dev wlan0 survey dump
    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
    ...

    $ iw dev wlan0 survey dump
    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
    ...

    The correct way to handle this is to use the non-clearing
    WMI_BSS_SURVEY_REQ_TYPE_READ wmi_bss_survey_req_type. The firmware will
    then accumulate the survey data and handle wrap arounds.

    Tested-on: QCA9984 hw1.0 10.4-3.5.3-00057
    Tested-on: QCA988X hw2.0 10.2.4-1.0-00047
    Tested-on: QCA9888 hw2.0 10.4-3.9.0.2-00024
    Tested-on: QCA4019 hw1.0 10.4-3.6-00140

    Fixes: fa7937e3d5c2 ("ath10k: update bss channel survey information")
    Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org>
    Tested-by: Markus Theil <markus.theil@tu-ilmenau.de>
    Tested-by: John Deere <24601deerej@gmail.com>
    [sven@narfation.org: adjust commit message]
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/1592232686-28712-1-git-send-email-kvalo@codeaurora.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    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 3c0c33a9f30cb..2177e9d92bdff 100644
    --- a/drivers/net/wireless/ath/ath10k/mac.c
    +++ b/drivers/net/wireless/ath/ath10k/mac.c
    @@ -7278,7 +7278,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);

    --
    2.25.1


    \
     
     \ /
      Last update: 2020-10-27 17:11    [W:2.125 / U:0.420 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site