From 48fb0116f0a967dbd11fe6deba7ade45c6a9b892 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 30 Dec 2018 17:08:37 +0100 Subject: [PATCH] mt7603: fix CF-End transmit rate when 11b stations are connected Use a CCK rate in that case Signed-off-by: Felix Fietkau --- mt7603/main.c | 10 ++++++++++ mt7603/mt7603.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/mt7603/main.c b/mt7603/main.c index 10c45503..43891912 100644 --- a/mt7603/main.c +++ b/mt7603/main.c @@ -318,8 +318,18 @@ mt7603_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, } if (changed & BSS_CHANGED_ERP_SLOT) { + u32 val; + dev->slottime = info->use_short_slot ? 9 : 20; mt7603_mac_set_timing(dev); + + if (info->use_short_slot) + val = MT7603_CFEND_RATE_DEFAULT; + else + val = MT7603_CFEND_RATE_11B; + + mt76_rmw_field(dev, MT_AGG_CONTROL, MT_AGG_CONTROL_CFEND_RATE, + val); } if (changed & (BSS_CHANGED_BEACON_ENABLED | BSS_CHANGED_BEACON_INT)) { diff --git a/mt7603/mt7603.h b/mt7603/mt7603.h index d19d6783..0e68d7f2 100644 --- a/mt7603/mt7603.h +++ b/mt7603/mt7603.h @@ -48,6 +48,9 @@ #define MT7603_EDCCA_BLOCK_TH 10 +#define MT7603_CFEND_RATE_DEFAULT 0x69 /* chip default (24M) */ +#define MT7603_CFEND_RATE_11B 0x03 /* 11B LP, 11M */ + struct mt7603_vif; struct mt7603_sta;