2022-09-22 01:38:17

by Ping-Ke Shih

[permalink] [raw]
Subject: [PATCH] wifi: rtw89: support for enable/disable MSDU aggregation

From: Kuan-Chung Chen <[email protected]>

To enable/disable amsdu in set_tid_config, and currently only support to
configure all tids (==0xff) for AMSDU, not individual tid.

The command example is:
iw wlan0 set tidconf tids 0xff amsdu off
iw wlan0 set tidconf peer xx:xx:xx:xx:xx:xx tids 0xff amsdu on

Signed-off-by: Kuan-Chung Chen <[email protected]>
Signed-off-by: Ping-Ke Shih <[email protected]>
---
drivers/net/wireless/realtek/rtw89/core.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
index 8d2cce450241f..2de9cc9f06201 100644
--- a/drivers/net/wireless/realtek/rtw89/core.c
+++ b/drivers/net/wireless/realtek/rtw89/core.c
@@ -2583,6 +2583,13 @@ static void _rtw89_core_set_tid_config(struct rtw89_dev *rtwdev,
spin_unlock_bh(&rtwdev->ba_lock);
}
}
+
+ if (mask & BIT(NL80211_TID_CONFIG_ATTR_AMSDU_CTRL) && tids == 0xff) {
+ if (tid_conf->amsdu == NL80211_TID_CONFIG_ENABLE)
+ sta->max_amsdu_subframes = 0;
+ else
+ sta->max_amsdu_subframes = 1;
+ }
}
}

@@ -3237,6 +3244,8 @@ static int rtw89_core_register_hw(struct rtw89_dev *rtwdev)

hw->wiphy->tid_config_support.vif |= BIT(NL80211_TID_CONFIG_ATTR_AMPDU_CTRL);
hw->wiphy->tid_config_support.peer |= BIT(NL80211_TID_CONFIG_ATTR_AMPDU_CTRL);
+ hw->wiphy->tid_config_support.vif |= BIT(NL80211_TID_CONFIG_ATTR_AMSDU_CTRL);
+ hw->wiphy->tid_config_support.peer |= BIT(NL80211_TID_CONFIG_ATTR_AMSDU_CTRL);

wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CAN_REPLACE_PTK0);

--
2.25.1


2022-09-24 12:41:55

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] wifi: rtw89: support for enable/disable MSDU aggregation

Ping-Ke Shih <[email protected]> wrote:

> From: Kuan-Chung Chen <[email protected]>
>
> To enable/disable amsdu in set_tid_config, and currently only support to
> configure all tids (==0xff) for AMSDU, not individual tid.
>
> The command example is:
> iw wlan0 set tidconf tids 0xff amsdu off
> iw wlan0 set tidconf peer xx:xx:xx:xx:xx:xx tids 0xff amsdu on
>
> Signed-off-by: Kuan-Chung Chen <[email protected]>
> Signed-off-by: Ping-Ke Shih <[email protected]>

Patch applied to wireless-next.git, thanks.

f3d8232331a3 wifi: rtw89: support for enable/disable MSDU aggregation

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches