Skip to content

Commit

Permalink
mt76: move mt76x02_insert_hdr_pad in mt76-core module
Browse files Browse the repository at this point in the history
Move mt76x02_insert_hdr_pad in m76-core and rename it in
mt76_insert_hdr_pad in order to be used in mt76_dma_tx_queue_skb.
This is a preliminary patch in order to properly support tx dma
mapping for new chipsets (e.g. mt7615)

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
  • Loading branch information
LorenzoBianconi authored and nbd168 committed Mar 14, 2019
1 parent 312f6fc commit 0fe6386
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 22 deletions.
14 changes: 14 additions & 0 deletions mt76.h
Expand Up @@ -656,6 +656,20 @@ int mt76_dma_tx_queue_skb(struct mt76_dev *dev, enum mt76_txq_id qid,
struct sk_buff *skb, struct mt76_wcid *wcid,
struct ieee80211_sta *sta);

static inline void mt76_insert_hdr_pad(struct sk_buff *skb)
{
int len = ieee80211_get_hdrlen_from_skb(skb);

if (len % 4 == 0)
return;

skb_push(skb, 2);
memmove(skb->data, skb->data + 2, len);

skb->data[len] = 0;
skb->data[len + 1] = 0;
}

void mt76_rx(struct mt76_dev *dev, enum mt76_rxq_id q, struct sk_buff *skb);
void mt76_tx(struct mt76_dev *dev, struct ieee80211_sta *sta,
struct mt76_wcid *wcid, struct sk_buff *skb);
Expand Down
1 change: 0 additions & 1 deletion mt76x02.h
Expand Up @@ -164,7 +164,6 @@ void mt76x02_set_tx_ackto(struct mt76x02_dev *dev);
void mt76x02_set_coverage_class(struct ieee80211_hw *hw,
s16 coverage_class);
int mt76x02_set_rts_threshold(struct ieee80211_hw *hw, u32 val);
int mt76x02_insert_hdr_pad(struct sk_buff *skb);
void mt76x02_remove_hdr_pad(struct sk_buff *skb, int len);
bool mt76x02_tx_status_data(struct mt76_dev *mdev, u8 *update);
void mt76x02_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
Expand Down
5 changes: 1 addition & 4 deletions mt76x02_txrx.c
Expand Up @@ -155,7 +155,6 @@ int mt76x02_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
struct mt76x02_txwi *txwi = txwi_ptr;
int qsel = MT_QSEL_EDCA;
int pid;
int ret;

if (qid == MT_TXQ_PSD && wcid && wcid->idx < 128)
mt76x02_mac_wcid_set_drop(dev, wcid->idx, false);
Expand All @@ -165,9 +164,7 @@ int mt76x02_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
pid = mt76_tx_status_skb_add(mdev, wcid, skb);
txwi->pktid = pid;

ret = mt76x02_insert_hdr_pad(skb);
if (ret < 0)
return ret;
mt76_insert_hdr_pad(skb);

if (pid >= MT_PACKET_ID_FIRST)
qsel = MT_QSEL_MGMT;
Expand Down
2 changes: 1 addition & 1 deletion mt76x02_usb_core.c
Expand Up @@ -82,7 +82,7 @@ int mt76x02u_tx_prepare_skb(struct mt76_dev *mdev, void *data,
enum mt76_qsel qsel;
u32 flags;

mt76x02_insert_hdr_pad(skb);
mt76_insert_hdr_pad(skb);

txwi = (struct mt76x02_txwi *)(skb->data - sizeof(struct mt76x02_txwi));
mt76x02_mac_write_txwi(dev, txwi, skb, wcid, sta, len);
Expand Down
16 changes: 0 additions & 16 deletions mt76x02_util.c
Expand Up @@ -566,22 +566,6 @@ void mt76x02_sta_rate_tbl_update(struct ieee80211_hw *hw,
}
EXPORT_SYMBOL_GPL(mt76x02_sta_rate_tbl_update);

int mt76x02_insert_hdr_pad(struct sk_buff *skb)
{
int len = ieee80211_get_hdrlen_from_skb(skb);

if (len % 4 == 0)
return 0;

skb_push(skb, 2);
memmove(skb->data, skb->data + 2, len);

skb->data[len] = 0;
skb->data[len + 1] = 0;
return 2;
}
EXPORT_SYMBOL_GPL(mt76x02_insert_hdr_pad);

void mt76x02_remove_hdr_pad(struct sk_buff *skb, int len)
{
int hdrlen;
Expand Down

0 comments on commit 0fe6386

Please sign in to comment.