* @supp_rates: Bitmap of supported rates (per band)
  * @ht_cap: HT capabilities of this STA; restricted to our own capabilities
  * @vht_cap: VHT capabilities of this STA; restricted to our own capabilities
+ * @max_rx_aggregation_subframes: maximal amount of frames in a single AMPDU
+ *     that this station is allowed to transmit to us.
+ *     Can be modified by driver.
  * @wme: indicates whether the STA supports QoS/WME (if local devices does,
  *     otherwise always false)
  * @drv_priv: data area for driver use, will always be aligned to
        u16 aid;
        struct ieee80211_sta_ht_cap ht_cap;
        struct ieee80211_sta_vht_cap vht_cap;
+       u8 max_rx_aggregation_subframes;
        bool wme;
        u8 uapsd_queues;
        u8 max_sp;
 
                buf_size = IEEE80211_MAX_AMPDU_BUF;
 
        /* make sure the size doesn't exceed the maximum supported by the hw */
-       if (buf_size > local->hw.max_rx_aggregation_subframes)
-               buf_size = local->hw.max_rx_aggregation_subframes;
+       if (buf_size > sta->sta.max_rx_aggregation_subframes)
+               buf_size = sta->sta.max_rx_aggregation_subframes;
        params.buf_size = buf_size;
 
+       ht_dbg(sta->sdata, "AddBA Req buf_size=%d for %pM\n",
+              buf_size, sta->sta.addr);
+
        /* examine state machine */
        mutex_lock(&sta->ampdu_mlme.mtx);
 
 
 
        memcpy(sta->addr, addr, ETH_ALEN);
        memcpy(sta->sta.addr, addr, ETH_ALEN);
+       sta->sta.max_rx_aggregation_subframes =
+               local->hw.max_rx_aggregation_subframes;
+
        sta->local = local;
        sta->sdata = sdata;
        sta->rx_stats.last_rx = jiffies;