summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/mediatek/mt76/mcu.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2020-01-30 19:42:55 +0300
committerFelix Fietkau <nbd@nbd.name>2020-02-14 12:06:08 +0300
commit61c4fa72196845b060147c044af7b25632ff6376 (patch)
treed8ceb0abad47b1915d0a0d3f2afc1f8550cbd27e /drivers/net/wireless/mediatek/mt76/mcu.c
parentf347f81a8ac98b5a2d67777222f0fce7d21685be (diff)
downloadlinux-61c4fa72196845b060147c044af7b25632ff6376.tar.xz
mt76: mt7615: implement hardware reset support
When the firmware detects a problem, it needs the host to stop/reset DMA and resume it again when the hardware state has been reset. 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.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mcu.c b/drivers/net/wireless/mediatek/mt76/mcu.c
index 2a976688804d..b0fb0830c9e1 100644
--- a/drivers/net/wireless/mediatek/mt76/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mcu.c
@@ -35,7 +35,8 @@ struct sk_buff *mt76_mcu_get_response(struct mt76_dev *dev,
timeout = expires - jiffies;
wait_event_timeout(dev->mmio.mcu.wait,
- !skb_queue_empty(&dev->mmio.mcu.res_q),
+ (!skb_queue_empty(&dev->mmio.mcu.res_q) ||
+ test_bit(MT76_MCU_RESET, &dev->phy.state)),
timeout);
return skb_dequeue(&dev->mmio.mcu.res_q);
}