mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-09-21 11:53:01 +00:00
ASoC: msm: Interrupt events in compress free
Interrupt any wait events during free of the compress driver and move spinlock unlock to after the ASM client is freed. Change-Id: Idb865ebbb47b86ac32043ba4562053d3f9795b4d Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
This commit is contained in:
parent
aa310fac06
commit
3740696958
|
@ -1147,6 +1147,8 @@ static int msm_compr_free(struct snd_compr_stream *cstream)
|
|||
pr_err("%s prtd is null\n", __func__);
|
||||
return 0;
|
||||
}
|
||||
prtd->cmd_interrupt = 1;
|
||||
wake_up(&prtd->drain_wait);
|
||||
pdata = snd_soc_platform_get_drvdata(soc_prtd->platform);
|
||||
ac = prtd->audio_client;
|
||||
if (!pdata || !ac) {
|
||||
|
@ -1848,6 +1850,12 @@ static int msm_compr_trigger(struct snd_compr_stream *cstream, int cmd)
|
|||
__func__);
|
||||
break;
|
||||
}
|
||||
|
||||
spin_lock_irqsave(&prtd->lock, flags);
|
||||
prtd->gapless_state.stream_opened[stream_index] = 1;
|
||||
prtd->gapless_state.set_next_stream_id = true;
|
||||
spin_unlock_irqrestore(&prtd->lock, flags);
|
||||
|
||||
rc = msm_compr_send_media_format_block(cstream,
|
||||
stream_id, false);
|
||||
if (rc < 0) {
|
||||
|
@ -1857,10 +1865,6 @@ static int msm_compr_trigger(struct snd_compr_stream *cstream, int cmd)
|
|||
}
|
||||
msm_compr_send_dec_params(cstream, pdata->dec_params[fe_id],
|
||||
stream_id);
|
||||
spin_lock_irqsave(&prtd->lock, flags);
|
||||
prtd->gapless_state.stream_opened[stream_index] = 1;
|
||||
prtd->gapless_state.set_next_stream_id = true;
|
||||
spin_unlock_irqrestore(&prtd->lock, flags);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue