* Re: [PATCH BlueZ v2 1/3] audio: Add ability to force CIS transport Links property
2026-04-23 17:08 ` [PATCH BlueZ v2 1/3] " Luiz Augusto von Dentz
@ 2026-04-23 20:32 ` Frédéric Danis
0 siblings, 0 replies; 6+ messages in thread
From: Frédéric Danis @ 2026-04-23 20:32 UTC (permalink / raw)
To: Luiz Augusto von Dentz; +Cc: linux-bluetooth
[-- Attachment #1: Type: text/plain, Size: 11866 bytes --]
Hi Luiz,
On 23/04/2026 19:08, Luiz Augusto von Dentz wrote:
> Hi Frederic,
>
> On Thu, Apr 23, 2026 at 3:53 AM Frédéric Danis
> <frederic.danis@collabora.com> wrote:
>> If bluetoothd is started in testing mode the Links property for CIS
>> is readwrite and can be used to force transport objects Links.
>> This can used to unlink transport objects by sending an empty array.
>>
>> For unlinked transport objects, each transports needs to be acquired
>> separately.
>>
>> This allows to pass PTS tests BAP/UCL/STR/BV-543-C and BV-546-C.
>> ---
>> v1 -> v2:
>> - Add testing mode check in bap_connect_io_cb()
>> - Replace stream state check by checking that the stream is not linked
>> before passing the connect event to all streams belonging to same
>> CIG/CIS.
>>
>> profiles/audio/bap.c | 46 ++++++++++++++++++++++++++++++
>> profiles/audio/transport.c | 57 +++++++++++++++++++++++++++++++-------
>> 2 files changed, 95 insertions(+), 10 deletions(-)
>>
>> diff --git a/profiles/audio/bap.c b/profiles/audio/bap.c
>> index 5333267f7..e20456436 100644
>> --- a/profiles/audio/bap.c
>> +++ b/profiles/audio/bap.c
>> @@ -2655,13 +2655,61 @@ static void bap_connect_bcast_io_cb(GIOChannel *chan, GError *err,
>> iso_connect_bcast_cb(chan, err, setup->stream);
>> }
>>
>> +struct connect_io_data {
>> + GIOChannel *chan;
>> + GError *err;
>> + uint8_t cig_id;
>> + uint8_t cis_id;
>> +};
>> +
>> +static void connect_stream(void *data, void *user_data)
>> +{
>> + struct bap_setup *setup = data;
>> + struct connect_io_data *d = user_data;
>> + uint8_t state;
>> +
>> + /* Check stream state to only pass the connect event managed
>> + * by bap_stream_set_io() */
>> + state = bt_bap_stream_get_state(setup->stream);
>> + if ((state == BT_BAP_STREAM_STATE_ENABLING ||
>> + state == BT_BAP_STREAM_STATE_DISABLING) &&
>> + setup->qos.ucast.cig_id == d->cig_id &&
>> + setup->qos.ucast.cis_id == d->cis_id)
>> + iso_connect_cb(d->chan, d->err, setup->stream);
> From the discussion we had Ive assume we wouldn't be checking the
> state here, since we don't check on bap_connect_io_cb either.
If the state is not checked this prevents to complete the transport
acquire, ending with:
- for BV-543-C: profiles/audio/bap.c:setup_connect_io() setup
0x50f000007a20 stream 0x50e000010dc0 io already up
- for BV-546-C: profiles/audio/bap.c:bap_state() stream 0x50e00000a5a0:
enabling(3) -> disabling(5)
see attached files.
>
>> +}
>> +
>> +static void connect_ep(void *data, void *user_data)
>> +{
>> + struct bap_ep *ep = data;
>> +
>> + if (ep->setups)
>> + queue_foreach(ep->setups, connect_stream, user_data);
>> +}
>> +
>> static void bap_connect_io_cb(GIOChannel *chan, GError *err, gpointer user_data)
>> {
>> struct bap_setup *setup = user_data;
>> + struct connect_io_data data;
>>
>> if (!setup->stream)
>> return;
>>
>> + if (queue_isempty(bt_bap_stream_io_get_links(setup->stream)) &&
>> + btd_opts.testing) {
>> + /* The stream may have manually been unliked for PTS tests,
>> + * e.g. BAP/UCL/STR/BV-543-C or BAP/UCL/STR/BV-546-C,
>> + * in this case send the connect event to all streams
>> + * belonging to the same CIG/CIS.
>> + */
>> + data.chan = chan;
>> + data.err = err;
>> + data.cig_id = setup->qos.ucast.cig_id;
>> + data.cis_id = setup->qos.ucast.cis_id;
>> + queue_foreach(setup->ep->data->snks, connect_ep, &data);
>> + queue_foreach(setup->ep->data->srcs, connect_ep, &data);
>> + return;
>> + }
>> +
>> iso_connect_cb(chan, err, setup->stream);
>> }
>>
>> diff --git a/profiles/audio/transport.c b/profiles/audio/transport.c
>> index 5c2a2777e..b6a5dd1fd 100644
>> --- a/profiles/audio/transport.c
>> +++ b/profiles/audio/transport.c
>> @@ -37,6 +37,7 @@
>> #include "src/shared/bap.h"
>> #include "src/shared/bass.h"
>> #include "src/shared/io.h"
>> +#include "src/btd.h"
>>
>> #ifdef HAVE_A2DP
>> #include "avdtp.h"
>> @@ -114,6 +115,7 @@ struct bap_transport {
>> struct media_transport_ops {
>> const char *uuid;
>> const GDBusPropertyTable *properties;
>> + const GDBusPropertyTable *test_properties;
>> void (*set_owner)(struct media_transport *transport,
>> struct media_owner *owner);
>> void (*remove_owner)(struct media_transport *transport,
>> @@ -1419,6 +1421,9 @@ static struct media_transport *find_transport_by_path(const char *path)
>> return NULL;
>> }
>>
>> +static void bap_update_links(const struct media_transport *transport);
>> +static void transport_unlink(void *data, void *user_data);
>> +
>> static void set_links(const GDBusPropertyTable *property,
>> DBusMessageIter *iter,
>> GDBusPendingPropertySet id, void *user_data)
>> @@ -1436,6 +1441,16 @@ static void set_links(const GDBusPropertyTable *property,
>>
>> dbus_message_iter_recurse(iter, &array);
>>
>> + if (dbus_message_iter_get_arg_type(&array) == DBUS_TYPE_INVALID) {
>> + struct queue *links = bt_bap_stream_io_get_links(bap->stream);
>> +
>> + /* Unlink stream from all its links */
>> + queue_foreach(links, transport_unlink, bap->stream);
>> +
>> + bt_bap_stream_io_unlink(bap->stream, NULL);
>> + bap_update_links(transport);
>> + }
>> +
>> while (dbus_message_iter_get_arg_type(&array) ==
>> DBUS_TYPE_OBJECT_PATH) {
>> struct media_transport *link;
>> @@ -1486,6 +1501,21 @@ static const GDBusPropertyTable transport_bap_uc_properties[] = {
>> { }
>> };
>>
>> +static const GDBusPropertyTable transport_bap_uc_test_properties[] = {
>> + { "Device", "o", get_device },
>> + { "UUID", "s", get_uuid },
>> + { "Codec", "y", get_codec },
>> + { "Configuration", "ay", get_configuration },
>> + { "State", "s", get_state },
>> + { "QoS", "a{sv}", get_ucast_qos, NULL, qos_ucast_exists },
>> + { "Endpoint", "o", get_endpoint, NULL, endpoint_exists },
>> + { "Location", "u", get_location },
>> + { "Metadata", "ay", get_metadata, set_metadata },
>> + { "Links", "ao", get_links, set_links, links_exists },
>> + { "Volume", "q", get_volume, set_volume, volume_exists },
>> + { }
>> +};
>> +
>> static gboolean get_bcast_qos(const GDBusPropertyTable *property,
>> DBusMessageIter *iter, void *data)
>> {
>> @@ -1884,8 +1914,6 @@ static void bap_resume_complete(struct media_transport *transport)
>> transport_set_state(transport, TRANSPORT_STATE_ACTIVE);
>> }
>>
>> -static void bap_update_links(const struct media_transport *transport);
>> -
>> static bool match_link_transport(const void *data, const void *user_data)
>> {
>> const struct bt_bap_stream *stream = data;
>> @@ -2540,10 +2568,11 @@ static void *transport_asha_init(struct media_transport *transport, void *data)
>> #define TRANSPORT_OPS(_uuid, _props, _set_owner, _remove_owner, _init, \
>> _resume, _suspend, _cancel, _set_state, _get_stream, \
>> _get_volume, _set_volume, _set_delay, _update_links, \
>> - _destroy) \
>> + _destroy, _test_props) \
>> { \
>> .uuid = _uuid, \
>> .properties = _props, \
>> + .test_properties = _test_props, \
>> .set_owner = _set_owner, \
>> .remove_owner = _remove_owner, \
>> .init = _init, \
>> @@ -2565,26 +2594,28 @@ static void *transport_asha_init(struct media_transport *transport, void *data)
>> transport_a2dp_resume, transport_a2dp_suspend, \
>> transport_a2dp_cancel, NULL, \
>> transport_a2dp_get_stream, transport_a2dp_get_volume, \
>> - _set_volume, _set_delay, NULL, _destroy)
>> + _set_volume, _set_delay, NULL, _destroy, NULL)
>>
>> #define BAP_OPS(_uuid, _props, _set_owner, _remove_owner, _update_links, \
>> - _set_state) \
>> + _set_state, _test_props) \
>> TRANSPORT_OPS(_uuid, _props, _set_owner, _remove_owner,\
>> transport_bap_init, \
>> transport_bap_resume, transport_bap_suspend, \
>> transport_bap_cancel, _set_state, \
>> transport_bap_get_stream, transport_bap_get_volume, \
>> transport_bap_set_volume, NULL, \
>> - _update_links, transport_bap_destroy)
>> + _update_links, transport_bap_destroy, _test_props)
>>
>> #define BAP_UC_OPS(_uuid) \
>> BAP_OPS(_uuid, transport_bap_uc_properties, \
>> transport_bap_set_owner, transport_bap_remove_owner, \
>> - transport_bap_update_links_uc, transport_bap_set_state)
>> + transport_bap_update_links_uc, \
>> + transport_bap_set_state, \
>> + transport_bap_uc_test_properties)
>>
>> #define BAP_BC_OPS(_uuid) \
>> BAP_OPS(_uuid, transport_bap_bc_properties, NULL, NULL, \
>> - transport_bap_update_links_bc, NULL)
>> + transport_bap_update_links_bc, NULL, NULL)
>>
>> #define ASHA_OPS(_uuid) \
>> TRANSPORT_OPS(_uuid, transport_asha_properties, NULL, NULL, \
>> @@ -2592,7 +2623,7 @@ static void *transport_asha_init(struct media_transport *transport, void *data)
>> transport_asha_resume, transport_asha_suspend, \
>> transport_asha_cancel, NULL, NULL, \
>> transport_asha_get_volume, transport_asha_set_volume, \
>> - NULL, NULL, NULL)
>> + NULL, NULL, NULL, NULL)
>>
>> static const struct media_transport_ops transport_ops[] = {
>> #ifdef HAVE_A2DP
>> @@ -2647,6 +2678,7 @@ struct media_transport *media_transport_create(struct btd_device *device,
>> struct media_transport *transport;
>> const struct media_transport_ops *ops;
>> int fd;
>> + const GDBusPropertyTable *properties;
>>
>> transport = g_new0(struct media_transport, 1);
>> if (device)
>> @@ -2701,9 +2733,14 @@ struct media_transport *media_transport_create(struct btd_device *device,
>> goto fail;
>> }
>>
>> + if (btd_opts.testing && ops->test_properties)
>> + properties = ops->test_properties;
>> + else
>> + properties = ops->properties;
>> +
>> if (g_dbus_register_interface(btd_get_dbus_connection(),
>> transport->path, MEDIA_TRANSPORT_INTERFACE,
>> - transport_methods, NULL, ops->properties,
>> + transport_methods, NULL, properties,
>> transport, media_transport_free) == FALSE) {
>> error("Could not register transport %s", transport->path);
>> goto fail;
>> --
>> 2.43.0
>>
>>
>
--
Frédéric Danis
Senior Software Engineer
Collabora Ltd.
Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, United Kingdom
Registered in England & Wales, no. 5513718
[-- Attachment #2: no-state-check-543.log --]
[-- Type: text/x-log, Size: 11845 bytes --]
bluetoothd[487726]: [:1.5304:method_call] > org.bluez.MediaTransport1.Acquire [#101]
bluetoothd[487726]: profiles/audio/transport.c:media_owner_create() Owner created: sender=:1.5304
bluetoothd[487726]: profiles/audio/transport.c:media_transport_resume() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_sink0/fd0 Owner :1.5304
bluetoothd[487726]: src/shared/bap.c:bap_queue_req() req 0x50600008c360 (op 0x03) queue 0x5030000bc650
bluetoothd[487726]: profiles/audio/transport.c:transport_set_state() State changed /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_sink0/fd0: TRANSPORT_STATE_IDLE -> TRANSPORT_STATE_REQUESTING
bluetoothd[487726]: profiles/audio/transport.c:media_request_create() Request created: method=Acquire id=23
bluetoothd[487726]: profiles/audio/transport.c:media_owner_add() Owner :1.5304 Request Acquire
bluetoothd[487726]: profiles/audio/transport.c:media_transport_set_owner() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_sink0/fd0 Owner :1.5304
bluetoothd[487726]: src/shared/bap.c:bap_process_queue()
bluetoothd[487726]: src/shared/bap.c:bap_send() req 0x50600008c360 len 8
bluetoothd[487726]: src/shared/att.c:can_read_data() (chan 0x5080000162a0) ATT PDU received: 0x1b
bluetoothd[487726]: src/shared/bap.c:bap_process_queue()
bluetoothd[487726]: src/shared/att.c:can_read_data() (chan 0x5080000162a0) ATT PDU received: 0x1b
bluetoothd[487726]: src/shared/bap.c:bap_ep_set_status() ASE status: ep 0x504000059690 id 0x01 handle 0x0121 state enabling len 7
bluetoothd[487726]: src/shared/bap.c:ep_status_metadata() CIS 0x00 CIG 0x00 metadata len 4
bluetoothd[487726]: profiles/audio/bap.c:bap_state() stream 0x50e000010ea0: qos(2) -> enabling(3)
bluetoothd[487726]: profiles/audio/transport.c:bap_state_changed() stream 0x50e000010ea0: qos(2) -> enabling(3)
bluetoothd[487726]: profiles/audio/bap.c:bap_update_cig() adapter 0x513000000200 CIG 0x0
bluetoothd[487726]: profiles/audio/bap.c:update_cig_setup_enable() 0x50f000007930
bluetoothd[487726]: profiles/audio/bap.c:setup_create_io() setup 0x50f000007930 stream 0x50e000010ea0 defer false
bluetoothd[487726]: src/shared/bap.c:bt_bap_stream_io_get_qos() in (nil) out 0x50e000010ed8
bluetoothd[487726]: profiles/audio/bap.c:setup_accept_io() stream 0x50e000010ea0 fd 26 defer true
bluetoothd[487726]: profiles/audio/bap.c:iso_connect_cb() ISO connected
bluetoothd[487726]: profiles/audio/bap.c:iso_connect_cb() ISO connected
bluetoothd[487726]: profiles/audio/bap.c:iso_connect_cb() Unable to set IO
bluetoothd[487726]: src/shared/bap.c:bap_stream_io_detach() stream 0x50e000010dc0
bluetoothd[487726]: src/shared/att.c:can_read_data() (chan 0x5080000162a0) ATT PDU received: 0x1b
bluetoothd[487726]: src/shared/bap.c:bap_ep_set_status() ASE status: ep 0x504000059690 id 0x01 handle 0x0121 state streaming len 7
bluetoothd[487726]: src/shared/bap.c:ep_status_metadata() CIS 0x00 CIG 0x00 metadata len 4
bluetoothd[487726]: profiles/audio/bap.c:bap_state() stream 0x50e000010ea0: enabling(3) -> streaming(4)
bluetoothd[487726]: profiles/audio/transport.c:bap_state_changed() stream 0x50e000010ea0: enabling(3) -> streaming(4)
bluetoothd[487726]: profiles/audio/transport.c:bap_metadata_changed() stream 0x50e000010ea0: metadata 0x5020000f4910 old (nil)
bluetoothd[487726]: /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_sink0/fd0: fd(26) ready
bluetoothd[487726]: profiles/audio/transport.c:transport_update_playing() /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_sink0/fd0 State=TRANSPORT_STATE_REQUESTING Playing=1
bluetoothd[487726]: profiles/audio/transport.c:bap_resume_complete() stream 0x50e000010ea0 owner 0x5030000d8700 resume complete
bluetoothd[487726]: [signal] org.freedesktop.DBus.Properties.PropertiesChanged
bluetoothd[487726]: [:1.5304:method_return] < [#101]
bluetoothd[487726]: profiles/audio/transport.c:media_owner_remove() Owner :1.5304 Request Acquire
bluetoothd[487726]: profiles/audio/transport.c:transport_set_state() State changed /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_sink0/fd0: TRANSPORT_STATE_REQUESTING -> TRANSPORT_STATE_ACTIVE
bluetoothd[487726]: [signal] org.freedesktop.DBus.Properties.PropertiesChanged
bluetoothd[487726]: [:1.5304:method_call] > org.bluez.MediaTransport1.Acquire [#102]
bluetoothd[487726]: profiles/audio/transport.c:media_owner_create() Owner created: sender=:1.5304
bluetoothd[487726]: profiles/audio/transport.c:media_transport_resume() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0/fd1 Owner :1.5304
bluetoothd[487726]: src/shared/bap.c:bap_queue_req() req 0x50600008c8a0 (op 0x03) queue 0x5030000bc650
bluetoothd[487726]: profiles/audio/transport.c:transport_set_state() State changed /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0/fd1: TRANSPORT_STATE_IDLE -> TRANSPORT_STATE_REQUESTING
bluetoothd[487726]: profiles/audio/transport.c:media_request_create() Request created: method=Acquire id=24
bluetoothd[487726]: profiles/audio/transport.c:media_owner_add() Owner :1.5304 Request Acquire
bluetoothd[487726]: profiles/audio/transport.c:media_transport_set_owner() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0/fd1 Owner :1.5304
bluetoothd[487726]: src/shared/bap.c:bap_process_queue()
bluetoothd[487726]: src/shared/bap.c:bap_send() req 0x50600008c8a0 len 8
bluetoothd[487726]: src/shared/att.c:can_read_data() (chan 0x5080000162a0) ATT PDU received: 0x1b
bluetoothd[487726]: src/shared/bap.c:bap_process_queue()
bluetoothd[487726]: src/shared/att.c:can_read_data() (chan 0x5080000162a0) ATT PDU received: 0x1b
bluetoothd[487726]: src/shared/bap.c:bap_ep_set_status() ASE status: ep 0x504000059790 id 0x0a handle 0x0127 state enabling len 7
bluetoothd[487726]: src/shared/bap.c:ep_status_metadata() CIS 0x00 CIG 0x00 metadata len 4
bluetoothd[487726]: profiles/audio/bap.c:bap_state() stream 0x50e000010dc0: qos(2) -> enabling(3)
bluetoothd[487726]: profiles/audio/transport.c:bap_state_changed() stream 0x50e000010dc0: qos(2) -> enabling(3)
bluetoothd[487726]: profiles/audio/bap.c:bap_update_cig() adapter 0x513000000200 CIG 0x0
bluetoothd[487726]: profiles/audio/bap.c:bap_update_cig() setup 0x50f000007930 stream 0x50e000010ea0 busy
bluetoothd[487726]: profiles/audio/bap.c:update_cig_setup_enable() 0x50f000007a20
bluetoothd[487726]: profiles/audio/bap.c:setup_create_io() setup 0x50f000007a20 stream 0x50e000010dc0 defer false
bluetoothd[487726]: src/shared/bap.c:bt_bap_stream_io_get_qos() in 0x50e000010df8 out (nil)
bluetoothd[487726]: profiles/audio/bap.c:setup_connect_io() setup 0x50f000007a20 stream 0x50e000010dc0 io already up
bluetoothd[487726]: [:1.493:method_call] > org.bluez.Device1.Disconnect [#49547]
bluetoothd[487726]: src/device.c:device_set_auto_connect() 9C:47:2A:39:56:FE auto connect: 0
bluetoothd[487726]: src/service.c:change_state() 0x506000075d40: device 9C:47:2A:39:56:FE profile rap state changed: connected -> disconnecting (0)
bluetoothd[487726]: profiles/ranging/rap.c:rap_disconnect()
bluetoothd[487726]: src/service.c:change_state() 0x506000075d40: device 9C:47:2A:39:56:FE profile rap state changed: disconnecting -> disconnected (0)
bluetoothd[487726]: src/service.c:change_state() 0x506000075f20: device 9C:47:2A:39:56:FE profile bap state changed: connected -> disconnecting (0)
bluetoothd[487726]: profiles/audio/bap.c:ep_unregister() ep 0x5060000891e0 path /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_sink0
bluetoothd[487726]: profiles/audio/bap.c:setup_free() 0x50f000007930
bluetoothd[487726]: profiles/audio/bap.c:setup_io_close() setup 0x50f000007930
bluetoothd[487726]: src/shared/bap.c:bap_stream_io_detach() stream 0x50e000010ea0
bluetoothd[487726]: src/shared/bap.c:stream_io_free() fd 26
bluetoothd[487726]: src/shared/bap.c:bap_queue_req() req 0x50600008cc60 (op 0x08) queue 0x5030000bc650
bluetoothd[487726]: [signal] org.freedesktop.DBus.ObjectManager.InterfacesRemoved
bluetoothd[487726]: profiles/audio/bap.c:ep_unregister() ep 0x506000088f40 path /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0
bluetoothd[487726]: profiles/audio/bap.c:setup_free() 0x50f000007a20
bluetoothd[487726]: profiles/audio/bap.c:setup_io_close() setup 0x50f000007a20
bluetoothd[487726]: src/shared/bap.c:bap_queue_req() req 0x50600008cde0 (op 0x08) queue 0x5030000d96f0
bluetoothd[487726]: [signal] org.freedesktop.DBus.ObjectManager.InterfacesRemoved
bluetoothd[487726]: src/shared/bap.c:bt_bap_detach() 0x510000004240
bluetoothd[487726]: src/shared/bap.c:bap_ucast_detach() stream 0x50e000010dc0 ep 0x504000059790
bluetoothd[487726]: profiles/audio/media.c:pac_clear() endpoint 0x50f000005a40 stream 0x50e000010dc0
bluetoothd[487726]: [:1.5304:method_call] < org.bluez.MediaEndpoint1.ClearConfiguration
bluetoothd[487726]: profiles/audio/transport.c:media_transport_remove_owner() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0/fd1 Owner :1.5304
bluetoothd[487726]: profiles/audio/transport.c:media_request_reply() Request Acquire Reply Input/output error
bluetoothd[487726]: [:1.5304:error] < org.bluez.Error.Failed [#102]
bluetoothd[487726]: profiles/audio/transport.c:media_owner_free() Owner :1.5304
bluetoothd[487726]: profiles/audio/transport.c:media_owner_remove() Owner :1.5304 Request Acquire
bluetoothd[487726]: profiles/audio/transport.c:media_transport_suspend() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0/fd1 Owner
bluetoothd[487726]: profiles/audio/transport.c:transport_set_state() State changed /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0/fd1: TRANSPORT_STATE_REQUESTING -> TRANSPORT_STATE_IDLE
bluetoothd[487726]: [signal] org.freedesktop.DBus.ObjectManager.InterfacesRemoved
bluetoothd[487726]: src/shared/bap.c:bap_ucast_detach() stream 0x50e000010ea0 ep 0x504000059690
bluetoothd[487726]: profiles/audio/media.c:pac_clear() endpoint 0x50f000005950 stream 0x50e000010ea0
bluetoothd[487726]: [:1.5304:method_call] < org.bluez.MediaEndpoint1.ClearConfiguration
bluetoothd[487726]: profiles/audio/transport.c:media_transport_remove_owner() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_sink0/fd0 Owner :1.5304
bluetoothd[487726]: profiles/audio/transport.c:media_owner_free() Owner :1.5304
bluetoothd[487726]: profiles/audio/transport.c:media_transport_suspend() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_sink0/fd0 Owner
bluetoothd[487726]: profiles/audio/transport.c:transport_set_state() State changed /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_sink0/fd0: TRANSPORT_STATE_ACTIVE -> TRANSPORT_STATE_IDLE
bluetoothd[487726]: [signal] org.freedesktop.DBus.ObjectManager.InterfacesRemoved
bluetoothd[487726]: profiles/audio/bass.c:bap_detached() 0x510000004240
bluetoothd[487726]: profiles/audio/bap.c:bap_detached() 0x510000004240
bluetoothd[487726]: src/service.c:change_state() 0x506000075f20: device 9C:47:2A:39:56:FE profile bap state changed: disconnecting -> disconnected (0)
bluetoothd[487726]: src/service.c:change_state() 0x506000076d60: device 9C:47:2A:39:56:FE profile bass state changed: connected -> disconnecting (0)
bluetoothd[487726]: profiles/audio/bass.c:bass_disconnect() 9C:47:2A:39:56:FE
bluetoothd[487726]: profiles/audio/bass.c:bass_detached() 0x50b0000474d0
bluetoothd[487726]: src/service.c:change_state() 0x506000076d60: device 9C:47:2A:39:56:FE profile bass state changed: disconnecting -> disconnected (0)
bluetoothd[487726]: src/service.c:change_state() 0x5060000771e0: device 9C:47:2A:39:56:FE profile gap-profile state changed: connected -> disconnecting (0)
bluetoothd[487726]: src/service.c:change_state() 0x5060000771e0: device 9C:47:2A:39:56:FE profile gap-profile state changed: disconnecting -> disconnected (0)
bluetoothd[487726]: src/service.c:change_state() 0x506000077480: device 9C:47:2A:39:56:FE profile deviceinfo state changed: connected -> disconnecting (0)
bluetoothd[487726]: src/service.c:change_state() 0x506000077480: device 9C:47:2A:39:56:FE profile deviceinfo state changed: disconnecting -> disconnected (0)
[-- Attachment #3: no-state-check-546.log --]
[-- Type: text/x-log, Size: 10241 bytes --]
bluetoothd[487726]: [:1.5289:method_call] > org.bluez.MediaTransport1.Acquire [#212]
bluetoothd[487726]: profiles/audio/transport.c:media_owner_create() Owner created: sender=:1.5289
bluetoothd[487726]: profiles/audio/transport.c:media_transport_resume() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0/fd1 Owner :1.5289
bluetoothd[487726]: src/shared/bap.c:bap_queue_req() req 0x506000065120 (op 0x03) queue 0x503000083d40
bluetoothd[487726]: profiles/audio/transport.c:transport_set_state() State changed /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0/fd1: TRANSPORT_STATE_IDLE -> TRANSPORT_STATE_REQUESTING
bluetoothd[487726]: profiles/audio/transport.c:media_request_create() Request created: method=Acquire id=14
bluetoothd[487726]: profiles/audio/transport.c:media_owner_add() Owner :1.5289 Request Acquire
bluetoothd[487726]: profiles/audio/transport.c:media_transport_set_owner() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0/fd1 Owner :1.5289
bluetoothd[487726]: src/shared/bap.c:bap_process_queue()
bluetoothd[487726]: src/shared/bap.c:bap_send() req 0x506000065120 len 8
bluetoothd[487726]: src/shared/att.c:can_read_data() (chan 0x5080000106a0) ATT PDU received: 0x1b
bluetoothd[487726]: src/shared/bap.c:bap_process_queue()
bluetoothd[487726]: src/shared/att.c:can_read_data() (chan 0x5080000106a0) ATT PDU received: 0x1b
bluetoothd[487726]: src/shared/bap.c:bap_ep_set_status() ASE status: ep 0x50400003eb10 id 0x0a handle 0x0127 state enabling len 7
bluetoothd[487726]: src/shared/bap.c:ep_status_metadata() CIS 0x00 CIG 0x00 metadata len 4
bluetoothd[487726]: profiles/audio/bap.c:bap_state() stream 0x50e00000a5a0: qos(2) -> enabling(3)
bluetoothd[487726]: profiles/audio/transport.c:bap_state_changed() stream 0x50e00000a5a0: qos(2) -> enabling(3)
bluetoothd[487726]: profiles/audio/bap.c:bap_update_cig() adapter 0x513000000200 CIG 0x0
bluetoothd[487726]: profiles/audio/bap.c:update_cig_setup_enable() 0x50f000005680
bluetoothd[487726]: profiles/audio/bap.c:setup_create_io() setup 0x50f000005680 stream 0x50e00000a5a0 defer false
bluetoothd[487726]: src/shared/bap.c:bt_bap_stream_io_get_qos() in 0x50e00000a5d8 out (nil)
bluetoothd[487726]: profiles/audio/bap.c:setup_accept_io() stream 0x50e00000a5a0 fd 26 defer true
bluetoothd[487726]: profiles/audio/bap.c:iso_connect_cb() ISO connected
bluetoothd[487726]: profiles/audio/bap.c:iso_connect_cb() ISO connected
bluetoothd[487726]: profiles/audio/bap.c:iso_connect_cb() Unable to set IO
bluetoothd[487726]: src/shared/bap.c:bap_stream_io_detach() stream 0x50e00000a5a0
bluetoothd[487726]: src/shared/bap.c:bap_queue_req() req 0x506000065480 (op 0x05) queue 0x503000083d40
bluetoothd[487726]: src/shared/bap.c:bap_process_queue()
bluetoothd[487726]: src/shared/bap.c:bap_send() req 0x506000065480 len 3
bluetoothd[487726]: src/shared/att.c:can_read_data() (chan 0x5080000106a0) ATT PDU received: 0x1b
bluetoothd[487726]: src/shared/bap.c:bap_process_queue()
bluetoothd[487726]: src/shared/att.c:can_read_data() (chan 0x5080000106a0) ATT PDU received: 0x1b
bluetoothd[487726]: src/shared/bap.c:bap_ep_set_status() ASE status: ep 0x50400003eb10 id 0x0a handle 0x0127 state disabling len 7
bluetoothd[487726]: src/shared/bap.c:ep_status_metadata() CIS 0x00 CIG 0x00 metadata len 4
bluetoothd[487726]: profiles/audio/bap.c:bap_state() stream 0x50e00000a5a0: enabling(3) -> disabling(5)
bluetoothd[487726]: profiles/audio/transport.c:bap_state_changed() stream 0x50e00000a5a0: enabling(3) -> disabling(5)
bluetoothd[487726]: src/shared/bap.c:bap_queue_req() req 0x5060000655a0 (op 0x06) queue 0x503000083d40
bluetoothd[487726]: src/shared/att.c:can_read_data() (chan 0x5080000106a0) ATT PDU received: 0x1b
bluetoothd[487726]: src/shared/bap.c:bap_ep_set_status() ASE status: ep 0x50400003eb10 id 0x0a handle 0x0127 state qos len 15
bluetoothd[487726]: src/shared/bap.c:ep_status_qos() CIG 0x00 CIS 0x00 interval 10000 framing 0x00 phys 0x02 rtn 2 latency 10 pd 40000
bluetoothd[487726]: src/shared/bap.c:bap_stream_update_io_links() stream 0x50e00000a5a0
bluetoothd[487726]: src/shared/bap.c:bap_ucast_io_link() stream 0x50e00000a680 link 0x50e00000a5a0
bluetoothd[487726]: profiles/audio/bap.c:bap_state() stream 0x50e00000a5a0: disabling(5) -> qos(2)
bluetoothd[487726]: profiles/audio/transport.c:bap_state_changed() stream 0x50e00000a5a0: disabling(5) -> qos(2)
bluetoothd[487726]: profiles/audio/bap.c:bap_update_cig() adapter 0x513000000200 CIG 0x0
bluetoothd[487726]: profiles/audio/bap.c:bap_update_cig() setup 0x50f000005680 stream 0x50e00000a5a0 busy
bluetoothd[487726]: src/shared/bap.c:bap_process_queue()
bluetoothd[487726]: src/shared/bap.c:bap_send() req 0x5060000655a0 len 3
bluetoothd[487726]: src/shared/att.c:can_read_data() (chan 0x5080000106a0) ATT PDU received: 0x1b
bluetoothd[487726]: src/shared/bap.c:bap_process_queue()
bluetoothd[487726]: [:1.493:method_call] > org.bluez.Device1.Disconnect [#49428]
bluetoothd[487726]: src/device.c:device_set_auto_connect() 9C:47:2A:39:56:FE auto connect: 0
bluetoothd[487726]: src/service.c:change_state() 0x506000051b00: device 9C:47:2A:39:56:FE profile rap state changed: connected -> disconnecting (0)
bluetoothd[487726]: profiles/ranging/rap.c:rap_disconnect()
bluetoothd[487726]: src/service.c:change_state() 0x506000051b00: device 9C:47:2A:39:56:FE profile rap state changed: disconnecting -> disconnected (0)
bluetoothd[487726]: src/service.c:change_state() 0x506000051ce0: device 9C:47:2A:39:56:FE profile bap state changed: connected -> disconnecting (0)
bluetoothd[487726]: profiles/audio/bap.c:ep_unregister() ep 0x506000061fa0 path /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_sink0
bluetoothd[487726]: profiles/audio/bap.c:setup_free() 0x50f000005590
bluetoothd[487726]: profiles/audio/bap.c:setup_io_close() setup 0x50f000005590
bluetoothd[487726]: src/shared/bap.c:bap_stream_io_detach() stream 0x50e00000a680
bluetoothd[487726]: src/shared/bap.c:bap_stream_io_detach() stream 0x50e00000a5a0
bluetoothd[487726]: src/shared/bap.c:stream_io_free() fd 26
bluetoothd[487726]: profiles/audio/transport.c:transport_bap_update_links_uc() stream 0x50e00000a5a0 linked true
bluetoothd[487726]: profiles/audio/transport.c:transport_bap_update_links_uc() stream 0x50e00000a680 linked true
bluetoothd[487726]: src/shared/bap.c:bap_queue_req() req 0x5060000659c0 (op 0x08) queue 0x503000083d40
bluetoothd[487726]: [signal] org.freedesktop.DBus.ObjectManager.InterfacesRemoved
bluetoothd[487726]: profiles/audio/bap.c:ep_unregister() ep 0x506000061d00 path /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0
bluetoothd[487726]: profiles/audio/bap.c:setup_free() 0x50f000005680
bluetoothd[487726]: profiles/audio/bap.c:setup_io_close() setup 0x50f000005680
bluetoothd[487726]: src/shared/bap.c:bap_queue_req() req 0x506000065b40 (op 0x08) queue 0x5030000a0a20
bluetoothd[487726]: [signal] org.freedesktop.DBus.ObjectManager.InterfacesRemoved
bluetoothd[487726]: src/shared/bap.c:bt_bap_detach() 0x510000003c40
bluetoothd[487726]: src/shared/bap.c:bap_ucast_detach() stream 0x50e00000a5a0 ep 0x50400003eb10
bluetoothd[487726]: profiles/audio/media.c:pac_clear() endpoint 0x50f0000035b0 stream 0x50e00000a5a0
bluetoothd[487726]: [signal] org.freedesktop.DBus.Properties.PropertiesChanged
bluetoothd[487726]: [signal] org.freedesktop.DBus.Properties.PropertiesChanged
bluetoothd[487726]: [:1.5289:method_call] < org.bluez.MediaEndpoint1.ClearConfiguration
bluetoothd[487726]: profiles/audio/transport.c:media_transport_remove_owner() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0/fd1 Owner :1.5289
bluetoothd[487726]: profiles/audio/transport.c:media_request_reply() Request Acquire Reply Input/output error
bluetoothd[487726]: [:1.5289:error] < org.bluez.Error.Failed [#212]
bluetoothd[487726]: profiles/audio/transport.c:linked_transport_remove_owner() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_sink0/fd0 Owner :1.5289
bluetoothd[487726]: profiles/audio/transport.c:media_owner_free() Owner :1.5289
bluetoothd[487726]: profiles/audio/transport.c:media_owner_remove() Owner :1.5289 Request Acquire
bluetoothd[487726]: profiles/audio/transport.c:media_transport_suspend() Transport /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0/fd1 Owner
bluetoothd[487726]: profiles/audio/transport.c:transport_set_state() State changed /org/bluez/hci0/dev_9C_47_2A_39_56_FE/pac_source0/fd1: TRANSPORT_STATE_REQUESTING -> TRANSPORT_STATE_IDLE
bluetoothd[487726]: [signal] org.freedesktop.DBus.ObjectManager.InterfacesRemoved
bluetoothd[487726]: src/shared/bap.c:bap_ucast_detach() stream 0x50e00000a680 ep 0x50400003ea10
bluetoothd[487726]: profiles/audio/media.c:pac_clear() endpoint 0x50f0000034c0 stream 0x50e00000a680
bluetoothd[487726]: [:1.5289:method_call] < org.bluez.MediaEndpoint1.ClearConfiguration
bluetoothd[487726]: [signal] org.freedesktop.DBus.ObjectManager.InterfacesRemoved
bluetoothd[487726]: profiles/audio/bass.c:bap_detached() 0x510000003c40
bluetoothd[487726]: profiles/audio/bap.c:bap_detached() 0x510000003c40
bluetoothd[487726]: src/service.c:change_state() 0x506000051ce0: device 9C:47:2A:39:56:FE profile bap state changed: disconnecting -> disconnected (0)
bluetoothd[487726]: src/service.c:change_state() 0x506000052b20: device 9C:47:2A:39:56:FE profile bass state changed: connected -> disconnecting (0)
bluetoothd[487726]: profiles/audio/bass.c:bass_disconnect() 9C:47:2A:39:56:FE
bluetoothd[487726]: profiles/audio/bass.c:bass_detached() 0x50b00000b930
bluetoothd[487726]: src/service.c:change_state() 0x506000052b20: device 9C:47:2A:39:56:FE profile bass state changed: disconnecting -> disconnected (0)
bluetoothd[487726]: src/service.c:change_state() 0x506000052fa0: device 9C:47:2A:39:56:FE profile gap-profile state changed: connected -> disconnecting (0)
bluetoothd[487726]: src/service.c:change_state() 0x506000052fa0: device 9C:47:2A:39:56:FE profile gap-profile state changed: disconnecting -> disconnected (0)
bluetoothd[487726]: src/service.c:change_state() 0x506000053240: device 9C:47:2A:39:56:FE profile deviceinfo state changed: connected -> disconnecting (0)
bluetoothd[487726]: src/service.c:change_state() 0x506000053240: device 9C:47:2A:39:56:FE profile deviceinfo state changed: disconnecting -> disconnected (0)
^ permalink raw reply [flat|nested] 6+ messages in thread