Skip to content

Conversation

@zbowling
Copy link

@zbowling zbowling commented Jan 1, 2026

If the firmware loading process crashes or is interrupted after
acquiring the patch semaphore but before releasing it, subsequent
firmware load attempts will fail with Failed to get patch semaphore
because the semaphore is still held.

This issue manifests as devices becoming unusable after suspend/resume
failures or firmware crashes, requiring a full hardware reboot to
recover. This has been widely reported on MT7921 and MT7925 devices.

Apply the same fix that was applied to MT7915 in commit 79dd14f:

  1. Release the patch semaphore before starting firmware load (in case
    it was held by a previous failed attempt)
  2. Restart MCU firmware to ensure clean state
  3. Wait briefly for MCU to be ready

This fix applies to both MT7921 and MT7925 drivers which share the
mt792x_load_firmware() function.

Fixes: "Failed to get patch semaphore" errors after firmware crash

Related issues:

Reference: MT7915 fix commit 79dd14f

…rash

If the firmware loading process crashes or is interrupted after
acquiring the patch semaphore but before releasing it, subsequent
firmware load attempts will fail with 'Failed to get patch semaphore'
because the semaphore is still held.

This issue manifests as devices becoming unusable after suspend/resume
failures or firmware crashes, requiring a full hardware reboot to
recover. This has been widely reported on MT7921 and MT7925 devices.

Apply the same fix that was applied to MT7915 in commit 79dd14f:
1. Release the patch semaphore before starting firmware load (in case
   it was held by a previous failed attempt)
2. Restart MCU firmware to ensure clean state
3. Wait briefly for MCU to be ready

This fix applies to both MT7921 and MT7925 drivers which share the
mt792x_load_firmware() function.

Fixes: 'Failed to get patch semaphore' errors after firmware crash
Signed-off-by: Zac Bowling <zac@zacbowling.com>
zbowling added a commit to zbowling/mt7925 that referenced this pull request Jan 1, 2026
Applies same fix as MT7915 commit 79dd14f - release semaphore and restart
MCU before loading firmware to recover from failed previous load attempts.

Fixes 'Failed to get patch semaphore' errors that leave WiFi unusable
after firmware crashes or suspend/resume failures.

OpenWrt PR: openwrt/mt76#1040
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant