[PATCH v1 2/2] Bluetooth: hci_ll: Add DT property to disable enhanced SCO setup

From: Stefano Radaelli

Date: Mon Feb 23 2026 - 06:57:28 EST


The HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN quirk was introduced by
commit 05abad857277 ("Bluetooth: HCI: Add
HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN quirk") to handle controllers
that advertise support for the HCI Enhanced Setup Synchronous Connection
command but fail to use it properly with some SCO configurations (e.g.
BT_VOICE_TRANSPARENT/mSBC).

This behavior has been observed on TI controllers used with the
hci_ll driver, where SCO setup can fail unless the enhanced setup path
is avoided.

Add support for the optional DT property "ti,no-enhanced-setup-sync-conn"
and, when present, set HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN during
controller setup, as intended by the quirk documentation.

Signed-off-by: Stefano Radaelli <stefano.r@xxxxxxxxxxxxx>
---
drivers/bluetooth/hci_ll.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/drivers/bluetooth/hci_ll.c b/drivers/bluetooth/hci_ll.c
index 91acf24f1ef5..5f69f0654c19 100644
--- a/drivers/bluetooth/hci_ll.c
+++ b/drivers/bluetooth/hci_ll.c
@@ -68,6 +68,7 @@ struct ll_device {
struct gpio_desc *enable_gpio;
struct clk *ext_clk;
bdaddr_t bdaddr;
+ bool broken_enhanced_setup;
};

struct ll_struct {
@@ -656,6 +657,10 @@ static int ll_setup(struct hci_uart *hu)
hci_set_quirk(hu->hdev, HCI_QUIRK_INVALID_BDADDR);
}

+ if (lldev->broken_enhanced_setup)
+ hci_set_quirk(hu->hdev,
+ HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN);
+
/* Operational speed if any */
if (hu->oper_speed)
speed = hu->oper_speed;
@@ -710,6 +715,10 @@ static int hci_ti_probe(struct serdev_device *serdev)
of_property_read_u32(serdev->dev.of_node, "max-speed", &max_speed);
hci_uart_set_speeds(hu, 115200, max_speed);

+ lldev->broken_enhanced_setup =
+ of_property_read_bool(serdev->dev.of_node,
+ "ti,no-enhanced-setup-sync-conn");
+
/* optional BD address from nvram */
bdaddr_cell = nvmem_cell_get(&serdev->dev, "bd-address");
if (IS_ERR(bdaddr_cell)) {
--
2.47.3