Revert "ath9k: do not insert padding into tx buffers on AR9380+"
authorJohn W. Linville <linville@tuxdriver.com>
Mon, 19 Sep 2011 19:42:31 +0000 (15:42 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 19 Sep 2011 19:42:31 +0000 (15:42 -0400)
This reverts commit 4245d31347bdc99a608dc1d1cfe64e44aa3d1771.

drivers/net/wireless/ath/ath9k/xmit.c

index 2c6aefad3728f9dc7fe05a93b06862e9ba38704a..a0cd51f28596f6778e53ea7dca67b7aeaea006d1 100644 (file)
@@ -1017,8 +1017,6 @@ static void ath_tx_fill_desc(struct ath_softc *sc, struct ath_buf *bf,
        while (bf) {
                struct sk_buff *skb = bf->bf_mpdu;
                struct ath_frame_info *fi = get_frame_info(skb);
-               struct ieee80211_hdr *hdr;
-               int padpos, padsize;
 
                info.type = get_hw_packet_type(skb);
                if (bf->bf_next)
@@ -1026,20 +1024,8 @@ static void ath_tx_fill_desc(struct ath_softc *sc, struct ath_buf *bf,
                else
                        info.link = 0;
 
-               if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
-                       hdr = (struct ieee80211_hdr *)skb->data;
-                       padpos = ath9k_cmn_padpos(hdr->frame_control);
-                       padsize = padpos & 3;
-
-                       info.buf_addr[0] = bf->bf_buf_addr;
-                       info.buf_len[0] = padpos + padsize;
-                       info.buf_addr[1] = info.buf_addr[0] + padpos;
-                       info.buf_len[1] = skb->len - padpos;
-               } else {
-                       info.buf_addr[0] = bf->bf_buf_addr;
-                       info.buf_len[0] = skb->len;
-               }
-
+               info.buf_addr[0] = bf->bf_buf_addr;
+               info.buf_len[0] = skb->len;
                info.pkt_len = fi->framelen;
                info.keyix = fi->keyix;
                info.keytype = fi->keytype;
@@ -1892,17 +1878,15 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb,
                hdr->seq_ctrl |= cpu_to_le16(sc->tx.seq_no);
        }
 
-       if (!(sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)) {
-               /* Add the padding after the header if this is not already done */
-               padpos = ath9k_cmn_padpos(hdr->frame_control);
-               padsize = padpos & 3;
-               if (padsize && skb->len > padpos) {
-                       if (skb_headroom(skb) < padsize)
-                               return -ENOMEM;
+       /* Add the padding after the header if this is not already done */
+       padpos = ath9k_cmn_padpos(hdr->frame_control);
+       padsize = padpos & 3;
+       if (padsize && skb->len > padpos) {
+               if (skb_headroom(skb) < padsize)
+                       return -ENOMEM;
 
-                       skb_push(skb, padsize);
-                       memmove(skb->data, skb->data + padsize, padpos);
-               }
+               skb_push(skb, padsize);
+               memmove(skb->data, skb->data + padsize, padpos);
        }
 
        if ((vif && vif->type != NL80211_IFTYPE_AP &&
@@ -1952,17 +1936,15 @@ static void ath_tx_complete(struct ath_softc *sc, struct sk_buff *skb,
                /* Frame was ACKed */
                tx_info->flags |= IEEE80211_TX_STAT_ACK;
 
-       if (!(sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)) {
-               padpos = ath9k_cmn_padpos(hdr->frame_control);
-               padsize = padpos & 3;
-               if (padsize && skb->len>padpos+padsize) {
-                       /*
-                        * Remove MAC header padding before giving the frame back to
-                        * mac80211.
-                        */
-                       memmove(skb->data + padsize, skb->data, padpos);
-                       skb_pull(skb, padsize);
-               }
+       padpos = ath9k_cmn_padpos(hdr->frame_control);
+       padsize = padpos & 3;
+       if (padsize && skb->len>padpos+padsize) {
+               /*
+                * Remove MAC header padding before giving the frame back to
+                * mac80211.
+                */
+               memmove(skb->data + padsize, skb->data, padpos);
+               skb_pull(skb, padsize);
        }
 
        if (sc->ps_flags & PS_WAIT_FOR_TX_ACK) {