[alsa-devel] Question about hw_param with Ctrl-Z + fg

Kuninori Morimoto kuninori.morimoto.gx at renesas.com
Tue Apr 4 07:57:28 CEST 2017


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


More information about the Alsa-devel mailing list