2024-06-01 13:18:06

by Marc Payne

[permalink] [raw]
Subject: [BUG] MT7921AUN: broken Bluetooth firmware?

Hi Chris,

I have been investigating a problem with my new Alfa Networks AWUS036AXML based
on the MT7921AUN (ASIC revision: 79610010), testing on both Arch Linux kernel
6.9.2 and have also compiled 6.10-rc1 using the Arch .config (olddefconfig).
Both of these builds have the fix for the recent issue where the btusb driver
was attempting to load a non-existent firmware file. That is not the issue here.

The AWUS036AXML device fails to enumerate when using the latest Bluetooth
firmware BT_RAM_CODE_MT7961_1_2_hdr.bin version 20240219111427. Relevant dmesg
output below shows the firmware loaded and the device then appears to become
unresponsive. On the WiFi side, I can see that mt7921u_probe() calls
usb_reset_device() but the reset never completes.

[ 152.838441] usb 4-3.2: new SuperSpeed USB device number 3 using xhci_hcd
[ 152.857243] usb 4-3.2: New USB device found, idVendor=0e8d, idProduct=7961, bcdDevice= 1.00
[ 152.857253] usb 4-3.2: New USB device strings: Mfr=6, Product=7, SerialNumber=8
[ 152.857256] usb 4-3.2: Product: Wireless_Device
[ 152.857258] usb 4-3.2: Manufacturer: MediaTek Inc.
[ 152.857260] usb 4-3.2: SerialNumber: 000000000
[ 152.876640] Bluetooth: hci1: HW/SW Version: 0x008a008a, Build Time: 20240219111427
[ 155.724422] Bluetooth: hci1: Device setup in 2793033 usecs
[ 155.724427] Bluetooth: hci1: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
[ 157.924923] Bluetooth: hci1: Opcode 0x0c03 failed: -110
[ 160.058375] Bluetooth: hci1: Failed to read MSFT supported features (-110)
[ 162.191627] Bluetooth: hci1: AOSP get vendor capabilities (-110)
[ 167.311755] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 172.644969] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 172.851546] usb 4-3.2: device not accepting address 3, error -62
[ 178.191602] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 183.524779] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 183.731437] usb 4-3.2: device not accepting address 3, error -62
[ 189.071351] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 194.404533] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 194.611138] usb 4-3.2: device not accepting address 3, error -62
[ 199.951188] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 205.284338] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 205.490868] usb 4-3.2: device not accepting address 3, error -62
[ 205.492271] usb 4-3.2: USB disconnect, device number 3
[ 205.493355] mt7921u 4-3.2:1.3: probe with driver mt7921u failed with error -5
[ 205.493526] usbcore: registered new interface driver mt7921u
[ 210.830779] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 216.164074] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 216.370640] usb 4-3.2: device not accepting address 4, error -62
[ 221.710510] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 227.043717] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 227.250328] usb 4-3.2: device not accepting address 5, error -62
[ 227.250902] usb 4-3-port2: attempt power cycle
[ 232.803541] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 238.136787] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 238.343260] usb 4-3.2: device not accepting address 6, error -62
[ 243.683076] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 249.016241] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 249.222864] usb 4-3.2: device not accepting address 7, error -62
[ 249.223440] usb 4-3-port2: unable to enumerate USB device


If I remove the BT_RAM_CODE_MT7961_1_2_hdr.bin firmware file, the device is
enumerated successfully and WiFi works, the Bluetooth controller is not
available, per the dmesg output:

[ 358.372419] usb 4-3.2: new SuperSpeed USB device number 8 using xhci_hcd
[ 358.390809] usb 4-3.2: New USB device found, idVendor=0e8d, idProduct=7961, bcdDevice= 1.00
[ 358.390825] usb 4-3.2: New USB device strings: Mfr=6, Product=7, SerialNumber=8
[ 358.390832] usb 4-3.2: Product: Wireless_Device
[ 358.390836] usb 4-3.2: Manufacturer: MediaTek Inc.
[ 358.390841] usb 4-3.2: SerialNumber: 000000000
[ 358.399664] bluetooth hci1: Direct firmware load for mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin failed with error -2
[ 358.399678] Bluetooth: hci1: Failed to load firmware file (-2)
[ 358.399683] Bluetooth: hci1: Failed to set up firmware (-2)
[ 358.399687] Bluetooth: hci1: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
[ 358.479828] usb 4-3.2: reset SuperSpeed USB device number 8 using xhci_hcd
[ 358.503178] bluetooth hci1: Direct firmware load for mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin failed with error -2
[ 358.503187] Bluetooth: hci1: Failed to load firmware file (-2)
[ 358.503190] Bluetooth: hci1: Failed to set up firmware (-2)
[ 358.503193] Bluetooth: hci1: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
[ 358.540080] mt7921u 4-3.2:1.3: HW/SW Version: 0x8a108a10, Build Time: 20240219110958a
[ 358.804074] mt7921u 4-3.2:1.3: WM Firmware Version: ____010000, Build Time: 20240219111038
[ 360.394590] mt7921u 4-3.2:1.3 wlp0s20f0u3u2i3: renamed from wlan0


I have tried older versions of the firmware file from the linux-firmware.git
repository and the most recent version that worked as expected was 20230526131214 (commit
185f49df055ae37db22ac0c3179dd45deae34879), dmesg output:

[ 812.319864] usb 4-3.2: new SuperSpeed USB device number 14 using xhci_hcd
[ 812.338553] usb 4-3.2: New USB device found, idVendor=0e8d, idProduct=7961, bcdDevice= 1.00
[ 812.338563] usb 4-3.2: New USB device strings: Mfr=6, Product=7, SerialNumber=8
[ 812.338566] usb 4-3.2: Product: Wireless_Device
[ 812.338567] usb 4-3.2: Manufacturer: MediaTek Inc.
[ 812.338569] usb 4-3.2: SerialNumber: 000000000
[ 812.347291] Bluetooth: hci1: HW/SW Version: 0x008a008a, Build Time: 20230526131214
[ 815.004726] Bluetooth: hci1: Device setup in 2596683 usecs
[ 815.004730] Bluetooth: hci1: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
[ 817.116351] Bluetooth: hci1: Opcode 0x0c03 failed: -110
[ 819.249711] Bluetooth: hci1: Failed to read MSFT supported features (-110)
[ 821.382922] Bluetooth: hci1: AOSP get vendor capabilities (-110)
[ 821.457115] usb 4-3.2: reset SuperSpeed USB device number 14 using xhci_hcd
[ 821.481680] Bluetooth: hci1: HW/SW Version: 0x008a008a, Build Time: 20230526131214
[ 821.506714] mt7921u 4-3.2:1.3: HW/SW Version: 0x8a108a10, Build Time: 20240219110958a
[ 821.605008] Bluetooth: hci1: Device setup in 122221 usecs
[ 821.605021] Bluetooth: hci1: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
[ 821.763117] mt7921u 4-3.2:1.3: WM Firmware Version: ____010000, Build Time: 20240219111038
[ 821.840029] Bluetooth: hci1: AOSP extensions version v1.00
[ 821.840040] Bluetooth: hci1: AOSP quality report is supported
[ 821.840453] Bluetooth: MGMT ver 1.22
[ 823.355497] mt7921u 4-3.2:1.3 wlp0s20f0u3u2i3: renamed from wlan0


I believe the three timed-out hci commands are the result of the device reset.
Once the reset is completed everything works.

Based on my experience detailed above, this doesn’t seem to be a case of faulty
hardware. In fact, it appears that I’m not the only user experiencing this
issue, similar reports [1], [2]. It seems surprising that multiple firmware
versions have now been released that are incompatible with the MT7921AUN.

Is Mediatek aware of any issues with this firmware?

Why do firmware versions dated before 20231109191416 work fine?

Was a change made after version 20230526131214 that could have caused an
incompatibility with the MT7921AUN?

I’d be grateful for any insight and solutions that you can provide.

Thanks,

Marc

[1] https://forum.garudalinux.org/t/problem-with-alfa-mediatek-wifi-awus036axml-mt7961/34098
[2] https://bbs.archlinux.org/viewtopic.php?id=292420


--
Marc Payne