]> git.karo-electronics.de Git - linux-beck.git/commitdiff
brcmsmac: restructure info->control.sta handling as it is goning to be removed soon.
authorThomas Huehn <thomas@net.t-labs.tu-berlin.de>
Tue, 10 Jul 2012 12:01:37 +0000 (14:01 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 12 Jul 2012 19:27:17 +0000 (15:27 -0400)
brcmsmac uses info->control.sta while doing ampdu aggregation. This patch
changes the usage of the structure info->control.sta, as it is going to be
removed soon from struct ieee80211_tx_info. This patch is a pre-requisit in
order to add transmission power control (TPC) to the mac80211 subsystem.

Suggested-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Thomas Huehn <thomas@net.t-labs.tu-berlin.de>
Acked-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/brcm80211/brcmsmac/ampdu.c
drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
drivers/net/wireless/brcm80211/brcmsmac/main.c

index 01b190a25d947766ac2565ace38b6c9c096e7261..be5bcfb9153bfacca71e4cd226fa2c0224612334 100644 (file)
@@ -663,9 +663,6 @@ brcms_c_sendampdu(struct ampdu_info *ampdu, struct brcms_txq_info *qi,
                /* patch the first MPDU */
                if (count == 1) {
                        u8 plcp0, plcp3, is40, sgi;
-                       struct ieee80211_sta *sta;
-
-                       sta = tx_info->control.sta;
 
                        if (rr) {
                                plcp0 = plcp[0];
@@ -1195,8 +1192,8 @@ static bool cb_del_ampdu_pkt(struct sk_buff *mpdu, void *arg_a)
        bool rc;
 
        rc = tx_info->flags & IEEE80211_TX_CTL_AMPDU ? true : false;
-       rc = rc && (tx_info->control.sta == NULL || ampdu_pars->sta == NULL ||
-                   tx_info->control.sta == ampdu_pars->sta);
+       rc = rc && (tx_info->rate_driver_data[0] == NULL || ampdu_pars->sta == NULL ||
+                   tx_info->rate_driver_data[0] == ampdu_pars->sta);
        rc = rc && ((u8)(mpdu->priority) == ampdu_pars->tid);
        return rc;
 }
@@ -1210,8 +1207,8 @@ static void dma_cb_fn_ampdu(void *txi, void *arg_a)
        struct ieee80211_tx_info *tx_info = (struct ieee80211_tx_info *)txi;
 
        if ((tx_info->flags & IEEE80211_TX_CTL_AMPDU) &&
-           (tx_info->control.sta == sta || sta == NULL))
-               tx_info->control.sta = NULL;
+           (tx_info->rate_driver_data[0] == sta || sta == NULL))
+               tx_info->rate_driver_data[0] = NULL;
 }
 
 /*
index 2b57f57a7927aefa79d8d75c54a338ce42b10400..9e79d47e077f34e8b980dc6a8689c0735bba93bc 100644 (file)
@@ -267,6 +267,7 @@ static void brcms_set_basic_rate(struct brcm_rateset *rs, u16 rate, bool is_br)
 static void brcms_ops_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
 {
        struct brcms_info *wl = hw->priv;
+       struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
 
        spin_lock_bh(&wl->lock);
        if (!wl->pub->up) {
@@ -275,6 +276,7 @@ static void brcms_ops_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
                goto done;
        }
        brcms_c_sendpkt_mac80211(wl->wlc, skb, hw);
+       tx_info->rate_driver_data[0] = tx_info->control.sta;
  done:
        spin_unlock_bh(&wl->lock);
 }
index d39f7d041e0bc3351a50035e40853e298ec8205e..f36dabcea3cd7d52cba9d8a688ed8572c1d75951 100644 (file)
@@ -893,7 +893,7 @@ brcms_c_dotxstatus(struct brcms_c_info *wlc, struct tx_status *txs)
        tx_info = IEEE80211_SKB_CB(p);
        h = (struct ieee80211_hdr *)((u8 *) (txh + 1) + D11_PHY_HDR_LEN);
 
-       if (tx_info->control.sta)
+       if (tx_info->rate_driver_data[0])
                scb = &wlc->pri_scb;
 
        if (tx_info->flags & IEEE80211_TX_CTL_AMPDU) {