Dear Takashi Thank you for your comment > > when 1st buffer was send, > > driver stop. > > 2nd trigger function isn't called. > > Check the raw value returned from the pointer callback, too. > This can be the real cause. I might have been doing a very big misunderstanding. > The pointer callback is supposed to give the currently played position > offset in a ring buffer, and ranged from 0 to buffer_size-1. Does this "ring buffer" mean I should transmit runtime->dma_area many times from offset 0x0 ?? => when I call 4th elapsed, should I send runtime->dma_area + 0x0 again ? If so, my driver get STOP on trigger funtion many times even if I didn't stop it. START STOP underrun!!! START STOP underrun!!! ... Does this correct operation ? Best regards -- Kuninori Morimoto _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel