summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Wang <sean.wang@mediatek.com>2026-02-19 03:40:03 +0300
committerFelix Fietkau <nbd@nbd.name>2026-03-24 18:49:29 +0300
commit9eef868b86db32d40e4a45f407af8aa1e4e4e830 (patch)
treecd82fe92f79190badc1288264398672f3b7e092d
parent14a7ba034fcd9d1766503ef44cc491c6fda8db2c (diff)
downloadlinux-9eef868b86db32d40e4a45f407af8aa1e4e4e830.tar.xz
wifi: mt76: mt792x: ensure MCU ready before ROM patch download
Restart the MCU and poll FW state to ensure correct MCU status before downloading the ROM patch. This is a prerequisite for enabling MT7902 PCIe and has been validated on MT7921 and MT7925 since they share the common code path. Signed-off-by: Sean Wang <sean.wang@mediatek.com> Link: https://patch.msgid.link/20260219004007.19733-7-sean.wang@kernel.org Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt792x_core.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt792x_core.c b/drivers/net/wireless/mediatek/mt76/mt792x_core.c
index 2142fcc4ae27..152cfcca2f90 100644
--- a/drivers/net/wireless/mediatek/mt76/mt792x_core.c
+++ b/drivers/net/wireless/mediatek/mt76/mt792x_core.c
@@ -926,6 +926,13 @@ int mt792x_load_firmware(struct mt792x_dev *dev)
{
int ret;
+ mt76_connac_mcu_restart(&dev->mt76);
+
+ if (!mt76_poll_msec(dev, MT_CONN_ON_MISC, MT_TOP_MISC_FW_STATE,
+ MT_TOP_MISC2_FW_PWR_ON, 1000))
+ dev_warn(dev->mt76.dev,
+ "MCU is not ready for firmware download\n");
+
ret = mt76_connac2_load_patch(&dev->mt76, mt792x_patch_name(dev));
if (ret)
return ret;