On Mon, Jan 27, 2014 at 09:48:54AM +0100, Jean-Francois Moine wrote: > + /* change the snd_soc_pcm_stream values of the driver */ > + stream->rates = rate_mask; > + stream->channels_max = max_channels; > + stream->formats = formats; > + /* copy the DAI driver to a writable area */ > + dai_drv = devm_kzalloc(&pdev->dev, sizeof(tda998x_dai), GFP_KERNEL); > + if (!dai_drv) > + return -ENOMEM; > + memcpy(dai_drv, tda998x_dai, sizeof(tda998x_dai)); > + The code should be doing this by setting constraints based on the current setup rather than by editing the data structure - the expecation is very much that the data won't change so this prevents surprises with future work on the core.