Hi, On Mon, Jun 30, 2025 at 4:06 AM Yang Li via B4 Relay <devnull+yang.li.amlogic.com@xxxxxxxxxx> wrote: > > From: Yang Li <yang.li@xxxxxxxxxxx> > > When BIG sync is lost, the stream status transitions from Streaming to Idle. > > > HCI Event: LE Meta Event (0x3e) plen 3 #3189 [hci0] 118.870863 > LE Broadcast Isochronous Group Sync Lost (0x1e) > BIG Handle: 0x00 > Reason: Remote User Terminated Connection (0x13) > = bluetoothd: src/shared/bap.c:stream_io_disconnected() stream 0.. 118.871183 > = bluetoothd: src/shared/bap.c:bap_bcast_set_state() stream 0xdf.. 118.871227 > = bluetoothd: profiles/audio/bap.c:bap_state_bcast_sink() stream.. 118.871258 > = bluetoothd: profiles/audio/bass.c:bap_state_changed() stream 0.. 118.871307 > = bluetoothd: src/gatt-database.c:send_notification_to_device()... 118.871384 > = bluetoothd: profiles/audio/transport.c:bap_state_changed() str.. 118.871452 > = bluetoothd: profiles/audio/transport.c:transport_bap_update_li.. 118.871509 > = bluetoothd: profiles/audio/transport.c:transport_update_playin.. 118.871555 > = bluetoothd: profiles/audio/transport.c:transport_set_state() S.. 118.871610 > = bluetoothd: src/shared/bap.c:bap_bcast_sink_detach() stream 0x.. 118.871660 > = bluetoothd: profiles/audio/media.c:pac_clear() endpoint 0xdd25.. 118.871689 > > Fixes: https://github.com/bluez/bluez/issues/1343 > > Signed-off-by: Yang Li <yang.li@xxxxxxxxxxx> > --- > src/shared/bap.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/src/shared/bap.c b/src/shared/bap.c > index bccbc73ff..984ae782d 100644 > --- a/src/shared/bap.c > +++ b/src/shared/bap.c > @@ -6584,6 +6584,11 @@ static bool stream_io_disconnected(struct io *io, void *user_data) > > DBG(stream->bap, "stream %p io disconnected", stream); > > + if (stream->lpac->type == BT_BAP_BCAST_SINK) { > + stream_set_state(stream, BT_BAP_STREAM_STATE_IDLE); > + return false; > + } The likes of bap_bcast_disable, which is what I assume such event should result, does set it to BT_BAP_STREAM_STATE_CONFIG which I think is the correct state since this is a about the BIG Sync not the PA Sync, or perhaps we always assume the later as well since the socket is disconnected the PA sync will be cleanup? In that case I'd add a comment about it. > if (stream->ep->state == BT_ASCS_ASE_STATE_RELEASING) > stream_set_state(stream, BT_BAP_STREAM_STATE_CONFIG); > > > -- > 2.42.0 > > > -- Luiz Augusto von Dentz