diff --git a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c b/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
index 7174015e4e6813c8f32a1d29344e8afb2e056d23..7c3f8735831f6631309fdeb09eaeac310b8f3126 100644
--- a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
+++ b/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
@@ -1507,6 +1507,7 @@ static int msm_compr_pointer(struct snd_compr_stream *cstream,
uint64_t timestamp = 0;
int rc = 0, first_buffer;
unsigned long flags;
+ uint32_t gapless_transition;
pr_debug("%s\n", __func__);
memset(&tstamp, 0x0, sizeof(struct snd_compr_tstamp));
@@ -1526,13 +1527,17 @@ static int msm_compr_pointer(struct snd_compr_stream *cstream,
return -EINVAL;
}
+ gapless_transition = prtd->gapless_state.gapless_transition;
spin_unlock_irqrestore(&prtd->lock, flags);
/*
Query timestamp from DSP if some data is with it.
This prevents timeouts.
*/
- if (!first_buffer) {
+ if (!first_buffer || gapless_transition) {
+ if (gapless_transition)
+ pr_debug("session time in gapless transition");
+
rc = q6asm_get_session_time(prtd->audio_client, ×tamp);
if (rc < 0) {
pr_err("%s: Get Session Time return value =%lld\n",