lkml.org 
[lkml]   [2022]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 6.0 289/862] wifi: mt76: mt7915: fix mcs value in ht mode
    Date
    From: Howard Hsu <howard-yh.hsu@mediatek.com>

    [ Upstream commit c6d3e16ad4362502e804a6ca01e955612f3b8222 ]

    Fix the error that mcs will be reduced to a range of 0 to 7 in ht mode.

    Fixes: 70fd1333cd32 ("mt76: mt7915: rework .set_bitrate_mask() to support more options")
    Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 10 ++++++----
    1 file changed, 6 insertions(+), 4 deletions(-)

    diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
    index f83067961945..e99fdacc11ce 100644
    --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
    +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
    @@ -1360,7 +1360,7 @@ mt7915_mcu_add_rate_ctrl_fixed(struct mt7915_dev *dev,
    struct sta_phy phy = {};
    int ret, nrates = 0;

    -#define __sta_phy_bitrate_mask_check(_mcs, _gi, _he) \
    +#define __sta_phy_bitrate_mask_check(_mcs, _gi, _ht, _he) \
    do { \
    u8 i, gi = mask->control[band]._gi; \
    gi = (_he) ? gi : gi == NL80211_TXRATE_FORCE_SGI; \
    @@ -1373,15 +1373,17 @@ mt7915_mcu_add_rate_ctrl_fixed(struct mt7915_dev *dev,
    continue; \
    nrates += hweight16(mask->control[band]._mcs[i]); \
    phy.mcs = ffs(mask->control[band]._mcs[i]) - 1; \
    + if (_ht) \
    + phy.mcs += 8 * i; \
    } \
    } while (0)

    if (sta->deflink.he_cap.has_he) {
    - __sta_phy_bitrate_mask_check(he_mcs, he_gi, 1);
    + __sta_phy_bitrate_mask_check(he_mcs, he_gi, 0, 1);
    } else if (sta->deflink.vht_cap.vht_supported) {
    - __sta_phy_bitrate_mask_check(vht_mcs, gi, 0);
    + __sta_phy_bitrate_mask_check(vht_mcs, gi, 0, 0);
    } else if (sta->deflink.ht_cap.ht_supported) {
    - __sta_phy_bitrate_mask_check(ht_mcs, gi, 0);
    + __sta_phy_bitrate_mask_check(ht_mcs, gi, 1, 0);
    } else {
    nrates = hweight32(mask->control[band].legacy);
    phy.mcs = ffs(mask->control[band].legacy) - 1;
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-10-19 12:41    [W:2.897 / U:0.300 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site