summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/mediatek/mt76/mt7925
diff options
context:
space:
mode:
authorSean Wang <sean.wang@mediatek.com>2026-06-13 17:41:26 -0500
committerFelix Fietkau <nbd@nbd.name>2026-07-31 12:25:37 +0000
commit7e87dc3b2157967b14ded97129e677a764573ec7 (patch)
treea32d7d4523130a7541c7f9e094268ad90c949846 /drivers/net/wireless/mediatek/mt76/mt7925
parent70869cc429fffc77de51e7777c0ecb651e8fca07 (diff)
downloadlinux-next-7e87dc3b2157967b14ded97129e677a764573ec7.tar.gz
linux-next-7e87dc3b2157967b14ded97129e677a764573ec7.zip
wifi: mt76: mt7925: stop init retries on hung bus
Stop retrying hardware init once the bus is marked hung. The control path is no longer usable at that point, so more retries only issue failing device accesses, including MCU commands or register operations, and delay teardown. Exit early and let the failed device be torn down quickly. Signed-off-by: Sean Wang <sean.wang@mediatek.com> Link: https://patch.msgid.link/20260613224131.2396026-2-sean.wang@kernel.org Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt7925')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7925/init.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/init.c b/drivers/net/wireless/mediatek/mt76/mt7925/init.c
index 1b44f5c8fb0d..cd22fcc021b1 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7925/init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7925/init.c
@@ -137,10 +137,18 @@ static int mt7925_init_hardware(struct mt792x_dev *dev)
set_bit(MT76_STATE_INITIALIZED, &dev->mphy.state);
for (i = 0; i < MT792x_MCU_INIT_RETRY_COUNT; i++) {
+ if (atomic_read(&dev->mt76.bus_hung)) {
+ ret = -EIO;
+ break;
+ }
+
ret = __mt7925_init_hardware(dev);
if (!ret)
break;
+ if (atomic_read(&dev->mt76.bus_hung))
+ break;
+
mt792x_init_reset(dev);
}