msm: audio: qdsp6v2: Fix the issue of memory unmap

- Target freeze observed during monkey run.
- Memory unmap getting called from interrupt context,
  which is causing scheduling during atomic operation.
- Avoid calling memory unmap from interrupt context.

(cherry picked from commit a64fae9ba272ba2f689f30bc7b33c8a1fe4445e5)
Signed-off-by: Deepa Madiregama <dmadireg@codeaurora.org>

Change-Id: Iab9372ba1b2d560c7e161f39483478f0342ac30a
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
This commit is contained in:
Deepa Madiregama
2012-10-03 16:19:41 +05:30
committed by Stephen Boyd
parent c265eed0da
commit 23495c9c2e
2 changed files with 2 additions and 0 deletions

View File

@@ -1128,6 +1128,7 @@ static int audio_release(struct inode *inode, struct file *file)
audio->wflush = 0;
audlpa_unmap_ion_region(audio);
audio_disable(audio);
audlpa_unmap_ion_region(audio);
msm_clear_session_id(audio->ac->session);
auddev_unregister_evt_listner(AUDDEV_CLNT_DEC, audio->ac->session);
q6asm_audio_client_free(audio->ac);

View File

@@ -470,6 +470,7 @@ int audio_aio_release(struct inode *inode, struct file *file)
audio->drv_ops.in_flush(audio);
audio_aio_unmap_ion_region(audio);
audio_aio_disable(audio);
audio_aio_unmap_ion_region(audio);
audio_aio_reset_ion_region(audio);
ion_client_destroy(audio->client);
audio->event_abort = 1;