Skip to content

Commit c7830d8

Browse files
committed
dai: fix dai pointer for START
After remove wait in dai trigger stop/puase we need also to restore pointer for start just like release. Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
1 parent 251e68f commit c7830d8

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

src/audio/dai.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,8 +543,18 @@ static int dai_comp_trigger(struct comp_dev *dev, int cmd)
543543
switch (cmd) {
544544
case COMP_TRIGGER_START:
545545
trace_dai("tsa");
546-
if (!dd->pointer_init)
546+
if (!dd->pointer_init) {
547547
dai_pointer_init(dev);
548+
} else {
549+
/* recover state for ALSA XRUN */
550+
if (dd->xrun == 0) {
551+
/* set valid buffer pointer */
552+
dai_buffer_process(dev);
553+
554+
/* recover valid start position */
555+
ret = dma_release(dd->dma, dd->chan);
556+
}
557+
}
548558
/* only start the DAI if we are not XRUN handling */
549559
if (dd->xrun == 0) {
550560
/* start the DAI */

0 commit comments

Comments
 (0)