diff mbox series

[1/4] mt76: move mt76x02_insert_hdr_pad in mt76-core module

Message ID 0ec618f40f6308f4da8c6a766519dfd66fa5ad57.1552306908.git.lorenzo@kernel.org (mailing list archive)
State Superseded
Delegated to: Felix Fietkau
Headers show
Series move skb mapping before configuring txwi | expand

Commit Message

Lorenzo Bianconi March 11, 2019, 12:35 p.m. UTC
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>
---
 drivers/net/wireless/mediatek/mt76/mt76.h        | 15 +++++++++++++++
 drivers/net/wireless/mediatek/mt76/mt76x02.h     |  1 -
 .../net/wireless/mediatek/mt76/mt76x02_txrx.c    |  2 +-
 .../wireless/mediatek/mt76/mt76x02_usb_core.c    |  2 +-
 .../net/wireless/mediatek/mt76/mt76x02_util.c    | 16 ----------------
 5 files changed, 17 insertions(+), 19 deletions(-)

Comments

Stanislaw Gruszka March 11, 2019, 1:30 p.m. UTC | #1
On Mon, Mar 11, 2019 at 01:35:23PM +0100, Lorenzo Bianconi wrote:
> +static inline int mt76_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;
> +}
<snip>
> @@ -165,7 +165,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);
> +	ret = mt76_insert_hdr_pad(skb);
>  	if (ret < 0)
>  		return ret;

Since you modify this you can make mt76_inser_hdr_pad() return
void since we do not return error any longer.

Stanislaw
Lorenzo Bianconi March 11, 2019, 2:02 p.m. UTC | #2
> On Mon, Mar 11, 2019 at 01:35:23PM +0100, Lorenzo Bianconi wrote:
> > +static inline int mt76_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;
> > +}
> <snip>
> > @@ -165,7 +165,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);
> > +	ret = mt76_insert_hdr_pad(skb);
> >  	if (ret < 0)
> >  		return ret;
> 
> Since you modify this you can make mt76_inser_hdr_pad() return
> void since we do not return error any longer.

ack, will do in v2

Regards,
Lorenzo

> 
> Stanislaw
diff mbox series

Patch

diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h
index 57136073e1fa..971d968c1b5f 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76.h
@@ -653,6 +653,21 @@  static inline struct mt76_tx_cb *mt76_tx_skb_cb(struct sk_buff *skb)
 	return ((void *) IEEE80211_SKB_CB(skb)->status.status_driver_data);
 }
 
+static inline int mt76_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;
+}
+
 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);
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02.h b/drivers/net/wireless/mediatek/mt76/mt76x02.h
index 392b96fcb520..53ec8103a268 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02.h
@@ -163,7 +163,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,
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c b/drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c
index ce9ace11339d..f574866c7e9d 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c
@@ -165,7 +165,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);
+	ret = mt76_insert_hdr_pad(skb);
 	if (ret < 0)
 		return ret;
 
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c b/drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c
index 8ab63255ba6f..6c3fc4cea283 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c
@@ -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);
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
index b14a55737829..81d65319d3ea 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
@@ -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;