From 5ad6ec151c61d3a573362cd33414ba4d6ffa9695 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Thu, 29 May 2025 12:40:19 -0400 Subject: [PATCH] bass: Fix not using SID from BT_BASS_ADD_SRC 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 --git a/profiles/audio/bass.c b/profiles/audio/bass.c index 017a5aa75..417b7b72f 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); -- 2.47.3