From: "Geoffrey D. Bennett" <g@b4.vu>
To: Marcel Holtmann <marcel@holtmann.org>,
Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>,
Hao Qin <hao.qin@mediatek.com>
Cc: linux-bluetooth@vger.kernel.org,
Sean Wang <sean.wang@mediatek.com>,
Chris Lu <chris.lu@mediatek.com>,
linux-sound@vger.kernel.org, Benedikt Ziemons <ben@rs485.network>,
pmenzel@molgen.mpg.de, tiwai@suse.de, geraldogabriel@gmail.com,
regressions@lists.linux.dev, gregkh@linuxfoundation.org
Subject: [PATCH v2] Revert "Bluetooth: btusb: mediatek: reset the controller before downloading the fw"
Date: Fri, 28 Mar 2025 07:22:06 +1030 [thread overview]
Message-ID: <Z+W6dmZFfC7SBhza@m.b4.vu> (raw)
This reverts commit ccfc8948d7e4d93cab341a99774b24586717d89a.
The MediaTek Bluetooth controller reset that was added increases the
Bluetooth device setup time from ~200ms to ~20s and interferes with
other devices on the bus.
Three users (with Focusrite Scarlett 2nd Gen 6i6 and 3rd Gen Solo and
4i4 audio interfaces) reported that since 6.11 (which added this
commit) their audio interface fails to initialise if connected during
boot. Two of the users confirmed they have an MT7922.
Errors like this are observed in dmesg for the audio interface:
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>
---
Changelog:
v1 -> v2:
- Updated commit message with additional information.
- No change to this patch's diff.
- Dropped alternate patch that only reverted for 0x7922.
- Chris, Sean, Hao agreed to reverting the change:
https://lore.kernel.org/linux-bluetooth/2025031352-octopus-quadrant-f7ca@gregkh/T/#m0b31a9a8e87b9499e1ec3370c08f03e43bfb54bf
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
next reply other threads:[~2025-03-27 21:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-27 20:52 Geoffrey D. Bennett [this message]
2025-03-27 21:15 ` [v2] Revert "Bluetooth: btusb: mediatek: reset the controller before downloading the fw" bluez.test.bot
2025-03-27 22:14 ` [PATCH v2] " Geoffrey D. Bennett
2025-05-08 7:30 ` [STABLE 6.12/6.14] Bluetooth MediaTek controller reset fixes Geoffrey D. Bennett
2025-05-12 13:56 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z+W6dmZFfC7SBhza@m.b4.vu \
--to=g@b4.vu \
--cc=ben@rs485.network \
--cc=chris.lu@mediatek.com \
--cc=geraldogabriel@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hao.qin@mediatek.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=luiz.dentz@gmail.com \
--cc=luiz.von.dentz@intel.com \
--cc=marcel@holtmann.org \
--cc=pmenzel@molgen.mpg.de \
--cc=regressions@lists.linux.dev \
--cc=sean.wang@mediatek.com \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox