aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/net/wireless/mediatek/mt76/mcu.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2020-09-30 04:46:43 +0200
committerFelix Fietkau <nbd@nbd.name>2020-12-04 13:46:15 +0100
commit64537a02131712a3b2f596c8a5785a8f3c0b6c47 (patch)
tree8f91a23fd42099c4ce0de27b68848d8524e0f84e /drivers/net/wireless/mediatek/mt76/mcu.c
parentmt76: move waiting and locking out of mcu_ops->mcu_skb_send_msg (diff)
downloadwireguard-linux-64537a02131712a3b2f596c8a5785a8f3c0b6c47.tar.xz
wireguard-linux-64537a02131712a3b2f596c8a5785a8f3c0b6c47.zip
mt76: make mcu_ops->mcu_send_msg optional
Remove it from mt7615 and mt7915 and implement it in core code instead 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.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mcu.c b/drivers/net/wireless/mediatek/mt76/mcu.c
index 118272cabe16..2bbe41e3b78f 100644
--- a/drivers/net/wireless/mediatek/mt76/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mcu.c
@@ -51,6 +51,22 @@ void mt76_mcu_rx_event(struct mt76_dev *dev, struct sk_buff *skb)
}
EXPORT_SYMBOL_GPL(mt76_mcu_rx_event);
+int mt76_mcu_send_msg(struct mt76_dev *dev, int cmd, const void *data,
+ int len, bool wait_resp)
+{
+ struct sk_buff *skb;
+
+ if (dev->mcu_ops->mcu_send_msg)
+ return dev->mcu_ops->mcu_send_msg(dev, cmd, data, len, wait_resp);
+
+ skb = mt76_mcu_msg_alloc(dev, data, len);
+ if (!skb)
+ return -ENOMEM;
+
+ return mt76_mcu_skb_send_msg(dev, skb, cmd, wait_resp);
+}
+EXPORT_SYMBOL_GPL(mt76_mcu_send_msg);
+
int mt76_mcu_skb_send_msg(struct mt76_dev *dev, struct sk_buff *skb,
int cmd, bool wait_resp)
{