ASoC: msm: qdsp6v2: fix non-gapless transition failure

During non-gapless transition, there is an indefinite wait in
drain until either eos_ack or cmd_interrupt is set. This results
in playback getting stuck and occurs because cmd_interrupt is
not set in TRIGGER_STOP as gapless_transition is set to 1 during
partial drain of earlier stream.

Fix the issue by setting gapless_transition to 0 when gapless
fails which ensures that cmd_interrupt is set in TRIGGER_STOP.

CRs-Fixed: 1027991
Change-Id: I47d2d45df8686f25e8170a84fcaf68e143f6e4f6
Signed-off-by: Satya Krishna Pindiproli <satyak@codeaurora.org>
This commit is contained in:
Satya Krishna Pindiproli 2016-06-23 13:50:03 +05:30 committed by Kyle Yan
parent 9ee577f0c1
commit 4ff0e8648b

View file

@ -1763,6 +1763,7 @@ static int msm_compr_trigger(struct snd_compr_stream *cstream, int cmd)
stream can be used for gapless playback
*/
prtd->gapless_state.set_next_stream_id = false;
prtd->gapless_state.gapless_transition = 0;
pr_debug("%s:CMD_EOS stream_id %d\n", __func__, ac->stream_id);
prtd->eos_ack = 0;