summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2011-09-19 15:42:31 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-09-19 15:42:31 -0400
commit42cecc3465578e442b794851fd8802dcb85a192c (patch)
tree7f9b668f70b2b6725eae0413f2dce82246ce7cf9
parent376cf5d3fd3c84855f1bf8d62aa05b7e4bcf1b8c (diff)
Revert "ath9k: do not insert padding into tx buffers on AR9380+"
This reverts commit 4245d31347bdc99a608dc1d1cfe64e44aa3d1771.
-rw-r--r--drivers/net/wireless/ath/ath9k/xmit.c56
1 files changed, 19 insertions, 37 deletions
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 2c6aefad3728..a0cd51f28596 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -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) {