Package: linux
Version: 6.12.88-1
Severity: important
Hardware: Lenovo IdeaPad, MediaTek MT7961 (USB ID 0e8d:e0cd)

Dear Maintainer,

Bluetooth has stopped working on my system after upgrading the kernel from
6.12.74+deb13+1 to 6.12.85+deb13 (and all subsequent versions up to and
including 6.12.88+deb13, the current one). Downgrading back to
6.12.74+deb13+1 restores Bluetooth functionality.

-- System information --

Kernel (broken):  6.12.88+deb13-amd64
Kernel (working): 6.12.74+deb13+1-amd64
Bluetooth chip:   MediaTek MT7961 (USB ID 0e8d:e0cd, PCI: mt7921e,
ASIC revision 79610010)
Firmware package: firmware-mediatek (reinstallation did not help)
Distro:           Debian 13 (trixie)

-- Symptom --

Bluetooth adapter is detected but fails to initialize. The following
errors appear in dmesg on the broken kernels:

  Bluetooth: hci0: HW/SW Version: 0x008a008a, Build Time: 20241106151414
  Bluetooth: hci0: Failed to send wmt func ctrl (-22)
  Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is
              advertised, but not supported.

rfkill shows no block (soft or hard). The bluetooth.service is running.
Reinstalling firmware-mediatek had no effect.

-- Bisection --

Working:  linux-image-6.12.74+deb13+1-amd64 (6.12.74-2)
Broken:   linux-image-6.12.85+deb13-amd64 (6.12.85-1) and all newer

All kernels between 6.12.75 and 6.12.84 were already removed from my
system (rc state), so I cannot bisect further without additional packages.

-- Related reports and upstream fix --

This is a known issue affecting MediaTek MT7921/MT7922/MT7961 chips across
multiple distributions. An upstream fix was submitted in December 2024:

  Subject: [PATCH] Bluetooth: btmtk: Fix failed to send func ctrl for
           MediaTek devices.
  Author:  Chris Lu <[email protected]>
  Fixes:   5c5e8c52e3ca ("Bluetooth: btmtk: move btusb_mtk_[setup,
           shutdown] to btmtk.c")
  URL:     
https://patchew.org/linux/[email protected]/

The fix adds usb_autopm_get_interface() / usb_autopm_put_interface()
calls in btmtk_usb_shutdown() to handle USB autosuspend correctly.

Similar reports:
  - Ubuntu: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2097139
  - Arch Linux: https://bbs.archlinux.org/viewtopic.php?id=313561

Thanks,
Roman Hocke

Reply via email to