aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/net/wireless/mediatek/mt76/mcu.c
diff options
context:
space:
mode:
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>2019-02-04 17:51:28 +0100
committerFelix Fietkau <nbd@nbd.name>2019-02-18 19:54:33 +0100
commit680abb25f71caf3871c8619bee3bbc3818dcd3a7 (patch)
tree61927bd2a2ff68b4ce3f5ff12cbf52d3e51b5a80 /drivers/net/wireless/mediatek/mt76/mcu.c
parentmt76: move mt76_mcu_msg_alloc in mt76-core (diff)
downloadwireguard-linux-680abb25f71caf3871c8619bee3bbc3818dcd3a7.tar.xz
wireguard-linux-680abb25f71caf3871c8619bee3bbc3818dcd3a7.zip
mt76: move mt76_mcu_get_response in mt76-core
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>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mcu.c')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mcu.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mcu.c b/drivers/net/wireless/mediatek/mt76/mcu.c
index f4c38ec78654..0fd71a97a197 100644
--- a/drivers/net/wireless/mediatek/mt76/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mcu.c
@@ -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);