diff options
author | Lorenzo Bianconi <lorenzo.bianconi@redhat.com> | 2019-02-04 19:51:28 +0300 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2019-02-18 21:54:33 +0300 |
commit | 680abb25f71caf3871c8619bee3bbc3818dcd3a7 (patch) | |
tree | 61927bd2a2ff68b4ce3f5ff12cbf52d3e51b5a80 /drivers/net/wireless/mediatek/mt76/mcu.c | |
parent | 9df0fab9d1cad3cbdd47683e5b4f3c7c09a91bd3 (diff) | |
download | linux-680abb25f71caf3871c8619bee3bbc3818dcd3a7.tar.xz |
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.c | 17 |
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); |