Hello Jyri, > + > +static int hdmi_codec_hw_params(struct snd_pcm_substream *substream, > + struct snd_pcm_hw_params *params, > + struct snd_soc_dai *dai) > +{ > + struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai); > + struct hdmi_codec_params hp = { > + .iec = { > + .status = { 0 }, > + .subcode = { 0 }, > + .pad = 0, > + .dig_subframe = { 0 }, > + } > + }; > + int ret; > + > + dev_dbg(dai->dev, "%s() width %d rate %d channels %d\n", __func__, > + params_width(params), params_rate(params), > + params_channels(params)); > + > + ret = snd_pcm_create_iec958_consumer_hw_params(params, hp.iec.status, > + sizeof(hp.iec.status)); I ran into an issue during my test. For I2S, an error is returned by create_iec958_consumer for 32-bits stream (SNDRV_PCM_FMTBIT_S32_LE). I suppose that it makes sense to handle 32-bits configuration for I2S (but also SPDIF), to support software IEC958 formating/pre-formating... To fix issue, just need to add 32-bits with 24-bits case in create_iec958_consumer Regards Arnaud -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html