* [PATCH 1/2] Revert "Bluetooth: btusb: mediatek: reset the controller before downloading the fw"
@ 2025-03-08 19:32 Geoffrey D. Bennett
2025-03-08 19:37 ` [1/2] " bluez.test.bot
0 siblings, 1 reply; 2+ messages in thread
From: Geoffrey D. Bennett @ 2025-03-08 19:32 UTC (permalink / raw)
To: Marcel Holtmann, Luiz Augusto von Dentz, Luiz Augusto von Dentz,
Hao Qin
Cc: linux-bluetooth, Sean Wang, Chris Lu, linux-sound,
Benedikt Ziemons
This reverts commit ccfc8948d7e4d93cab341a99774b24586717d89a.
The MediaTek Bluetooth controller reset that was added is causing
Focusrite USB audio devices to fail to initialise when connected
during boot on kernels 6.11 and newer.
The issue was reported by three users, with Scarlett 2nd Gen 6i6 and
3rd Gen Solo and 4i4 audio interfaces. Two of the reporters confirmed
they have an MT7922.
The issue causes the interface to not work when connected at boot
time, with errors like this observed in dmesg:
usb 3-4: parse_audio_format_rates_v2v3(): unable to find clock source (clock -110)
usb 3-4: uac_clock_source_is_valid(): cannot get clock validity for id 41
usb 3-4: clock source 41 is not valid, cannot use
The problem only occurs when both devices and kernel modules are
present and loaded during system boot, so it can be worked around by
connecting the audio interface after booting.
Fixes: ccfc8948d7e4 ("Bluetooth: btusb: mediatek: reset the controller before downloading the fw")
Closes: https://github.com/geoffreybennett/linux-fcp/issues/24
Bisected-by: Benedikt Ziemons <ben@rs485.network>
Tested-by: Benedikt Ziemons <ben@rs485.network>
Cc: stable@vger.kernel.org
Signed-off-by: Geoffrey D. Bennett <g@b4.vu>
---
drivers/bluetooth/btmtk.c | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/drivers/bluetooth/btmtk.c b/drivers/bluetooth/btmtk.c
index 68846c5bd4f7..4390fd571dbd 100644
--- a/drivers/bluetooth/btmtk.c
+++ b/drivers/bluetooth/btmtk.c
@@ -1330,13 +1330,6 @@ int btmtk_usb_setup(struct hci_dev *hdev)
break;
case 0x7922:
case 0x7925:
- /* Reset the device to ensure it's in the initial state before
- * downloading the firmware to ensure.
- */
-
- if (!test_bit(BTMTK_FIRMWARE_LOADED, &btmtk_data->flags))
- btmtk_usb_subsys_reset(hdev, dev_id);
- fallthrough;
case 0x7961:
btmtk_fw_get_filename(fw_bin_name, sizeof(fw_bin_name), dev_id,
fw_version, fw_flavor);
@@ -1345,12 +1338,9 @@ int btmtk_usb_setup(struct hci_dev *hdev)
btmtk_usb_hci_wmt_sync);
if (err < 0) {
bt_dev_err(hdev, "Failed to set up firmware (%d)", err);
- clear_bit(BTMTK_FIRMWARE_LOADED, &btmtk_data->flags);
return err;
}
- set_bit(BTMTK_FIRMWARE_LOADED, &btmtk_data->flags);
-
/* It's Device EndPoint Reset Option Register */
err = btmtk_usb_uhw_reg_write(hdev, MTK_EP_RST_OPT,
MTK_EP_RST_IN_OUT_OPT);
--
2.45.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-03-08 19:37 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-08 19:32 [PATCH 1/2] Revert "Bluetooth: btusb: mediatek: reset the controller before downloading the fw" Geoffrey D. Bennett
2025-03-08 19:37 ` [1/2] " bluez.test.bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox