lkml.org 
[lkml]   [2020]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 303/312] brcmfmac: add fallback for devices that do not report per-chain values
    Date
    From: Jaap Jan Meijer <jjmeijer88@gmail.com>

    commit 94abd778a7bb00ed5d00f56d9fbfcbf5b7c02a5c upstream.

    If brcmf_cfg80211_get_station fails to determine the RSSI from the
    per-chain values get the value individually as a fallback.

    Fixes: 1f0dc59a6de9 ("brcmfmac: rework .get_station() callback")
    Signed-off-by: Jaap Jan Meijer <jjmeijer88@gmail.com>
    Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 16 ++++++++++++++++
    1 file changed, 16 insertions(+)

    --- a/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c
    +++ b/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c
    @@ -2419,12 +2419,14 @@ brcmf_cfg80211_get_station(struct wiphy
    const u8 *mac, struct station_info *sinfo)
    {
    struct brcmf_if *ifp = netdev_priv(ndev);
    + struct brcmf_scb_val_le scb_val;
    s32 err = 0;
    struct brcmf_sta_info_le sta_info_le;
    u32 sta_flags;
    u32 is_tdls_peer;
    s32 total_rssi;
    s32 count_rssi;
    + int rssi;
    u32 i;

    brcmf_dbg(TRACE, "Enter, MAC %pM\n", mac);
    @@ -2505,6 +2507,20 @@ brcmf_cfg80211_get_station(struct wiphy
    sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
    total_rssi /= count_rssi;
    sinfo->signal = total_rssi;
    + } else if (test_bit(BRCMF_VIF_STATUS_CONNECTED,
    + &ifp->vif->sme_state)) {
    + memset(&scb_val, 0, sizeof(scb_val));
    + err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_RSSI,
    + &scb_val, sizeof(scb_val));
    + if (err) {
    + brcmf_err("Could not get rssi (%d)\n", err);
    + goto done;
    + } else {
    + rssi = le32_to_cpu(scb_val.val);
    + sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
    + sinfo->signal = rssi;
    + brcmf_dbg(CONN, "RSSI %d dBm\n", rssi);
    + }
    }
    }
    done:

    \
     
     \ /
      Last update: 2020-05-08 14:49    [W:4.109 / U:0.136 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site