diff mbox series

[BlueZ,v1] bass: Fix not using SID from BT_BASS_ADD_SRC

Message ID 20250529164256.188167-1-luiz.dentz@gmail.com
State New
Headers show
Series [BlueZ,v1] bass: Fix not using SID from BT_BASS_ADD_SRC | expand

Commit Message

Luiz Augusto von Dentz May 29, 2025, 4:42 p.m. UTC
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

BT_BASS_ADD_SRC command does actually have the SID of the broadcast
source which must be set otherwise the kernel would assume it to be
0x00 which may not always be the case.

Fixes: https://github.com/bluez/bluez/issues/1282
---
 profiles/audio/bass.c | 4 ++++
 1 file changed, 4 insertions(+)
diff mbox series

Patch

diff --git a/profiles/audio/bass.c b/profiles/audio/bass.c
index 017a5aa75c85..417b7b72ff9b 100644
--- a/profiles/audio/bass.c
+++ b/profiles/audio/bass.c
@@ -106,6 +106,7 @@  struct bass_delegator {
 	struct bt_bap *bap;
 	unsigned int state_id;
 	unsigned int bcode_id;
+	uint8_t sid;
 	uint8_t *bcode;
 	unsigned int timeout;
 	struct queue *bcode_reqs;
@@ -646,6 +647,7 @@  static void bap_attached(struct bt_bap *bap, void *user_data)
 		btd_device_get_bdaddr_type(device),
 		BT_IO_OPT_MODE, BT_IO_MODE_ISO,
 		BT_IO_OPT_QOS, &bap_sink_pa_qos,
+		BT_IO_OPT_ISO_BC_SID, dg->sid,
 		BT_IO_OPT_INVALID);
 	if (!dg->io) {
 		error("%s", err->message);
@@ -1320,6 +1322,7 @@  probe:
 
 	dg->device = device;
 	dg->src = bcast_src;
+	dg->sid = params->sid;
 	dg->bcode_reqs = queue_new();
 	dg->setups = queue_new();
 
@@ -1460,6 +1463,7 @@  static int handle_mod_src_req(struct bt_bcast_src *bcast_src,
 				btd_device_get_bdaddr_type(dg->device),
 				BT_IO_OPT_MODE, BT_IO_MODE_ISO,
 				BT_IO_OPT_QOS, &bap_sink_pa_qos,
+				BT_IO_OPT_ISO_BC_SID, dg->sid,
 				BT_IO_OPT_INVALID);
 			if (!dg->io) {
 				error("%s", err->message);