lkml.org 
[lkml]   [2020]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.9 09/30] ath10k: fix VHT NSS calculation when STBC is enabled
    Date
    From: Sathishkumar Muruganandam <murugana@codeaurora.org>

    [ Upstream commit 99f41b8e43b8b4b31262adb8ac3e69088fff1289 ]

    When STBC is enabled, NSTS_SU value need to be accounted for VHT NSS
    calculation for SU case.

    Without this fix, 1SS + STBC enabled case was reported wrongly as 2SS
    in radiotap header on monitor mode capture.

    Tested-on: QCA9984 10.4-3.10-00047

    Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/1597392971-3897-1-git-send-email-murugana@codeaurora.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/ath/ath10k/htt_rx.c | 8 +++++++-
    1 file changed, 7 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
    index a3c2180475971..0af144930a2f7 100644
    --- a/drivers/net/wireless/ath/ath10k/htt_rx.c
    +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
    @@ -612,6 +612,7 @@ static void ath10k_htt_rx_h_rates(struct ath10k *ar,
    u8 preamble = 0;
    u8 group_id;
    u32 info1, info2, info3;
    + u32 stbc, nsts_su;

    info1 = __le32_to_cpu(rxd->ppdu_start.info1);
    info2 = __le32_to_cpu(rxd->ppdu_start.info2);
    @@ -655,11 +656,16 @@ static void ath10k_htt_rx_h_rates(struct ath10k *ar,
    TODO check this */
    bw = info2 & 3;
    sgi = info3 & 1;
    + stbc = (info2 >> 3) & 1;
    group_id = (info2 >> 4) & 0x3F;

    if (GROUP_ID_IS_SU_MIMO(group_id)) {
    mcs = (info3 >> 4) & 0x0F;
    - nss = ((info2 >> 10) & 0x07) + 1;
    + nsts_su = ((info2 >> 10) & 0x07);
    + if (stbc)
    + nss = (nsts_su >> 2) + 1;
    + else
    + nss = (nsts_su + 1);
    } else {
    /* Hardware doesn't decode VHT-SIG-B into Rx descriptor
    * so it's impossible to decode MCS. Also since
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-10-27 01:17    [W:4.250 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site