diff --git a/mt7603.h b/mt7603.h index 6171198a..b9911f28 100644 --- a/mt7603.h +++ b/mt7603.h @@ -197,6 +197,7 @@ void mt7603_dma_cleanup(struct mt7603_dev *dev); int mt7603_mcu_init(struct mt7603_dev *dev); int mt7603_tx_queue_mcu(struct mt7603_dev *dev, enum mt76_txq_id qid, struct sk_buff *skb); +void mt7603_mcu_rx_event(struct mt7603_dev *dev, struct sk_buff *skb); void mt7603_init_debugfs(struct mt7603_dev *dev); void mt7603_set_irq_mask(struct mt7603_dev *dev, u32 clear, u32 set); diff --git a/mt7603_dma.c b/mt7603_dma.c index 2cd9c2bd..828c50d9 100644 --- a/mt7603_dma.c +++ b/mt7603_dma.c @@ -77,8 +77,7 @@ void mt7603_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q, dev_kfree_skb(skb); break; case PKT_TYPE_RX_EVENT: - skb_queue_tail(&dev->mcu.res_q, skb); - wake_up(&dev->mcu.wait); + mt7603_mcu_rx_event(dev, skb); return; case PKT_TYPE_NORMAL: if (mt7603_mac_fill_rx(dev, skb) == 0) { diff --git a/mt7603_mcu.c b/mt7603_mcu.c index 240e9651..41f2a923 100644 --- a/mt7603_mcu.c +++ b/mt7603_mcu.c @@ -41,6 +41,12 @@ mt7603_mcu_msg_alloc(struct mt7603_dev *dev, const void *data, int len) return skb; } +void mt7603_mcu_rx_event(struct mt7603_dev *dev, struct sk_buff *skb) +{ + skb_queue_tail(&dev->mcu.res_q, skb); + wake_up(&dev->mcu.wait); +} + static struct sk_buff * mt7603_mcu_get_response(struct mt7603_dev *dev, unsigned long expires) {