hal: Send A2DP backend config for each routed stream
There exists a corner case where A2DP backend config is not
sent after BE is closed and reopened leading to slimbus
running at default rate. This happens because A2DP snd_device
is already active, hence backend config for A2DP is not sent.
However, audio route is disabled and enabled i.e. BE is closed
and reopened. Thus, slimbus is configured at 8 KHz which is a
problem for A2DP.
Fix this by sending backend config for each stream that gets
routed to A2DP and A2DP snd_device is enabled.
Change-Id: I3edfcaaac9d0bc81f7be4090f8057f3947b1e5d0
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 12e89dc..e8e71da 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1385,6 +1385,11 @@
new_snd_devices) != 0)) {
ALOGV("%s: snd_device(%d: %s) is already active",
__func__, snd_device, device_name);
+ /* Set backend config for A2DP to ensure slimbus configuration
+ is correct if A2DP is already active and backend is closed
+ and re-opened */
+ if (snd_device == SND_DEVICE_OUT_BT_A2DP)
+ audio_extn_a2dp_set_source_backend_cfg();
return 0;
}