OSDN Git Service

mt76: move mt76x2u_remove_dma_hdr in mt76x02-lib module
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Thu, 6 Sep 2018 09:18:19 +0000 (11:18 +0200)
committerFelix Fietkau <nbd@nbd.name>
Wed, 19 Sep 2018 10:29:29 +0000 (12:29 +0200)
Move mt76x2u_remove_dma_hdr in mt76x02-lib module and rename it in
mt76x02_remove_dma_hdr. Moreover use mt76x02_remove_hdr_pad routine
in mt76x02_remove_dma_hdr function.
Furthermore remove mt76x0_tx_skb_remove_dma_overhead routine

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76x0/tx.c
drivers/net/wireless/mediatek/mt76/mt76x02_util.c
drivers/net/wireless/mediatek/mt76/mt76x02_util.h
drivers/net/wireless/mediatek/mt76/mt76x2u_core.c

index 0dab1c6..de2643d 100644 (file)
@@ -29,23 +29,11 @@ static u8 skb2q(struct sk_buff *skb)
        return mt76_ac_to_hwq(qid);
 }
 
-static void mt76x0_tx_skb_remove_dma_overhead(struct sk_buff *skb,
-                                              struct ieee80211_tx_info *info)
-{
-       int pkt_len = (unsigned long)info->status.status_driver_data[0];
-
-       skb_pull(skb, sizeof(struct mt76x02_txwi) + 4);
-       if (ieee80211_get_hdrlen_from_skb(skb) % 4)
-               mt76x02_remove_hdr_pad(skb, 2);
-
-       skb_trim(skb, pkt_len);
-}
-
 void mt76x0_tx_status(struct mt76x0_dev *dev, struct sk_buff *skb)
 {
        struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
 
-       mt76x0_tx_skb_remove_dma_overhead(skb, info);
+       mt76x02_remove_dma_hdr(skb);
 
        ieee80211_tx_info_clear_status(info);
        info->status.rates[0].idx = -1;
index d5af543..602b30d 100644 (file)
@@ -16,6 +16,7 @@
  */
 
 #include "mt76.h"
+#include "dma.h"
 #include "mt76x02_regs.h"
 #include "mt76x02_mac.h"
 
@@ -377,6 +378,17 @@ void mt76x02_remove_hdr_pad(struct sk_buff *skb, int len)
 }
 EXPORT_SYMBOL_GPL(mt76x02_remove_hdr_pad);
 
+void mt76x02_remove_dma_hdr(struct sk_buff *skb)
+{
+       int hdr_len;
+
+       skb_pull(skb, sizeof(struct mt76x02_txwi) + MT_DMA_HDR_LEN);
+       hdr_len = ieee80211_get_hdrlen_from_skb(skb);
+       if (hdr_len % 4)
+               mt76x02_remove_hdr_pad(skb, 2);
+}
+EXPORT_SYMBOL_GPL(mt76x02_remove_dma_hdr);
+
 void mt76x02_tx_complete(struct mt76_dev *dev, struct sk_buff *skb)
 {
        struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
index 19fe42c..6b6e963 100644 (file)
@@ -46,4 +46,5 @@ void mt76x02_sta_rate_tbl_update(struct ieee80211_hw *hw,
 int mt76x02_insert_hdr_pad(struct sk_buff *skb);
 void mt76x02_remove_hdr_pad(struct sk_buff *skb, int len);
 void mt76x02_tx_complete(struct mt76_dev *dev, struct sk_buff *skb);
+void mt76x02_remove_dma_hdr(struct sk_buff *skb);
 #endif
index 7cadbce..52b08b0 100644 (file)
 #include "dma.h"
 #include "mt76x02_util.h"
 
-static void mt76x2u_remove_dma_hdr(struct sk_buff *skb)
-{
-       int hdr_len;
-
-       skb_pull(skb, sizeof(struct mt76x02_txwi) + MT_DMA_HDR_LEN);
-       hdr_len = ieee80211_get_hdrlen_from_skb(skb);
-       if (hdr_len % 4) {
-               memmove(skb->data + 2, skb->data, hdr_len);
-               skb_pull(skb, 2);
-       }
-}
-
 static int
 mt76x2u_check_skb_rooms(struct sk_buff *skb)
 {
@@ -101,7 +89,7 @@ int mt76x2u_tx_prepare_skb(struct mt76_dev *mdev, void *data,
 void mt76x2u_tx_complete_skb(struct mt76_dev *mdev, struct mt76_queue *q,
                             struct mt76_queue_entry *e, bool flush)
 {
-       mt76x2u_remove_dma_hdr(e->skb);
+       mt76x02_remove_dma_hdr(e->skb);
        mt76x02_tx_complete(mdev, e->skb);
 }