From f8af944b18d253cf9f85ea1b7c3e676800785f7e Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Thu, 1 Feb 2024 17:32:44 +0100 Subject: [PATCH] ASoC: DACplus - fix 16bit sample support in clock consumer mode The former code did not adjust the physical sample width when in clock consumer mode and has taken the fixed 32 bit default. This has caused the audio to be played at half its frequency due to the fixed bclk_ratio of 64. Signed-off-by: Joerg Schambacher --- sound/soc/bcm/hifiberry_dacplus.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sound/soc/bcm/hifiberry_dacplus.c b/sound/soc/bcm/hifiberry_dacplus.c index 1d89854..621f393 100644 --- a/sound/soc/bcm/hifiberry_dacplus.c +++ b/sound/soc/bcm/hifiberry_dacplus.c @@ -279,13 +279,11 @@ static int snd_rpi_hifiberry_dacplus_hw_params( int ret = 0; struct snd_soc_pcm_runtime *rtd = substream->private_data; int channels = params_channels(params); - int width = 32; + int width = snd_pcm_format_physical_width(params_format(params)); if (snd_rpi_hifiberry_is_dacpro) { struct snd_soc_component *component = asoc_rtd_to_codec(rtd, 0)->component; - width = snd_pcm_format_physical_width(params_format(params)); - snd_rpi_hifiberry_dacplus_set_sclk(component, params_rate(params)); -- 2.7.4