1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter.git synced 2025-02-15 04:42:02 +00:00
openmptcprouter/6.6/target/linux/bcm27xx/patches-6.6/0879-ASoC-DACplusADCPro-fix-16bit-sample-support-in-clock.patch
Ycarus (Yannick Chabanois) 12de1d2995 Add RPI kernel 6.6 support
2024-04-05 20:55:33 +02:00

43 lines
1.6 KiB
Diff

From 6b9407605037a3dfd06ec259a49a4d6c78ff24dd Mon Sep 17 00:00:00 2001
From: Joerg Schambacher <joerg@hifiberry.com>
Date: Fri, 2 Feb 2024 08:51:06 +0100
Subject: [PATCH 0879/1002] ASoC: DACplusADCPro - 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.
Problem appears only on PI5 as on the former PIs the I2S module
did simply run at fixed 64x rate.
Signed-off-by: Joerg Schambacher <joerg@hifiberry.com>
---
sound/soc/bcm/hifiberry_dacplusadcpro.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/sound/soc/bcm/hifiberry_dacplusadcpro.c b/sound/soc/bcm/hifiberry_dacplusadcpro.c
index 517a70fba7d7..0c03dfd3a29d 100644
--- a/sound/soc/bcm/hifiberry_dacplusadcpro.c
+++ b/sound/soc/bcm/hifiberry_dacplusadcpro.c
@@ -383,15 +383,13 @@ static int snd_rpi_hifiberry_dacplusadcpro_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));
struct snd_soc_component *dac = asoc_rtd_to_codec(rtd, 0)->component;
struct snd_soc_dai *dai = asoc_rtd_to_codec(rtd, 0);
struct snd_soc_dai_driver *drv = dai->driver;
const struct snd_soc_dai_ops *ops = drv->ops;
if (snd_rpi_hifiberry_is_dacpro) {
- width = snd_pcm_format_physical_width(params_format(params));
-
snd_rpi_hifiberry_dacplusadcpro_set_sclk(dac,
params_rate(params));
--
2.44.0