mt76: move mt76_mcu_get_response in mt76-core
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Mon, 4 Feb 2019 16:51:28 +0000 (17:51 +0100)
committerFelix Fietkau <nbd@nbd.name>
Mon, 18 Feb 2019 18:54:33 +0000 (19:54 +0100)
Move mt76_mcu_get_response in mt76-core module and remove duplicated
code. mt76_mcu_get_response will be reused adding support for mt7603
driver

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mcu.c
drivers/net/wireless/mediatek/mt76/mt76.h
drivers/net/wireless/mediatek/mt76/mt76x02_mcu.c

index f4c38ec78654f6b107f1e2cdb5595450607dd04d..0fd71a97a197b7e90d1843534fbe614dee0895fa 100644 (file)
@@ -34,3 +34,20 @@ mt76_mcu_msg_alloc(const void *data, int head_len,
        return skb;
 }
 EXPORT_SYMBOL_GPL(mt76_mcu_msg_alloc);
+
+/* mmio */
+struct sk_buff *mt76_mcu_get_response(struct mt76_dev *dev,
+                                     unsigned long expires)
+{
+       unsigned long timeout;
+
+       if (!time_is_after_jiffies(expires))
+               return NULL;
+
+       timeout = expires - jiffies;
+       wait_event_timeout(dev->mmio.mcu.wait,
+                          !skb_queue_empty(&dev->mmio.mcu.res_q),
+                          timeout);
+       return skb_dequeue(&dev->mmio.mcu.res_q);
+}
+EXPORT_SYMBOL_GPL(mt76_mcu_get_response);
index 155d981d13280b044c202aadf8239317c7ff2079..534e418c6d8091ee04f03af830f50dd88550824c 100644 (file)
@@ -754,6 +754,8 @@ void mt76u_queues_deinit(struct mt76_dev *dev);
 struct sk_buff *
 mt76_mcu_msg_alloc(const void *data, int head_len,
                   int data_len, int tail_len);
+struct sk_buff *mt76_mcu_get_response(struct mt76_dev *dev,
+                                     unsigned long expires);
 
 void mt76u_mcu_complete_urb(struct urb *urb);
 int mt76u_mcu_init_rx(struct mt76_dev *dev);
index d184551b9845cbbe6b9cb99be03d6e81a809a3a4..b44d128f6f9397dd1c5e100475f674417569856b 100644 (file)
 
 #include "mt76x02_mcu.h"
 
-static struct sk_buff *
-mt76x02_mcu_get_response(struct mt76x02_dev *dev, unsigned long expires)
-{
-       unsigned long timeout;
-
-       if (!time_is_after_jiffies(expires))
-               return NULL;
-
-       timeout = expires - jiffies;
-       wait_event_timeout(dev->mt76.mmio.mcu.wait,
-                          !skb_queue_empty(&dev->mt76.mmio.mcu.res_q),
-                          timeout);
-       return skb_dequeue(&dev->mt76.mmio.mcu.res_q);
-}
-
 static int
 mt76x02_tx_queue_mcu(struct mt76x02_dev *dev, enum mt76_txq_id qid,
                     struct sk_buff *skb, int cmd, int seq)
@@ -94,7 +79,7 @@ int mt76x02_mcu_msg_send(struct mt76_dev *mdev, int cmd, const void *data,
                u32 *rxfce;
                bool check_seq = false;
 
-               skb = mt76x02_mcu_get_response(dev, expires);
+               skb = mt76_mcu_get_response(&dev->mt76, expires);
                if (!skb) {
                        dev_err(mdev->dev,
                                "MCU message %d (seq %d) timed out\n", cmd,