* [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.