All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC v2 09/18] mt76: introduce tx_queue_skb function pointer in mt76_bus_ops
@ 2018-05-20  8:15 Lorenzo Bianconi
  2018-05-20 10:48 ` Felix Fietkau
  0 siblings, 1 reply; 3+ messages in thread
From: Lorenzo Bianconi @ 2018-05-20  8:15 UTC (permalink / raw)
  To: nbd; +Cc: linux-wireless, sgruszka

Add tx_queue_skb function pointer in mt76_bus_ops since mt76x2u based
devices do not map mt76x2_txwi on dma buffers and it is not possible
to reuse mt76_tx_queue_skb() routine to enqueue tx frames to hw buffers

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
---
 drivers/net/wireless/mediatek/mt76/dma.c  | 1 +
 drivers/net/wireless/mediatek/mt76/mt76.h | 5 +++++
 drivers/net/wireless/mediatek/mt76/tx.c   | 9 +++++----
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/dma.c b/drivers/net/wireless/mediatek/mt76/dma.c
index 528132c3d1cd..cebd419ae83a 100644
--- a/drivers/net/wireless/mediatek/mt76/dma.c
+++ b/drivers/net/wireless/mediatek/mt76/dma.c
@@ -432,6 +432,7 @@ static const struct mt76_queue_ops mt76_dma_ops = {
 	.init = mt76_dma_init,
 	.alloc = mt76_dma_alloc_queue,
 	.add_buf = mt76_dma_add_buf,
+	.tx_queue_skb = mt76_tx_queue_skb,
 	.tx_cleanup = mt76_dma_tx_cleanup,
 	.rx_reset = mt76_dma_rx_reset,
 	.kick = mt76_dma_kick_queue,
diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h
index f4144c3e70d3..9fc11cc4f029 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76.h
@@ -30,6 +30,7 @@
 #define MT_RX_BUF_SIZE      2048
 
 struct mt76_dev;
+struct mt76_wcid;
 
 struct mt76_bus_ops {
 	u32 (*rr)(struct mt76_dev *dev, u32 offset);
@@ -110,6 +111,10 @@ struct mt76_queue_ops {
 		       struct mt76_queue_buf *buf, int nbufs, u32 info,
 		       struct sk_buff *skb, void *txwi);
 
+	int (*tx_queue_skb)(struct mt76_dev *dev, struct mt76_queue *q,
+			    struct sk_buff *skb, struct mt76_wcid *wcid,
+			    struct ieee80211_sta *sta);
+
 	void *(*dequeue)(struct mt76_dev *dev, struct mt76_queue *q, bool flush,
 			 int *len, u32 *info, bool *more);
 
diff --git a/drivers/net/wireless/mediatek/mt76/tx.c b/drivers/net/wireless/mediatek/mt76/tx.c
index 7ecd2d7c5db4..fa6e5854925e 100644
--- a/drivers/net/wireless/mediatek/mt76/tx.c
+++ b/drivers/net/wireless/mediatek/mt76/tx.c
@@ -185,7 +185,7 @@ mt76_tx(struct mt76_dev *dev, struct ieee80211_sta *sta,
 	q = &dev->q_tx[qid];
 
 	spin_lock_bh(&q->lock);
-	mt76_tx_queue_skb(dev, q, skb, wcid, sta);
+	dev->queue_ops->tx_queue_skb(dev, q, skb, wcid, sta);
 	dev->queue_ops->kick(dev, q);
 
 	if (q->queued > q->ndesc - 8)
@@ -241,7 +241,7 @@ mt76_queue_ps_skb(struct mt76_dev *dev, struct ieee80211_sta *sta,
 		info->flags |= IEEE80211_TX_STATUS_EOSP;
 
 	mt76_skb_set_moredata(skb, !last);
-	mt76_tx_queue_skb(dev, hwq, skb, wcid, sta);
+	dev->queue_ops->tx_queue_skb(dev, hwq, skb, wcid, sta);
 }
 
 void
@@ -321,7 +321,7 @@ mt76_txq_send_burst(struct mt76_dev *dev, struct mt76_queue *hwq,
 	if (ampdu)
 		mt76_check_agg_ssn(mtxq, skb);
 
-	idx = mt76_tx_queue_skb(dev, hwq, skb, wcid, txq->sta);
+	idx = dev->queue_ops->tx_queue_skb(dev, hwq, skb, wcid, txq->sta);
 
 	if (idx < 0)
 		return idx;
@@ -356,7 +356,8 @@ mt76_txq_send_burst(struct mt76_dev *dev, struct mt76_queue *hwq,
 		if (cur_ampdu)
 			mt76_check_agg_ssn(mtxq, skb);
 
-		idx = mt76_tx_queue_skb(dev, hwq, skb, wcid, txq->sta);
+		idx = dev->queue_ops->tx_queue_skb(dev, hwq, skb, wcid,
+						   txq->sta);
 		if (idx < 0)
 			return idx;
 
-- 
2.16.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [RFC v2 09/18] mt76: introduce tx_queue_skb function pointer in mt76_bus_ops
  2018-05-20  8:15 [RFC v2 09/18] mt76: introduce tx_queue_skb function pointer in mt76_bus_ops Lorenzo Bianconi
@ 2018-05-20 10:48 ` Felix Fietkau
  2018-05-21 20:18   ` Lorenzo Bianconi
  0 siblings, 1 reply; 3+ messages in thread
From: Felix Fietkau @ 2018-05-20 10:48 UTC (permalink / raw)
  To: Lorenzo Bianconi; +Cc: linux-wireless, sgruszka

On 2018-05-20 10:15, Lorenzo Bianconi wrote:
> Add tx_queue_skb function pointer in mt76_bus_ops since mt76x2u based
> devices do not map mt76x2_txwi on dma buffers and it is not possible
> to reuse mt76_tx_queue_skb() routine to enqueue tx frames to hw buffers
> 
> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Please move mt76_tx_queue_skb to dma.c and rename it to
mt76_dma_tx_queue_skb.

Thanks,

- Felix

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [RFC v2 09/18] mt76: introduce tx_queue_skb function pointer in mt76_bus_ops
  2018-05-20 10:48 ` Felix Fietkau
@ 2018-05-21 20:18   ` Lorenzo Bianconi
  0 siblings, 0 replies; 3+ messages in thread
From: Lorenzo Bianconi @ 2018-05-21 20:18 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless, Stanislaw Gruszka

> On 2018-05-20 10:15, Lorenzo Bianconi wrote:
>> Add tx_queue_skb function pointer in mt76_bus_ops since mt76x2u based
>> devices do not map mt76x2_txwi on dma buffers and it is not possible
>> to reuse mt76_tx_queue_skb() routine to enqueue tx frames to hw buffers
>>
>> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
> Please move mt76_tx_queue_skb to dma.c and rename it to
> mt76_dma_tx_queue_skb.
>
> Thanks,
>
> - Felix

Ack, will do in v3
Regards,

Lorenzo

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-05-21 20:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-20  8:15 [RFC v2 09/18] mt76: introduce tx_queue_skb function pointer in mt76_bus_ops Lorenzo Bianconi
2018-05-20 10:48 ` Felix Fietkau
2018-05-21 20:18   ` Lorenzo Bianconi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.