Commit b38b8207 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau

mt76: move mt76x2u_remove_dma_hdr in mt76x02-lib module

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: default avatarLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 2a45ad31
...@@ -29,23 +29,11 @@ static u8 skb2q(struct sk_buff *skb) ...@@ -29,23 +29,11 @@ static u8 skb2q(struct sk_buff *skb)
return mt76_ac_to_hwq(qid); 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) void mt76x0_tx_status(struct mt76x0_dev *dev, struct sk_buff *skb)
{ {
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(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); ieee80211_tx_info_clear_status(info);
info->status.rates[0].idx = -1; info->status.rates[0].idx = -1;
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
*/ */
#include "mt76.h" #include "mt76.h"
#include "dma.h"
#include "mt76x02_regs.h" #include "mt76x02_regs.h"
#include "mt76x02_mac.h" #include "mt76x02_mac.h"
...@@ -377,6 +378,17 @@ void mt76x02_remove_hdr_pad(struct sk_buff *skb, int len) ...@@ -377,6 +378,17 @@ void mt76x02_remove_hdr_pad(struct sk_buff *skb, int len)
} }
EXPORT_SYMBOL_GPL(mt76x02_remove_hdr_pad); 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) void mt76x02_tx_complete(struct mt76_dev *dev, struct sk_buff *skb)
{ {
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
......
...@@ -46,4 +46,5 @@ void mt76x02_sta_rate_tbl_update(struct ieee80211_hw *hw, ...@@ -46,4 +46,5 @@ void mt76x02_sta_rate_tbl_update(struct ieee80211_hw *hw,
int mt76x02_insert_hdr_pad(struct sk_buff *skb); int mt76x02_insert_hdr_pad(struct sk_buff *skb);
void mt76x02_remove_hdr_pad(struct sk_buff *skb, int len); 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_tx_complete(struct mt76_dev *dev, struct sk_buff *skb);
void mt76x02_remove_dma_hdr(struct sk_buff *skb);
#endif #endif
...@@ -18,18 +18,6 @@ ...@@ -18,18 +18,6 @@
#include "dma.h" #include "dma.h"
#include "mt76x02_util.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 static int
mt76x2u_check_skb_rooms(struct sk_buff *skb) mt76x2u_check_skb_rooms(struct sk_buff *skb)
{ {
...@@ -101,7 +89,7 @@ int mt76x2u_tx_prepare_skb(struct mt76_dev *mdev, void *data, ...@@ -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, void mt76x2u_tx_complete_skb(struct mt76_dev *mdev, struct mt76_queue *q,
struct mt76_queue_entry *e, bool flush) 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); mt76x02_tx_complete(mdev, e->skb);
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment