MediaTek MT7922 Bluetooth not recognized

So since I had some time today, I figured I’d dig into why this was happening on my system. So on my system I was getting the following error when it attempted to load the bluetooth device:

Bluetooth: hci0: Opcode 0x c03 failed: -110

It looks like in my case all that was needed was to add support of my device into the btusb kernel module. Here’s what I had to do:

  1. I downloaded the kernel source for 6.5.0-rc1 since that was what I was testing with anyway. Before compiling the kernel, I looked up my bluetooth device using lsusb. It came back with this (note that, at least for my device, Foxconn / Hon Hai Wireless Device is a subsystem of the MediaTek MT7922):
Bus 001 Device 003: ID 0489:e102 Foxconn / Hon Hai Wireless_Device
  1. Checking drivers/bluetooth/btusb.c in the kernel source, I noticed that the Product ID (in my case e102) was missing from the file, so I made the following additions to the file:
+++ b/drivers/bluetooth/btusb.c
@@ -628,6 +628,9 @@ static const struct usb_device_id blacklist_table[] = {
        { USB_DEVICE(0x0489, 0xe0f2), .driver_info = BTUSB_MEDIATEK |
                                                     BTUSB_WIDEBAND_SPEECH |
                                                     BTUSB_VALID_LE_STATES },
+        { USB_DEVICE(0x0489, 0xe102), .driver_info = BTUSB_MEDIATEK |
+                                                     BTUSB_WIDEBAND_SPEECH |
+                                                     BTUSB_VALID_LE_STATES },
 
        /* Additional Realtek 8723AE Bluetooth devices */
        { USB_DEVICE(0x0930, 0x021d), .driver_info = BTUSB_REALTEK },

If you notice, there are entries in this file that require both the Vendor and Product ID. It looks like there are plenty of entries for the Vendor (0x0489), but I didn’t see my Product ID represented (0xe102 which corresponds to e102 in my device).

  1. I compiled the kernel with this change in mind and installed the kernel with its modules to the system.
  2. Rebooted into the new kernel, and now bluetooth works.

I suppose I can make a report against this, but not sure how to proceed. Different laptops/machines may have different Product IDs, so maybe there needs to be a list compiled of all the missing ones for this device.

In any case I hope that helps someone. And before someone asks, yes I tested bluetooth functionality with a 8bitdo controller and it worked just fine.

1 Like