diff options
author | Simon Wilson <simonwilson@google.com> | 2011-09-13 13:15:07 -0700 |
---|---|---|
committer | Simon Wilson <simonwilson@google.com> | 2011-09-13 14:07:29 -0700 |
commit | e274660f22d26d649e77f21900ce3d59bd0db728 (patch) | |
tree | c2422cd7ad97178691c4cb9ae0278132198c9889 /audio/audio_hw.c | |
parent | f95371fed2d8f17892f5249748de9bc730fc03ab (diff) | |
download | device_samsung_tuna-e274660f22d26d649e77f21900ce3d59bd0db728.zip device_samsung_tuna-e274660f22d26d649e77f21900ce3d59bd0db728.tar.gz device_samsung_tuna-e274660f22d26d649e77f21900ce3d59bd0db728.tar.bz2 |
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
Diffstat (limited to 'audio/audio_hw.c')
-rw-r--r-- | audio/audio_hw.c | 3 |
1 files changed, 0 insertions, 3 deletions
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); } |