MT7902 Bluetooth (0489:e156) not supported - btusb/btmtk
Kaiser Bh <[email protected]>
| Newsgroups | org.kernel.vger.linux-bluetooth |
|---|---|
| Message-ID | <[email protected]> |
Reporting this rather than submitting a patch. Happy for a maintainer to
pick these up.
Hardware: Minisforum UM880 Plus, MediaTek combo card
(BT reports hardware variant 0x7902; Wi-Fi binds mt7921e)
USB ID: 0489:e156 (Foxconn/Hon Hai)
Kernel: 7.1.8 (also tested 6.18.44-lts)
Symptom without patch:
Bluetooth: hci0: Opcode 0x0c03 failed: -110
No controller appears; Wi-Fi (mt7921e) works fine.
Two issues found:
1. drivers/bluetooth/btusb.c
USB ID 0489:e156 is missing from the device table. Neighbouring
IDs (0xe153, 0xe158) are present with BTUSB_MEDIATEK. Without the
entry, btusb binds via the generic vendor/interface rule but
without BTUSB_MEDIATEK, so btmtk setup never runs.
Adding:
{ USB_DEVICE(0x0489, 0xe156), .driver_info = BTUSB_MEDIATEK |
BTUSB_WIDEBAND_SPEECH },
changes the error to:
Bluetooth: hci0: Unsupported hardware variant (00007902)
2. drivers/bluetooth/btmtk.c
Hardware variant 0x7902 is not handled in the setup switch.
Firmware BT_RAM_CODE_MT7902_1_1_hdr.bin already ships in
linux-firmware, and btmtk_fw_get_filename() generates the correct
path via the default branch.
Adding `case 0x7902:` alongside 0x7922/0x7925/0x7961 results in:
Bluetooth: hci0: HW/SW Version: 0x008a008a, Build Time: 20250826211444
Bluetooth: hci0: Device setup in 2312557 usecs
Controller then works normally; DualSense pairs and functions.
Grouping 0x7902 with the existing 79xx case works on my hardware,
but a maintainer may want to confirm this is the correct handling.
Both changes tested on 6.18.44-lts, 7.1.8-arch1 and 7.1.8-zen via DKMS.
Kind Regards,
Kaiser Bh