mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-11 17:10:13 +00:00
wifi: mac80211: add support for S1G aggregation
Allow an S1G station to use aggregation. Signed-off-by: Sophronia Koilpillai <sophronia.koilpillai@morsemicro.com> Signed-off-by: Lachlan Hodges <lachlan.hodges@morsemicro.com> Link: https://patch.msgid.link/20250617080610.756048-5-lachlan.hodges@morsemicro.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
037dc18ac3
commit
a505229624
@ -299,7 +299,8 @@ void __ieee80211_start_rx_ba_session(struct sta_info *sta,
|
|||||||
|
|
||||||
if (!sta->sta.valid_links &&
|
if (!sta->sta.valid_links &&
|
||||||
!sta->sta.deflink.ht_cap.ht_supported &&
|
!sta->sta.deflink.ht_cap.ht_supported &&
|
||||||
!sta->sta.deflink.he_cap.has_he) {
|
!sta->sta.deflink.he_cap.has_he &&
|
||||||
|
!sta->sta.deflink.s1g_cap.s1g) {
|
||||||
ht_dbg(sta->sdata,
|
ht_dbg(sta->sdata,
|
||||||
"STA %pM erroneously requests BA session on tid %d w/o HT\n",
|
"STA %pM erroneously requests BA session on tid %d w/o HT\n",
|
||||||
sta->sta.addr, tid);
|
sta->sta.addr, tid);
|
||||||
@ -327,7 +328,8 @@ void __ieee80211_start_rx_ba_session(struct sta_info *sta,
|
|||||||
/* XXX: check own ht delayed BA capability?? */
|
/* XXX: check own ht delayed BA capability?? */
|
||||||
if (((ba_policy != 1) &&
|
if (((ba_policy != 1) &&
|
||||||
(sta->sta.valid_links ||
|
(sta->sta.valid_links ||
|
||||||
!(sta->sta.deflink.ht_cap.cap & IEEE80211_HT_CAP_DELAY_BA))) ||
|
!(sta->sta.deflink.ht_cap.cap & IEEE80211_HT_CAP_DELAY_BA) ||
|
||||||
|
!(sta->sta.deflink.s1g_cap.cap[3] & S1G_CAP3_HT_DELAYED_BA))) ||
|
||||||
(buf_size > max_buf_size)) {
|
(buf_size > max_buf_size)) {
|
||||||
status = WLAN_STATUS_INVALID_QOS_PARAM;
|
status = WLAN_STATUS_INVALID_QOS_PARAM;
|
||||||
ht_dbg_ratelimited(sta->sdata,
|
ht_dbg_ratelimited(sta->sdata,
|
||||||
|
|||||||
@ -616,7 +616,8 @@ int ieee80211_start_tx_ba_session(struct ieee80211_sta *pubsta, u16 tid,
|
|||||||
!pubsta->deflink.ht_cap.ht_supported &&
|
!pubsta->deflink.ht_cap.ht_supported &&
|
||||||
!pubsta->deflink.vht_cap.vht_supported &&
|
!pubsta->deflink.vht_cap.vht_supported &&
|
||||||
!pubsta->deflink.he_cap.has_he &&
|
!pubsta->deflink.he_cap.has_he &&
|
||||||
!pubsta->deflink.eht_cap.has_eht)
|
!pubsta->deflink.eht_cap.has_eht &&
|
||||||
|
!pubsta->deflink.s1g_cap.s1g)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if (WARN_ON_ONCE(!local->ops->ampdu_action))
|
if (WARN_ON_ONCE(!local->ops->ampdu_action))
|
||||||
|
|||||||
@ -1173,7 +1173,8 @@ void ieee80211_aggr_check(struct ieee80211_sub_if_data *sdata,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (!sta ||
|
if (!sta ||
|
||||||
(!sta->sta.valid_links && !sta->sta.deflink.ht_cap.ht_supported) ||
|
(!sta->sta.valid_links && !sta->sta.deflink.ht_cap.ht_supported &&
|
||||||
|
!sta->sta.deflink.s1g_cap.s1g) ||
|
||||||
!sta->sta.wme || skb_get_queue_mapping(skb) == IEEE80211_AC_VO ||
|
!sta->sta.wme || skb_get_queue_mapping(skb) == IEEE80211_AC_VO ||
|
||||||
skb->protocol == sdata->control_port_protocol)
|
skb->protocol == sdata->control_port_protocol)
|
||||||
return;
|
return;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user