public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/2] Bluetooth: hci_ll: Add DT control for enhanced SCO setup erratum
@ 2026-02-23 11:52 Stefano Radaelli
  2026-02-23 11:52 ` [PATCH v1 1/2] dt-bindings: net: bluetooth: ti: Add property " Stefano Radaelli
  2026-02-23 11:52 ` [PATCH v1 2/2] Bluetooth: hci_ll: Add DT property to disable enhanced SCO setup Stefano Radaelli
  0 siblings, 2 replies; 7+ messages in thread
From: Stefano Radaelli @ 2026-02-23 11:52 UTC (permalink / raw)
  To: linux-kernel, devicetree, linux-bluetooth
  Cc: pierluigi.p, Stefano Radaelli, Marcel Holtmann,
	Luiz Augusto von Dentz, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, David Lechner

While validating SCO audio on a platform using TI WL183x Bluetooth
modules with the hci_ll driver, we observed failures when the
HCI Enhanced Setup Synchronous Connection command was used.

Although the controller advertises support for the command, SCO setup
fails in certain configurations (e.g. BT_VOICE_TRANSPARENT/mSBC).
This matches the scenario described in commit 05abad857277
("Bluetooth: HCI: Add HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN quirk").

Initially, we considered setting the
HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN quirk unconditionally in
hci_ll. However, this would affect all TI controllers handled by the
driver, including configurations where the enhanced setup command
works correctly.

To avoid hardcoding the quirk globally, this series introduces an
optional DT property that describes the controller limitation and
allows enabling the quirk on affected boards only.

Patch 1 updates the TI Bluetooth DT binding.
Patch 2 adds support for the property in hci_ll and sets the quirk
during controller setup when requested.

Tested on VAR-SOM-MX6 using TI WL183x modules where SCO audio was
previously failing.

Comments welcome.

Stefano Radaelli (2):
  dt-bindings: net: bluetooth: ti: Add property for enhanced SCO setup
    erratum
  Bluetooth: hci_ll: Add DT property to disable enhanced SCO setup

 .../devicetree/bindings/net/bluetooth/ti,bluetooth.yaml  | 7 +++++++
 drivers/bluetooth/hci_ll.c                               | 9 +++++++++
 2 files changed, 16 insertions(+)


base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
-- 
2.47.3


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v1 1/2] dt-bindings: net: bluetooth: ti: Add property for enhanced SCO setup erratum
  2026-02-23 11:52 [PATCH v1 0/2] Bluetooth: hci_ll: Add DT control for enhanced SCO setup erratum Stefano Radaelli
@ 2026-02-23 11:52 ` Stefano Radaelli
  2026-02-23 12:03   ` Krzysztof Kozlowski
  2026-02-23 11:52 ` [PATCH v1 2/2] Bluetooth: hci_ll: Add DT property to disable enhanced SCO setup Stefano Radaelli
  1 sibling, 1 reply; 7+ messages in thread
From: Stefano Radaelli @ 2026-02-23 11:52 UTC (permalink / raw)
  To: linux-kernel, devicetree, linux-bluetooth
  Cc: pierluigi.p, Stefano Radaelli, Marcel Holtmann,
	Luiz Augusto von Dentz, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, David Lechner

From: Stefano Radaelli <stefano.r@variscite.com>

Some Bluetooth controller/firmware combinations advertise support for the
HCI Enhanced Setup Synchronous Connection command but do not handle it
correctly for SCO setup in certain configurations (e.g.
BT_VOICE_TRANSPARENT/mSBC). This results in SCO audio not working unless
the enhanced setup path is avoided.

Add an optional boolean property, ti,no-enhanced-setup-sync-conn, to
describe this controller limitation.

Signed-off-by: Stefano Radaelli <stefano.r@variscite.com>
---
 .../devicetree/bindings/net/bluetooth/ti,bluetooth.yaml    | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/bluetooth/ti,bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/ti,bluetooth.yaml
index 290abc22e18a..92ed443cb427 100644
--- a/Documentation/devicetree/bindings/net/bluetooth/ti,bluetooth.yaml
+++ b/Documentation/devicetree/bindings/net/bluetooth/ti,bluetooth.yaml
@@ -71,6 +71,13 @@ properties:
     items:
       - const: bd-address
 
+  ti,no-enhanced-setup-sync-conn:
+    type: boolean
+    description:
+      Indicates that the Bluetooth controller/firmware does not correctly
+      handle the HCI Enhanced Setup Synchronous Connection command for SCO
+      setup, despite advertising support for it.
+
 required:
   - compatible
 
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v1 2/2] Bluetooth: hci_ll: Add DT property to disable enhanced SCO setup
  2026-02-23 11:52 [PATCH v1 0/2] Bluetooth: hci_ll: Add DT control for enhanced SCO setup erratum Stefano Radaelli
  2026-02-23 11:52 ` [PATCH v1 1/2] dt-bindings: net: bluetooth: ti: Add property " Stefano Radaelli
@ 2026-02-23 11:52 ` Stefano Radaelli
  1 sibling, 0 replies; 7+ messages in thread
From: Stefano Radaelli @ 2026-02-23 11:52 UTC (permalink / raw)
  To: linux-kernel, devicetree, linux-bluetooth
  Cc: pierluigi.p, Stefano Radaelli, Marcel Holtmann,
	Luiz Augusto von Dentz, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, David Lechner

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@variscite.com>
---
 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


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 1/2] dt-bindings: net: bluetooth: ti: Add property for enhanced SCO setup erratum
  2026-02-23 11:52 ` [PATCH v1 1/2] dt-bindings: net: bluetooth: ti: Add property " Stefano Radaelli
@ 2026-02-23 12:03   ` Krzysztof Kozlowski
  2026-02-23 12:15     ` Stefano Radaelli
  0 siblings, 1 reply; 7+ messages in thread
From: Krzysztof Kozlowski @ 2026-02-23 12:03 UTC (permalink / raw)
  To: Stefano Radaelli, linux-kernel, devicetree, linux-bluetooth
  Cc: pierluigi.p, Stefano Radaelli, Marcel Holtmann,
	Luiz Augusto von Dentz, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, David Lechner

On 23/02/2026 12:52, Stefano Radaelli wrote:
> From: Stefano Radaelli <stefano.r@variscite.com>
> 
> Some Bluetooth controller/firmware combinations advertise support for the

Which ones?

> HCI Enhanced Setup Synchronous Connection command but do not handle it
> correctly for SCO setup in certain configurations (e.g.
> BT_VOICE_TRANSPARENT/mSBC). This results in SCO audio not working unless
> the enhanced setup path is avoided.
> 
> Add an optional boolean property, ti,no-enhanced-setup-sync-conn, to
> describe this controller limitation.
> 
> Signed-off-by: Stefano Radaelli <stefano.r@variscite.com>
> ---
>  .../devicetree/bindings/net/bluetooth/ti,bluetooth.yaml    | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/net/bluetooth/ti,bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/ti,bluetooth.yaml
> index 290abc22e18a..92ed443cb427 100644
> --- a/Documentation/devicetree/bindings/net/bluetooth/ti,bluetooth.yaml
> +++ b/Documentation/devicetree/bindings/net/bluetooth/ti,bluetooth.yaml
> @@ -71,6 +71,13 @@ properties:
>      items:
>        - const: bd-address
>  
> +  ti,no-enhanced-setup-sync-conn:
> +    type: boolean
> +    description:
> +      Indicates that the Bluetooth controller/firmware does not correctly
> +      handle the HCI Enhanced Setup Synchronous Connection command for SCO
> +      setup, despite advertising support for it.

This looks a lot like controller issue, thus deducible from the
compatible. And even if particular firmware has problem, how do you see
changing static DTS on linux-firmware update?

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 1/2] dt-bindings: net: bluetooth: ti: Add property for enhanced SCO setup erratum
  2026-02-23 12:03   ` Krzysztof Kozlowski
@ 2026-02-23 12:15     ` Stefano Radaelli
  2026-02-24  7:35       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 7+ messages in thread
From: Stefano Radaelli @ 2026-02-23 12:15 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: linux-kernel, devicetree, linux-bluetooth, pierluigi.p,
	Stefano Radaelli, Marcel Holtmann, Luiz Augusto von Dentz,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, David Lechner

On Mon, Feb 23, 2026 at 01:03:27PM +0100, Krzysztof Kozlowski wrote:
> On 23/02/2026 12:52, Stefano Radaelli wrote:
> > From: Stefano Radaelli <stefano.r@variscite.com>
> > 
> > Some Bluetooth controller/firmware combinations advertise support for the
> 
> Which ones?
> 
> 
> This looks a lot like controller issue, thus deducible from the
> compatible. And even if particular firmware has problem, how do you see
> changing static DTS on linux-firmware update?
> 
> Best regards,
> Krzysztof

Hi Krzysztof,

thank you for your review!

We have observed this behaviour specifically on TI WL1831 modules.

When using the HCI Enhanced Setup Synchronous Connection command,
SCO setup fails even though the controller reports the command as
supported. The only working path for this controller is to fall back
to the legacy HCI Setup Synchronous Connection (0x0028).
The behaviour matches the scenario described in commit 05abad857277,
which introduced HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN for that
reason.

We are using the latest firmware available from TI for the wl18xx
family (from the official TI repository), so this is not related to
an outdated firmware version.

The reason for proposing a DT property was to keep the workaround
flexible and avoid forcing the quirk on all TI controllers handled
by hci_ll without confirmation.

However, since this may be considered deducible from the compatible,
would you prefer enabling
HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN automatically for
"ti,wl1831-st" instead of using a DT property?

Thanks for the feedback.

Best regards,
Stefano

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 1/2] dt-bindings: net: bluetooth: ti: Add property for enhanced SCO setup erratum
  2026-02-23 12:15     ` Stefano Radaelli
@ 2026-02-24  7:35       ` Krzysztof Kozlowski
  2026-02-24 10:42         ` Stefano Radaelli
  0 siblings, 1 reply; 7+ messages in thread
From: Krzysztof Kozlowski @ 2026-02-24  7:35 UTC (permalink / raw)
  To: Stefano Radaelli
  Cc: linux-kernel, devicetree, linux-bluetooth, pierluigi.p,
	Stefano Radaelli, Marcel Holtmann, Luiz Augusto von Dentz,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, David Lechner

On Mon, Feb 23, 2026 at 01:15:59PM +0100, Stefano Radaelli wrote:
> On Mon, Feb 23, 2026 at 01:03:27PM +0100, Krzysztof Kozlowski wrote:
> > On 23/02/2026 12:52, Stefano Radaelli wrote:
> > > From: Stefano Radaelli <stefano.r@variscite.com>
> > > 
> > > Some Bluetooth controller/firmware combinations advertise support for the
> > 
> > Which ones?
> > 
> > 
> > This looks a lot like controller issue, thus deducible from the
> > compatible. And even if particular firmware has problem, how do you see
> > changing static DTS on linux-firmware update?
> > 
> > Best regards,
> > Krzysztof
> 
> Hi Krzysztof,
> 
> thank you for your review!
> 
> We have observed this behaviour specifically on TI WL1831 modules.
> 
> When using the HCI Enhanced Setup Synchronous Connection command,
> SCO setup fails even though the controller reports the command as
> supported. The only working path for this controller is to fall back
> to the legacy HCI Setup Synchronous Connection (0x0028).
> The behaviour matches the scenario described in commit 05abad857277,
> which introduced HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN for that
> reason.
> 
> We are using the latest firmware available from TI for the wl18xx
> family (from the official TI repository), so this is not related to
> an outdated firmware version.
> 
> The reason for proposing a DT property was to keep the workaround
> flexible and avoid forcing the quirk on all TI controllers handled
> by hci_ll without confirmation.

I did not propose to enable it on ALL TI controllers. I asked to deduce
it from given compatible, so to enable it on affected devices.

> 
> However, since this may be considered deducible from the compatible,
> would you prefer enabling
> HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN automatically for
> "ti,wl1831-st" instead of using a DT property?

Yes

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 1/2] dt-bindings: net: bluetooth: ti: Add property for enhanced SCO setup erratum
  2026-02-24  7:35       ` Krzysztof Kozlowski
@ 2026-02-24 10:42         ` Stefano Radaelli
  0 siblings, 0 replies; 7+ messages in thread
From: Stefano Radaelli @ 2026-02-24 10:42 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: linux-kernel, devicetree, linux-bluetooth, pierluigi.p,
	Stefano Radaelli, Marcel Holtmann, Luiz Augusto von Dentz,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, David Lechner

Hi Krzysztof,

On Tue, Feb 24, 2026 at 08:35:30AM +0100, Krzysztof Kozlowski wrote:
> > 
> > However, since this may be considered deducible from the compatible,
> > would you prefer enabling
> > HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN automatically for
> > "ti,wl1831-st" instead of using a DT property?
> 
> Yes
> 

We have now tested the WL183x family and observed the same behaviour
across WL1831, WL1835 and WL1837 modules.

Since this affects the WL183x family and is therefore deducible from
the compatible, I will respin the patch to enable
HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN automatically for:
- "ti,wl1831-st"
- "ti,wl1835-st"
- "ti,wl1837-st"

Thanks for the guidance.

Best regards,
Stefano

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-02-24 10:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-23 11:52 [PATCH v1 0/2] Bluetooth: hci_ll: Add DT control for enhanced SCO setup erratum Stefano Radaelli
2026-02-23 11:52 ` [PATCH v1 1/2] dt-bindings: net: bluetooth: ti: Add property " Stefano Radaelli
2026-02-23 12:03   ` Krzysztof Kozlowski
2026-02-23 12:15     ` Stefano Radaelli
2026-02-24  7:35       ` Krzysztof Kozlowski
2026-02-24 10:42         ` Stefano Radaelli
2026-02-23 11:52 ` [PATCH v1 2/2] Bluetooth: hci_ll: Add DT property to disable enhanced SCO setup Stefano Radaelli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox