summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/mediatek/mt76/mt7915
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2024-08-27 11:30:01 +0200
committerFelix Fietkau <nbd@nbd.name>2024-09-06 14:23:06 +0200
commit3688c18b65aeb2a1f2fde108400afbab129a8cc1 (patch)
treea434e7aba8f275f1debeb92095c712ba17de740b /drivers/net/wireless/mediatek/mt76/mt7915
parent8351a4a40bdde127ef806e1017aefdb360978f93 (diff)
downloadlinux-3688c18b65aeb2a1f2fde108400afbab129a8cc1.tar.gz
linux-3688c18b65aeb2a1f2fde108400afbab129a8cc1.tar.bz2
linux-3688c18b65aeb2a1f2fde108400afbab129a8cc1.zip
wifi: mt76: mt7915: retry mcu messages
In some cases MCU messages can get lost. Instead of failing completely, attempt to recover by re-sending them. Link: https://patch.msgid.link/20240827093011.18621-14-nbd@nbd.name Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt7915')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7915/mcu.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
index 2ef8d90132dd..0cde1b3c7d41 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
@@ -191,11 +191,6 @@ mt7915_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
{
struct mt7915_dev *dev = container_of(mdev, struct mt7915_dev, mt76);
enum mt76_mcuq_id qid;
- int ret;
-
- ret = mt76_connac2_mcu_fill_message(mdev, skb, cmd, wait_seq);
- if (ret)
- return ret;
if (cmd == MCU_CMD(FW_SCATTER))
qid = MT_MCUQ_FWDL;
@@ -2382,7 +2377,9 @@ int mt7915_mcu_init_firmware(struct mt7915_dev *dev)
int mt7915_mcu_init(struct mt7915_dev *dev)
{
static const struct mt76_mcu_ops mt7915_mcu_ops = {
+ .max_retry = 3,
.headroom = sizeof(struct mt76_connac2_mcu_txd),
+ .mcu_skb_prepare_msg = mt76_connac2_mcu_fill_message,
.mcu_skb_send_msg = mt7915_mcu_send_message,
.mcu_parse_response = mt7915_mcu_parse_response,
};