No Bluetooth Under Kernel 7.1.0-rc3 with MediaTek MT7925

Thread title says it all.

Journal booting 7.1.0-rc3

❯ journalctl -b -2 -p3 --no-pager
May 11 22:13:40 cachyos kernel: virt/tdx: TDX not supported by the host platform
May 11 22:13:49 FW13 kernel: Bluetooth: hci0: Failed to send wmt func ctrl (-22)
May 11 22:13:50 FW13 kernel: ucsi_acpi USBC000:00: unknown error 0
May 11 22:13:50 FW13 kernel: ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
May 11 22:13:50 FW13 kernel: ucsi_acpi USBC000:00: unknown error 256
May 11 22:13:50 FW13 kernel: ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
May 11 22:13:54 FW13 systemd-cryptsetup[766]: Cannot use device /dev/disk/by-uuid/82ad6a11-6457-4ac3-ad94-898e0761eafc which is in use (already mapped or mounted).
May 11 22:13:54 FW13 systemd-cryptsetup[766]: Failed to activate with key file '/crypto_keyfile.bin': Device or resource busy
May 11 22:13:54 FW13 systemd[1]: Failed to start Cryptography Setup for luks-82ad6a11-6457-4ac3-ad94-898e0761eafc.
May 11 22:13:54 FW13 dbus-broker-launch[1034]: Ignoring duplicate name 'org.freedesktop.FileManager1' in service file '/usr/share//dbus-1/services/org.kde.dolphin.FileManager1.service'
May 11 22:14:03 FW13 plasmalogin-helper[1215]: gkr-pam: unable to locate daemon control file
May 11 22:14:03 FW13 dbus-broker-launch[1243]: Ignoring duplicate name 'org.freedesktop.FileManager1' in service file '/usr/share//dbus-1/services/org.kde.dolphin.FileManager1.service'
May 11 22:14:03 FW13 systemd[1221]: Failed to start User folders update.
May 11 22:14:05 FW13 org_kde_powerdevil[1622]: [  1622][  1.102792] Time since library initialized:   1.102791 seconds
May 11 22:14:05 FW13 org_kde_powerdevil[1622]: [  1622][  1.102795] Extra delay starting dw_start_watch_displays: 0 millisec
May 11 22:19:20 FW13 dbus-broker-launch[908]: Activation request for 'org.bluez' failed.
May 11 22:19:20 FW13 dbus-broker-launch[908]: Activation request for 'org.bluez' failed.
May 11 22:19:21 FW13 dbus-broker-launch[908]: Activation request for 'org.freedesktop.nm_dispatcher' failed.
May 11 22:19:21 FW13 dbus-broker-launch[908]: Activation request for 'org.freedesktop.nm_dispatcher' failed.
May 11 22:19:21 FW13 dbus-broker-launch[908]: Activation request for 'org.freedesktop.nm_dispatcher' failed.
May 11 22:19:21 FW13 dbus-broker-launch[908]: Activation request for 'org.freedesktop.nm_dispatcher' failed.

Subset of inxi 7.1.0-rc3:

System:
  Kernel: 7.1.0-rc3-1-cachyos-rc arch: x86_64 bits: 64 compiler: clang
    v: 22.1.5 clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-linux-cachyos-rc
    root=UUID=9c99f672-37ba-42f9-bfef-7a2f44dea2af rw nowatchdog
    nvme_load=YES zswap.enabled=0 rd.luks.key=/crypto_keyfile.bin
    rd.luks.name=82ad6a11-6457-4ac3-ad94-898e0761eafc=root
    root=/dev/mapper/root rd.udev.log_priority=3 loglevel=3 mitigations=off
  Desktop: KDE Plasma v: 6.6.4 tk: Qt v: N/A info: frameworks v: 6.26.0
    wm: kwin_wayland with: krunner vt: 2 dm: N/A Distro: CachyOS
    base: Arch Linux
Machine:
  Type: Laptop System: Framework product: Laptop 13 (AMD Ryzen 7040Series)
    v: A7 serial: <superuser required>
  Mobo: Framework model: FRANMDCP07 v: A7 serial: <superuser required>
    part-nu: FRANDGCP07 uuid: <superuser required> Firmware: UEFI vendor: INSYDE
    v: 03.18 date: 01/08/2026
    
Network:
  Device-1: MEDIATEK MT7925 Wi-Fi 7 160MHz driver: mt7925e v: kernel pcie:
    gen: 2 speed: 5 GT/s lanes: 1 bus-ID: 01:00.0 chip-ID: 14c3:0717
    class-ID: 0280
  IF: wlan0 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: dynamic noprefixroute scope: global
  IP v6: <filter> type: noprefixroute scope: link
  IF-ID-1: ipv6leakintrf0 state: unknown speed: N/A duplex: N/A
    mac: <filter>
  IP v6: <filter> type: noprefixroute scope: global
  IP v6: <filter> type: noprefixroute scope: link
  IF-ID-2: proton0 state: unknown speed: N/A duplex: N/A mac: N/A
  IP v4: <filter> type: noprefixroute scope: global
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
  WAN IP: <filter>

  Bluetooth:
  Device-1: MediaTek Wireless_Device driver: btusb v: 0.8 type: USB rev: 2.1
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-5:3 chip-ID: 0e8d:0717
    class-ID: e001 serial: <filter>
  Report: hciconfig ID: hci0 rfk-id: 0 state: down
    bt-service: enabled,running rfk-block: hardware: no software: no
    address: <filter>
  Info: acl-mtu: 0:0 sco-mtu: 0:0 link-mode: peripheral accept

Journal booting 7.0.6-1

> journalctl -b -p3 --no-pager
May 11 22:26:32 FW13 kernel: ucsi_acpi USBC000:00: unknown error 0
May 11 22:26:32 FW13 kernel: ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
May 11 22:26:32 FW13 kernel: ucsi_acpi USBC000:00: unknown error 256
May 11 22:26:32 FW13 kernel: ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
May 11 22:26:35 FW13 systemd-cryptsetup[765]: Cannot use device /dev/disk/by-uuid/82ad6a11-6457-4ac3-ad94-898e0761eafc which is in use (already mapped or mounted).
May 11 22:26:35 FW13 systemd-cryptsetup[765]: Failed to activate with key file '/crypto_keyfile.bin': Device or resource busy
May 11 22:26:35 FW13 systemd[1]: Failed to start Cryptography Setup for luks-82ad6a11-6457-4ac3-ad94-898e0761eafc.
May 11 22:26:36 FW13 bluetoothd[916]: Failed to set default system config for hci0
May 11 22:26:36 FW13 dbus-broker-launch[1043]: Ignoring duplicate name 'org.freedesktop.FileManager1' in service file '/usr/share//dbus-1/services/org.kde.dolphin.FileManager1.service'
May 11 22:26:42 FW13 plasmalogin-helper[1224]: gkr-pam: unable to locate daemon control file
May 11 22:26:42 FW13 dbus-broker-launch[1253]: Ignoring duplicate name 'org.freedesktop.FileManager1' in service file '/usr/share//dbus-1/services/org.kde.dolphin.FileManager1.service'
May 11 22:26:42 FW13 kwin_wayland[1045]: Applying output configuration failed!
May 11 22:26:42 FW13 systemd[1231]: Failed to start User folders update.
May 11 22:26:44 FW13 org_kde_powerdevil[1632]: [  1632][  1.085328] Time since library initialized:   1.085328 seconds
May 11 22:26:44 FW13 org_kde_powerdevil[1632]: [  1632][  1.085330] Extra delay starting dw_start_watch_displays: 0 millisec

Subset of inxi 7.0.6-1

System:
  Kernel: 7.0.6-1-cachyos arch: x86_64 bits: 64 compiler: clang v: 22.1.5
    clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-linux-cachyos
    root=UUID=9c99f672-37ba-42f9-bfef-7a2f44dea2af rw nowatchdog
    nvme_load=YES zswap.enabled=0 rd.luks.key=/crypto_keyfile.bin
    rd.luks.name=82ad6a11-6457-4ac3-ad94-898e0761eafc=root
    root=/dev/mapper/root rd.udev.log_priority=3 loglevel=3 mitigations=off
  Desktop: KDE Plasma v: 6.6.4 tk: Qt v: N/A info: frameworks v: 6.26.0
    wm: kwin_wayland vt: 2 dm: N/A Distro: CachyOS base: Arch Linux
Machine:
  Type: Laptop System: Framework product: Laptop 13 (AMD Ryzen 7040Series)
    v: A7 serial: <superuser required>
  Mobo: Framework model: FRANMDCP07 v: A7 serial: <superuser required>
    part-nu: FRANDGCP07 uuid: <superuser required> Firmware: UEFI vendor: INSYDE
    v: 03.18 date: 01/08/2026
    
Network:
  Device-1: MEDIATEK MT7925 Wi-Fi 7 160MHz driver: mt7925e v: kernel pcie:
    gen: 2 speed: 5 GT/s lanes: 1 bus-ID: 01:00.0 chip-ID: 14c3:0717
    class-ID: 0280
  IF: wlan0 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: dynamic noprefixroute scope: global
  IP v6: <filter> type: noprefixroute scope: link
  IF-ID-1: ipv6leakintrf0 state: unknown speed: N/A duplex: N/A
    mac: <filter>
  IP v6: <filter> type: noprefixroute scope: global
  IP v6: <filter> type: noprefixroute scope: link
  IF-ID-2: proton0 state: unknown speed: N/A duplex: N/A mac: N/A
  IP v4: <filter> type: noprefixroute scope: global
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
  WAN IP: <filter>
Bluetooth:
  Device-1: MediaTek Wireless_Device driver: btusb v: 0.8 type: USB rev: 2.1
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-5:3 chip-ID: 0e8d:0717
    class-ID: e001 serial: <filter>
  Report: hciconfig ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 5.4
    lmp-v: 13 sub-v: 2601 hci-v: 13 rev: 615 class-ID: 6c010c
  Info: acl-mtu: 1021:8 sco-mtu: 240:8 link-policy: rswitch sniff
    link-mode: peripheral accept service-classes: rendering, capturing, audio,
    telephony

Under 7.1.0-rc3, in Plama’s System Settings under Bluetooth, all three “Enable” switches boot to the off position. Sliding them to on looks fine in System Settings, everything then says “Enabled”, but BT does not actually turn on.

EDIT: Forgot to note that under 7.1.0-rc2 Bluetooth worked just fine.

I have the same issue but with a MT7902.

This particular chipset only has support in 7.1 that I can tell. So going back to the release kernel isn’t exactly an option for my system, as with the current 7.0.6 I don’t get WiFi or BT at all. I did have to grab the firmware from the upstream linux-firmware repo to make it work at first, since there isn’t a linux-firmware-rc package that I know of.

Updated the kernel to rc3 today and no BT anymore. WiFi is still working fine.

I get the same error

FW13 kernel: Bluetooth: hci0: Failed to send wmt func ctrl (-22)

Rolled back to rc2 for now.

Not sure where to report this to.

Seems like it is at least known upstream. And there does seem to be a patch.

If anyone wants to build the CachyOS RC kernel with the patch it’s pretty simple.

Clone the CachyOS kernel repo, and drop the patch next to the pkgbuild in the linux-cachyos-rc folder. Add it to the source in the pkgbuild and run makepkg -sri

--- a/drivers/bluetooth/btmtk.c	2026-05-13 22:10:05.584145083 -0400
+++ b/drivers/bluetooth/btmtk.c	2026-05-13 22:10:47.668403231 -0400
@@ -719,8 +719,10 @@
 	case BTMTK_WMT_FUNC_CTRL:
 		if (!skb_pull_data(data->evt_skb,
 				   sizeof(wmt_evt_funcc->status))) {
-			err = -EINVAL;
-			goto err_free_skb;
+			bt_dev_dbg(hdev,
+				"FUNC_CTRL event without status, assuming UNDONE");
+			status = BTMTK_WMT_ON_UNDONE;
+			break;
 		}
 
 		wmt_evt_funcc = (struct btmtk_hci_wmt_evt_funcc *)wmt_evt;

FWIW, it appears to be fixed in Linux 7.1.0-rc6-1-cachyos-rc. Running and posting from it now.