aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorPo-Hao Huang <phhuang@realtek.com>2024-01-19 16:14:57 +0800
committerKalle Valo <kvalo@kernel.org>2024-01-23 13:38:15 +0200
commitdab2b8c41db2e1756ec9d52d211beb58a00e1400 (patch)
treebacc9d6756ec16ecd8c8f712b78e40a7b168f2c9
parentwifi: rtw89: Set default CQM config if not present (diff)
downloadwireguard-linux-dab2b8c41db2e1756ec9d52d211beb58a00e1400.tar.xz
wireguard-linux-dab2b8c41db2e1756ec9d52d211beb58a00e1400.zip
wifi: rtw89: disable RTS when broadcast/multicast
RTS switch should not be enabled for broadcast and multicast. This could cause incorrect behavior during AP mode, so we fix it. Signed-off-by: Po-Hao Huang <phhuang@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://msgid.link/20240119081501.25223-5-pkshih@realtek.com
-rw-r--r--drivers/net/wireless/realtek/rtw89/core.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
index 29df1ea0c826..260da86bf04a 100644
--- a/drivers/net/wireless/realtek/rtw89/core.c
+++ b/drivers/net/wireless/realtek/rtw89/core.c
@@ -1176,7 +1176,8 @@ static __le32 rtw89_build_txwd_info2_v1(struct rtw89_tx_desc_info *desc_info)
static __le32 rtw89_build_txwd_info4(struct rtw89_tx_desc_info *desc_info)
{
- u32 dword = FIELD_PREP(RTW89_TXWD_INFO4_RTS_EN, 1) |
+ bool rts_en = !desc_info->is_bmc;
+ u32 dword = FIELD_PREP(RTW89_TXWD_INFO4_RTS_EN, rts_en) |
FIELD_PREP(RTW89_TXWD_INFO4_HW_RTS_EN, 1);
return cpu_to_le32(dword);
@@ -1329,7 +1330,8 @@ static __le32 rtw89_build_txwd_info2_v2(struct rtw89_tx_desc_info *desc_info)
static __le32 rtw89_build_txwd_info4_v2(struct rtw89_tx_desc_info *desc_info)
{
- u32 dword = FIELD_PREP(BE_TXD_INFO4_RTS_EN, 1) |
+ bool rts_en = !desc_info->is_bmc;
+ u32 dword = FIELD_PREP(BE_TXD_INFO4_RTS_EN, rts_en) |
FIELD_PREP(BE_TXD_INFO4_HW_RTS_EN, 1);
return cpu_to_le32(dword);