Hi Sakamoto-san, Mark Thank you for your feedback > > Ctrl-Z case > > - aplay xxx.wav > > => - hw_param > > - SNDRV_PCM_TRIGGER_START > > - Ctrl-Z > > - SNDRV_PCM_TRIGGER_STOP > > - fg > > => - ## no hw_param here > > - SNDRV_PCM_TRIGGER_START > > - Ctrl-C (stop) > > - SNDRV_PCM_TRIGGER_STOP > > No issues. > > I think it better to implement what you want in any .prepare > callbacks, instead of the .be_hw_params_fixup callback, because in > this case, PCM substream lapses into XRUN state in call graph from > your hw IRQ handler. Typical applications recover from this state by > calling ioctl(PREPARE), without any call of ioctl(HW_PARAMS). > > Actually, you can see applications call ioctl(PREPARE), before you see > call of 'struct snd_pcm_ops.trigger(START)'. Hmm... Above .be_hw_params_fixup is used to convert sampling rate or channel number or some other related things between SoC / Codec as DPCM feature. Thus, I can't switch to .be_hw_params_fixup to .prepare I guess. But Mark, am I misunderstanding ? Best regards --- Kuninori Morimoto _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel