From 164274d50c1e1e7ed23f0a81e1fbdb5ec59aa35f Mon Sep 17 00:00:00 2001 From: Simon Wilson Date: Tue, 13 Sep 2011 13:15:07 -0700 Subject: audio: don't clear output devices at standby The output devices in adev->devices are cleared sometimes when making a call. The sequence is as follows: 1. do_output_standby() (clears bits in adev->devices) 2. set_mode to IN_CALL state 3. select_output_device() reads the bits in adev->devices, but none are set. As a result, with no valid route, call audio fails. Fixes bug 5309421 Change-Id: I81efe325d8b482f7474750c08d353ca989da9939 --- audio/audio_hw.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'audio') diff --git a/audio/audio_hw.c b/audio/audio_hw.c index 8d7a11f..45ece23 100644 --- a/audio/audio_hw.c +++ b/audio/audio_hw.c @@ -877,8 +877,6 @@ static int start_output_stream(struct tuna_stream_out *out) if (adev->mode != AUDIO_MODE_IN_CALL) { /* FIXME: only works if only one output can be active at a time */ - adev->devices &= ~AUDIO_DEVICE_OUT_ALL; - adev->devices |= out->device; select_output_device(adev); } @@ -1077,7 +1075,6 @@ static int do_output_standby(struct tuna_stream_out *out) be done when the call is ended */ if (adev->mode != AUDIO_MODE_IN_CALL) { /* FIXME: only works if only one output can be active at a time */ - adev->devices &= ~AUDIO_DEVICE_OUT_ALL; set_route_by_array(adev->mixer, hs_output, 0); set_route_by_array(adev->mixer, hf_output, 0); } -- cgit v1.1