diff options
| author | markcs <mcampbellsmith@gmail.com> | 2014-02-27 14:55:34 +0530 | 
|---|---|---|
| committer | Janson Kang <temasek71@gmail.com> | 2014-03-14 16:08:37 +0800 | 
| commit | 1a52fb65c446c907b4ddbd73675dd410b9eb58ac (patch) | |
| tree | 757fb1966b03071591507a23fb511bcedbc64750 /audio | |
| parent | 6be233e3ee30d42ed55fe4f00640fb61957ab44b (diff) | |
| download | device_samsung_i9300-1a52fb65c446c907b4ddbd73675dd410b9eb58ac.zip device_samsung_i9300-1a52fb65c446c907b4ddbd73675dd410b9eb58ac.tar.gz device_samsung_i9300-1a52fb65c446c907b4ddbd73675dd410b9eb58ac.tar.bz2  | |
i9300: audio: hal update
fix issue where audio would stop working in or after call.
Change-Id: I1ad44e2621a30a01f1ebc63bd87eefdb695ff33c
Diffstat (limited to 'audio')
| -rwxr-xr-x | audio/audio_hw.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/audio/audio_hw.c b/audio/audio_hw.c index 3b269f9..682a936 100755 --- a/audio/audio_hw.c +++ b/audio/audio_hw.c @@ -322,26 +322,30 @@ void select_devices(struct m0_audio_device *adev)      /* Turn on new devices first so we don't glitch due to powerdown... */      for (i = 0; i < adev->num_dev_cfgs; i++)      if ((adev->out_device & adev->dev_cfgs[i].mask) && -        !(adev->active_out_device & adev->dev_cfgs[i].mask)) +        !(adev->active_out_device & adev->dev_cfgs[i].mask) && +        !(adev->dev_cfgs[i].mask & AUDIO_DEVICE_BIT_IN))          set_route_by_array(adev->mixer, adev->dev_cfgs[i].on,                     adev->dev_cfgs[i].on_len);      for (i = 0; i < adev->num_dev_cfgs; i++)      if ((adev->in_device & adev->dev_cfgs[i].mask) && -        !(adev->active_in_device & adev->dev_cfgs[i].mask)) +        !(adev->active_in_device & adev->dev_cfgs[i].mask) && +        (adev->dev_cfgs[i].mask & AUDIO_DEVICE_BIT_IN))          set_route_by_array(adev->mixer, adev->dev_cfgs[i].on,                     adev->dev_cfgs[i].on_len);      /* ...then disable old ones. */      for (i = 0; i < adev->num_dev_cfgs; i++)      if (!(adev->out_device & adev->dev_cfgs[i].mask) && -        (adev->active_out_device & adev->dev_cfgs[i].mask)) +        (adev->active_out_device & adev->dev_cfgs[i].mask) && +        !(adev->dev_cfgs[i].mask & AUDIO_DEVICE_BIT_IN))          set_route_by_array(adev->mixer, adev->dev_cfgs[i].off,                     adev->dev_cfgs[i].off_len);      for (i = 0; i < adev->num_dev_cfgs; i++)      if (!(adev->in_device & adev->dev_cfgs[i].mask) && -        (adev->active_in_device & adev->dev_cfgs[i].mask)) +        (adev->active_in_device & adev->dev_cfgs[i].mask) && +        (adev->dev_cfgs[i].mask & AUDIO_DEVICE_BIT_IN))          set_route_by_array(adev->mixer, adev->dev_cfgs[i].off,                     adev->dev_cfgs[i].off_len);  | 
