zephyr/subsys/bluetooth/audio
Mariusz Skamra 84fd596062 Bluetooth: audio: mcs: Offload notifications to system work queue
This implements the deferring of characteristic value notifications to
be sent from system work queue thread context. Notifications issued from
Bluetooth Rx thread might not be sent if there are no L2CAP Tx buffers
available, as the operation is non-blocking to prevent deadlock while
waiting for free buffers.
The same operation issued from other thread context is blocking,
meaning that the thread waits until L2CAP Tx buffers become available.
Thus it's guaranteed the notifications will be sent.

With this patch, the control point operations become blocking until the
control point response is sent. Meaning there might be only one
pending operation waiting for completition. This might be further
improved by queuing the operations if needed.

Fixes: #57444
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2023-05-18 13:35:57 +00:00
..
shell bluetooth: shell: Add missing return 2023-05-16 12:08:06 +02:00
aics_client.c
aics_internal.h
aics.c Bluetooth: audio: Expand AICS API 2023-03-31 09:20:15 +02:00
ascs_internal.h Bluetooth: audio: ascs: Fix using magic numbers 2023-04-24 13:34:59 +02:00
ascs.c Bluetooth: ASCS: Add support for long writes 2023-05-12 15:29:17 +02:00
audio_internal.h
audio.c Bluetooth: Audio: Add PA sync broadcast shell commands 2023-05-08 13:27:33 +02:00
bap_broadcast_assistant.c Bluetooth: Audio: Add PA sync broadcast shell commands 2023-05-08 13:27:33 +02:00
bap_broadcast_sink.c Bluetooth: BAP: Broadcast sink fix interval to timeout calc 2023-05-15 10:53:54 +00:00
bap_broadcast_source.c Bluetooth: BAP: Broadcast source fix idle state 2023-05-15 15:26:14 +02:00
bap_endpoint.h Bluetooth: Audio: Add broadsink sink create 2023-04-11 11:26:28 +02:00
bap_internal.h Bluetooth: Audio: Add bap prefix to BAP internal files 2023-03-07 16:21:44 +01:00
bap_iso.c Bluetooth: audio: iso: Remove code duplicates 2023-04-04 13:36:17 +02:00
bap_iso.h Bluetooth: Audio: Rename bt_audio_iso to bt_bap_iso 2023-03-07 16:21:44 +01:00
bap_scan_delegator.c Bluetooth: Audio: Modify broadcast_id prints/logs to use 24-bit 2023-05-08 13:27:33 +02:00
bap_stream.c Bluetooth: audio: Add paired_ep to endpoint info 2023-05-08 10:25:07 +02:00
bap_stream.h Bluetooth: BAP: Add missing Broadcast source param checks 2023-04-20 10:47:10 +02:00
bap_unicast_client_internal.h Bluetooth: Audio: Rename bt_audio_iso to bt_bap_iso 2023-03-07 16:21:44 +01:00
bap_unicast_client.c Bluetooth: Audio: Add long read support to BAP unicast client 2023-05-12 15:29:17 +02:00
bap_unicast_server.c Bluetooth: audio: ascs: Register ISO server on ASCS init 2023-03-28 15:07:09 +02:00
bap_unicast_server.h Bluetooth: audio: ascs: Cleanup ASCS on callback unregister 2023-03-28 15:07:09 +02:00
cap_acceptor.c Bluetooth: Audio: Fix CAP Acceptor Debug log level 2023-01-09 15:27:28 +00:00
cap_initiator.c Bluetooth: CAP: Add missing NULL checks for CAP broadcast start 2023-04-19 04:54:37 -04:00
cap_internal.h Bluetooth: Audio: Implement CAP unicast stop procedure 2023-03-21 09:35:05 +01:00
cap_stream.c Bluetooth: audio: Introduce helper BT_AUDIO_RX(TX) flags 2023-04-04 13:35:56 +02:00
ccid_internal.h
ccid.c
CMakeLists.txt Bluetooth: Audio: Move the decode_base functionality to a public function 2023-05-08 13:27:33 +02:00
codec.c Bluetooth: Audio: Add missing codec debug Kconfig 2023-01-09 15:27:28 +00:00
csip_crypto.c Bluetooth: audio: csis: Fix Big Endianness for RSI generation 2023-04-12 17:44:29 +02:00
csip_crypto.h Bluetooth: audio: csis: Fix Big Endianness for RSI generation 2023-04-12 17:44:29 +02:00
csip_internal.h
csip_set_coordinator.c Bluetooth: CSIP: Fix issue with ordered access without lock char 2023-05-10 10:14:56 +02:00
csip_set_member.c Bluetooth: CSIP: Fix Set Member set size and rank param validation 2023-05-10 10:14:56 +02:00
has_client.c Bluetooth: HAS: Add missing memset of read params 2023-05-05 11:26:11 +02:00
has_internal.h
has.c Bluetooth: audio: has: Fix client context allocation 2023-02-20 09:49:15 +01:00
Kconfig Bluetooth: Audio: Move the decode_base functionality to a public function 2023-05-08 13:27:33 +02:00
Kconfig.aics Bluetooth: Audio: Add select BT_GATT_DYNAMIC_DB for audio services 2023-04-04 13:36:26 +02:00
Kconfig.ascs Bluetooth: ASCS: Add support for long read 2023-05-12 15:29:17 +02:00
Kconfig.bap Bluetooth: BAP: Limit broadcast sink streams to proper max value 2023-05-10 16:53:56 +09:00
Kconfig.bass
Kconfig.cap Bluetooth: Audio: Add select BT_GATT_DYNAMIC_DB for audio services 2023-04-04 13:36:26 +02:00
Kconfig.csip Bluetooth: Logging: Move all logging symbols together 2023-03-28 10:33:24 +02:00
Kconfig.has Bluetooth: Audio: Add select BT_GATT_DYNAMIC_DB for audio services 2023-04-04 13:36:26 +02:00
Kconfig.mcs Bluetooth: Audio: Add select BT_GATT_DYNAMIC_DB for audio services 2023-04-04 13:36:26 +02:00
Kconfig.mctl Bluetooth: Logging: Move all logging symbols together 2023-03-28 10:33:24 +02:00
Kconfig.micp Bluetooth: Audio: Add select BT_GATT_DYNAMIC_DB for audio services 2023-04-04 13:36:26 +02:00
Kconfig.mpl Bluetooth: Logging: Move all logging symbols together 2023-03-28 10:33:24 +02:00
Kconfig.pacs Bluetooth: Logging: Move all logging symbols together 2023-03-28 10:33:24 +02:00
Kconfig.tbs Bluetooth: Audio: Add select BT_GATT_DYNAMIC_DB for audio services 2023-04-04 13:36:26 +02:00
Kconfig.vcp Bluetooth: Audio: Make VCS optional notify characteristics optional 2023-05-17 19:26:54 +02:00
Kconfig.vocs Bluetooth: Logging: Move all logging symbols together 2023-03-28 10:33:24 +02:00
mcc.c Bluetooth: audio: mcs: Offload notifications to system work queue 2023-05-18 13:35:57 +00:00
mcs_internal.h Bluetooth: Audio: Add BT_MCS_VALID_OP 2023-04-07 11:29:54 +02:00
mcs.c Bluetooth: audio: mcs: Offload notifications to system work queue 2023-05-18 13:35:57 +00:00
media_proxy_internal.h Bluetooth: Audio: Add media player icon URL changed callback 2023-02-20 11:25:42 +01:00
media_proxy.c Bluetooth: Audio: Add BT_MCS_VALID_OBJ_ID 2023-04-07 11:29:54 +02:00
micp_mic_ctlr.c Bluetooth: Audio: Remove "Input" from MICP naming 2023-03-13 18:34:09 +00:00
micp_mic_dev.c
mpl_internal.h Bluetooth: Audio: Add media player icon URL changed callback 2023-02-20 11:25:42 +01:00
mpl.c Bluetooth: Audio: Add missing null checks in mpl 2023-04-07 11:29:54 +02:00
pacs_internal.h
pacs.c Bluetooth: PACS: Set PACS read_buf size to BT_ATT_MAX_ATTRIBUTE_LEN 2023-05-12 15:29:17 +02:00
tbs_client.c
tbs_internal.h
tbs.c bluetooth: audio: Fix TBS call stale state 2023-03-29 15:52:32 +00:00
vcp_internal.h
vcp_vol_ctlr.c Bluetooth: Audio: Add addition vol ctlr input checks 2023-03-02 10:56:27 +01:00
vcp_vol_rend.c Bluetooth: Audio: Make VCS optional notify characteristics optional 2023-05-17 19:26:54 +02:00
vocs_client.c Bluetooth: Audio: Add addition vol ctlr input checks 2023-03-02 10:56:27 +01:00
vocs_internal.h
vocs.c Bluetooth: Audio: Fix return value for VOCS invalid location 2023-03-08 11:07:00 +01:00