[alsa-devel] [PATCH 2/3] ASoC: wm8741: Set OSR mode in hw_params()

Charles Keepax ckeepax at opensource.cirrus.com
Tue Sep 5 18:12:21 CEST 2017


On Mon, Sep 04, 2017 at 09:34:12PM +0200, Sergej Sawazki wrote:
> +	/* oversampling rate */
> +	if (params_rate(params) > 96000)
> +		mode |= 0x0040;
> +	else if (params_rate(params) > 48000)
> +		mode |= 0x0020;

Should this not have a case for <= 48k as well? To reset the mode
if it was set on a previous playback.

> +
>  	/* bit size */
>  	switch (params_width(params)) {
>  	case 16:
> @@ -243,6 +250,7 @@ static int wm8741_hw_params(struct snd_pcm_substream *substream,
>  		params_width(params), params_rate(params));
>  
>  	snd_soc_write(codec, WM8741_FORMAT_CONTROL, iface);
> +	snd_soc_write(codec, WM8741_MODE_CONTROL_1, mode);

Better to use an update_bits rather than basically open-code it
with read and then this write.

Thanks,
Charles


More information about the Alsa-devel mailing list