diff options
| author | Felix Fietkau <nbd@nbd.name> | 2024-08-27 11:30:01 +0200 |
|---|---|---|
| committer | Felix Fietkau <nbd@nbd.name> | 2024-09-06 14:23:06 +0200 |
| commit | 3688c18b65aeb2a1f2fde108400afbab129a8cc1 (patch) | |
| tree | a434e7aba8f275f1debeb92095c712ba17de740b /drivers/net/wireless/mediatek/mt76/mt7915 | |
| parent | 8351a4a40bdde127ef806e1017aefdb360978f93 (diff) | |
| download | linux-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.c | 7 |
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, }; |
