Branch: refs/heads/master Home: https://github.com/bluez/bluez Commit: a14d59725ef35d91b8504770046c701d0a2efe07 https://github.com/bluez/bluez/commit/a14d59725ef35d91b8504770046c701d0a2efe07 Author: Pauli Virtanen <pav@xxxxxx> Date: 2024-11-04 (Mon, 04 Nov 2024) Changed paths: M profiles/audio/transport.c Log Message: ----------- transport: don't disconnect A2DP if canceling Acquire() with Release() User can cancel transport acquire by calling Release() while Acquire() is in progress. This calls a2dp_cancel() which sends AVDTP_ABORT_CMD, forcing AVDTP state transition to IDLE, and A2DP profile disconnects. However, Release()/Acquire() should only result to transitions between STREAMING/OPEN. The expected behavior is that either these calls return error, or they block until the target state is reached. Fix by: Release() during pending Acquire() first sends error reply to the Acquire. Then it waits for START to complete, then sends SUSPEND, and after that completes, then it replies. This also fixes SetConfiguration() after canceled Acquire(), which previously did not work due to AVDTP disconnect. Now it does START/SUSPEND -> CLOSE -> reconfigure. Commit: 664a5d3785a1a57989d236b6fd649321a39451f5 https://github.com/bluez/bluez/commit/664a5d3785a1a57989d236b6fd649321a39451f5 Author: Pauli Virtanen <pav@xxxxxx> Date: 2024-11-04 (Mon, 04 Nov 2024) Changed paths: M profiles/audio/a2dp.c Log Message: ----------- a2dp: don't change setup sep when it is reconfiguring If a2dp_resume/a2dp_suspend are called while setup is being reconfigured, they make the reconfiguration use wrong SEP. This occurs if transport Acquire/Release are called while reconfiguration is waiting for CLOSE_RSP. Fix by failing a2dp_resume/suspend early without changing the setup, if it is reconfiguring. Such resume/suspend calls would in any case fail, because avdtp_close(stream) has been done, so avdtp_suspend/resume would return error. Compare: https://github.com/bluez/bluez/compare/0845b8f6ef2a...664a5d3785a1 To unsubscribe from these emails, change your notification settings at https://github.com/bluez/bluez/settings/notifications