u/rugelii09

MediaTek MT7921 Bluetooth not initializing (00:00:00:00:00:00) on Linux kernels > 7.0.5 (NixOS)

Hi,

I’m running NixOS on a laptop with a MediaTek MT7921 (USB ID 13d3:3563). I’m debugging a Bluetooth regression affecting this device across multiple kernel versions.

Problem

Bluetooth is detected but does not initialize correctly on certain kernel versions.

Symptoms:

  • hci0 exists but is unusable
  • BD address shows 00:00:00:00:00:00
  • no Bluetooth controller visible in bluetoothctl
  • hciconfig shows empty features and DOWN state
  • dmesg error: Failed to send wmt func ctrl (-22)

WiFi (mt7921e) works normally.

What I tested

  • Kernel 7.0.5 → Bluetooth works
  • Kernel 7.0.8 → Bluetooth breaks
  • Kernel 6.18.28 → Bluetooth works
  • Kernel 6.18.31 → Bluetooth breaks
  • Downgrading kernel does not reliably fix the issue once broken
  • Full power cycle (shutdown)
  • Reloading btusb / btmtk
  • No missing firmware errors in dmesg

System: NixOS (nixpkgs-managed kernels, reproducible configuration)

Question

Is this a known regression or instability in the MediaTek MT7921 Bluetooth driver (btmtk) across recent Linux kernel versions?

Is there a recommended stable kernel / firmware combination for this chipset?

Any known workaround besides pinning a specific working kernel version?

Thanks

reddit.com
u/rugelii09 — 5 days ago