audio: Reject incall record request when mode is not IN_CALL
- If application selects AUDIO_SOURCE_VOICE_CALL when voice call is
not active, audio HAL is selecting afe-proxy use case which is
wrong. afe-proxy usecase/device expected to be selected during
USB Voice call scenario only
- Fix is to fail opening the input stream with
AUDIO_DEVICE_IN_TELEPHONY_RX or AUDIO_DEVICE_IN_VOICE_CALL if
current mode is not IN_CALL
CRs-Fixed: 772386
Change-Id: I8ee3e72daec86e26d05b01a117d7a01f7f6b69a8
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index fc4403f..5234624 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -3367,6 +3367,10 @@
in->format = config->format;
if (in->device == AUDIO_DEVICE_IN_TELEPHONY_RX) {
+ if (adev->mode != AUDIO_MODE_IN_CALL) {
+ ret = -EINVAL;
+ goto err_open;
+ }
if (config->sample_rate == 0)
config->sample_rate = AFE_PROXY_SAMPLING_RATE;
if (config->sample_rate != 48000 && config->sample_rate != 16000 &&