diff options
| author | Sean Wang <sean.wang@mediatek.com> | 2026-06-13 17:41:26 -0500 |
|---|---|---|
| committer | Felix Fietkau <nbd@nbd.name> | 2026-07-31 12:25:37 +0000 |
| commit | 7e87dc3b2157967b14ded97129e677a764573ec7 (patch) | |
| tree | a32d7d4523130a7541c7f9e094268ad90c949846 /drivers/net/wireless/mediatek/mt76/mt7925 | |
| parent | 70869cc429fffc77de51e7777c0ecb651e8fca07 (diff) | |
| download | linux-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.c | 8 |
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); } |
