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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx>

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 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);
-- 
2.49.0





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux