if (!sta->sta.valid_links &&
            !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,
                       "STA %pM erroneously requests BA session on tid %d w/o HT\n",
                       sta->sta.addr, tid);
        /* XXX: check own ht delayed BA capability?? */
        if (((ba_policy != 1) &&
             (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)) {
                status = WLAN_STATUS_INVALID_QOS_PARAM;
                ht_dbg_ratelimited(sta->sdata,
 
            !pubsta->deflink.ht_cap.ht_supported &&
            !pubsta->deflink.vht_cap.vht_supported &&
            !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;
 
        if (WARN_ON_ONCE(!local->ops->ampdu_action))
 
                return;
 
        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 ||
            skb->protocol == sdata->control_port_protocol)
                return;