[alsa-devel] How to propagate parameters from FE to BE with compressed audio interfaces

Daniel Baluta daniel.baluta at nxp.com
Wed Nov 14 16:35:28 CET 2018


Hello,

soc_compr_set_params_fe calls dpcm_be_dai_hw_params in order to setup
BE hw_params.

Is there a way to transfer parameters like for example the rate from FE
to BE?

In soc_compr_set_params_fe there is this code:

*
* Create an empty hw_params for the BE as the machine driver must
* fix this up to match DSP decoder and ASRC configuration.
* I.e. machine driver fixup for compressed BE is mandatory.
*/
memset(&fe->dpcm[fe_substream->stream].hw_params, 0,
       sizeof(struct snd_pcm_hw_params));

So, information about parameters is just ignored.

The only way we can setup hw_params for BE is via 
be_hw_params_fixup() but this function doesn't have any information
from FE.

My use case is something like this:

FE:
    - cpu: FSL SAI DAI interface
    - platform: DSP 
    - codec: dummy codec
BE:
    - cpu: dummy
    - platform: dummy
    - codec: cs42888.

codec could handle 44100Hz and 48000Hz streams, but the BE doesn't have
any way to know what is the rate cplay sets to FE.

thanks,
Daniel.


More information about the Alsa-devel mailing list