[roll] Roll fuchsia [bt][a2dp] Suspend stream if permit gets taken during setup

The starting of an A2DP stream is a multi-step asynchronous operation.
In some cases during the setup of A2DP audio, HFP audio can be requested
and will take priority by seizing A2DP's streaming permits. Update A2DP
to be resilient to this case by checking for the validity of the permit
before starting the local A2DP stream. If the permit is unavailable,
don't start the local stream and issue a subsequent Suspend to
synchroize the streaming state with the remote peer.

Add a unit test which reproduces this case and fails in the current
implementation.

Original-Bug: b/306661742
Test: fx test bt-a2dp-lib-test

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/939982
Original-Revision: 5328595cfd5f35d4d407de93493b289b894706ea
GitOrigin-RevId: e8e107e6bc88c823a5d3a8285b9fa2db89082b11
Change-Id: If057bb7b2cdae0f0c2bc7709e12b939628162793
1 file changed
tree: 543921a238251ac57fead49fd0f806d13a97fb5b
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
  14. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.