mt76: rely on mt76_queue in tx_queue_skb_raw signature
authorLorenzo Bianconi <lorenzo@kernel.org>
Wed, 11 Nov 2020 13:47:30 +0000 (14:47 +0100)
committerFelix Fietkau <nbd@nbd.name>
Fri, 4 Dec 2020 13:31:15 +0000 (14:31 +0100)
This is a preliminary patch to move data queues in mt76_phy and properly
support dbdc

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/dma.c
drivers/net/wireless/mediatek/mt76/mt76.h
drivers/net/wireless/mediatek/mt76/mt7603/main.c
drivers/net/wireless/mediatek/mt76/mt7603/mcu.c
drivers/net/wireless/mediatek/mt76/mt7615/debugfs.c
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
drivers/net/wireless/mediatek/mt76/mt7615/sdio_mcu.c
drivers/net/wireless/mediatek/mt76/mt76x02_mcu.c
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
drivers/net/wireless/mediatek/mt76/sdio.c

index 730f01935cfe9cb6b34ca18b1e3922786646fee6..6aa6bac363318bd455cefc506b95e9f8ba7aa2c1 100644 (file)
@@ -313,10 +313,9 @@ mt76_dma_dequeue(struct mt76_dev *dev, struct mt76_queue *q, bool flush,
 }
 
 static int
-mt76_dma_tx_queue_skb_raw(struct mt76_dev *dev, enum mt76_txq_id qid,
+mt76_dma_tx_queue_skb_raw(struct mt76_dev *dev, struct mt76_queue *q,
                          struct sk_buff *skb, u32 tx_info)
 {
-       struct mt76_queue *q = dev->q_tx[qid];
        struct mt76_queue_buf buf;
        dma_addr_t addr;
 
index 3e6b8a647450f497c5607b33d68b48bb4a524aee..053c8ea6d38f02ef0a8bc872ef230de35918ed41 100644 (file)
@@ -175,7 +175,7 @@ struct mt76_queue_ops {
                            struct sk_buff *skb, struct mt76_wcid *wcid,
                            struct ieee80211_sta *sta);
 
-       int (*tx_queue_skb_raw)(struct mt76_dev *dev, enum mt76_txq_id qid,
+       int (*tx_queue_skb_raw)(struct mt76_dev *dev, struct mt76_queue *q,
                                struct sk_buff *skb, u32 tx_info);
 
        void *(*dequeue)(struct mt76_dev *dev, struct mt76_queue *q, bool flush,
index c9226dceb510c19eede46b476edd16d8ab39d7b0..64b259123001f88e3810e2fe6cb112d65dd6ec0e 100644 (file)
@@ -380,9 +380,11 @@ mt7603_ps_tx_list(struct mt7603_dev *dev, struct sk_buff_head *list)
 {
        struct sk_buff *skb;
 
-       while ((skb = __skb_dequeue(list)) != NULL)
-               mt76_tx_queue_skb_raw(dev, skb_get_queue_mapping(skb),
-                                     skb, 0);
+       while ((skb = __skb_dequeue(list)) != NULL) {
+               int qid = skb_get_queue_mapping(skb);
+
+               mt76_tx_queue_skb_raw(dev, dev->mt76.q_tx[qid], skb, 0);
+       }
 }
 
 void
index 9e6c8e1b7ea5a78e04b78e2d616f9524321adfa2..d275aa6e003cbdf418cd8c448489f7ab89b43c45 100644 (file)
@@ -73,7 +73,7 @@ mt7603_mcu_skb_send_msg(struct mt76_dev *mdev, struct sk_buff *skb,
        if (wait_seq)
                *wait_seq = seq;
 
-       return mt76_tx_queue_skb_raw(dev, MT_TXQ_MCU, skb, 0);
+       return mt76_tx_queue_skb_raw(dev, mdev->q_tx[MT_TXQ_MCU], skb, 0);
 }
 
 static int
index a35ff054b5f1614f9a98205ce5ea90861ef7fc21..ffe36e5ee98d883e567f6bf6e2489984fe06c2c8 100644 (file)
@@ -187,7 +187,7 @@ mt7615_reset_test_set(void *data, u64 val)
        skb_put(skb, 1);
 
        mt7615_mutex_acquire(dev);
-       mt76_tx_queue_skb_raw(dev, 0, skb, 0);
+       mt76_tx_queue_skb_raw(dev, dev->mt76.q_tx[0], skb, 0);
        mt7615_mutex_release(dev);
 
        return 0;
index 8525236d7d35f6b2bf82040596a17f3d434b5547..4733b3804881dd2c0f50481650949320cc3261f6 100644 (file)
@@ -239,7 +239,7 @@ mt7615_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
        else
                qid = MT_TXQ_FWDL;
 
-       return mt76_tx_queue_skb_raw(dev, qid, skb, 0);
+       return mt76_tx_queue_skb_raw(dev, dev->mt76.q_tx[qid], skb, 0);
 }
 
 u32 mt7615_rf_rr(struct mt7615_dev *dev, u32 wf, u32 reg)
index e4995c64089d24e211229337feae62cdf805a8b6..a6f28b80feba018dc8afab682f5bde3020453e67 100644 (file)
@@ -42,7 +42,7 @@ mt7663s_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
        int ret;
 
        mt7615_mcu_fill_msg(dev, skb, cmd, seq);
-       ret = mt76_tx_queue_skb_raw(dev, MT_TXQ_MCU, skb, 0);
+       ret = mt76_tx_queue_skb_raw(dev, mdev->q_tx[MT_TXQ_MCU], skb, 0);
        if (ret)
                return ret;
 
index 3b2184254ae99f07d1d639e5a86a97a538d1f079..3846e5be62c00d0c81557d239ea83c59f159d198 100644 (file)
@@ -61,7 +61,7 @@ int mt76x02_mcu_msg_send(struct mt76_dev *mdev, int cmd, const void *data,
                  FIELD_PREP(MT_MCU_MSG_PORT, CPU_TX_PORT) |
                  FIELD_PREP(MT_MCU_MSG_LEN, skb->len);
 
-       ret = mt76_tx_queue_skb_raw(dev, MT_TXQ_MCU, skb, tx_info);
+       ret = mt76_tx_queue_skb_raw(dev, mdev->q_tx[MT_TXQ_MCU], skb, tx_info);
        if (ret)
                goto out;
 
index b135ad972e88547b8ae1de2a43a56ed175197885..6b41ecdc4b4a436a5ab6ac902fd9a0f5975ba8ab 100644 (file)
@@ -326,7 +326,7 @@ exit:
        if (wait_seq)
                *wait_seq = seq;
 
-       return mt76_tx_queue_skb_raw(dev, txq, skb, 0);
+       return mt76_tx_queue_skb_raw(dev, mdev->q_tx[txq], skb, 0);
 }
 
 static void
index b1bc459a721d2c193a964b4ae0ee2d43941c1215..fce13373627331beb3fff1fe447d8b6ef28283a1 100644 (file)
@@ -266,10 +266,9 @@ mt76s_tx_queue_skb(struct mt76_dev *dev, struct mt76_queue *q,
 }
 
 static int
-mt76s_tx_queue_skb_raw(struct mt76_dev *dev, enum mt76_txq_id qid,
+mt76s_tx_queue_skb_raw(struct mt76_dev *dev, struct mt76_queue *q,
                       struct sk_buff *skb, u32 tx_info)
 {
-       struct mt76_queue *q = dev->q_tx[qid];
        int ret = -ENOSPC, len = skb->len, pad;
 
        if (q->queued == q->ndesc)