[PATCH v1 10/10] ASoC: qcom: sm8250: force single channel via RX_1 output

From: Alexey Klimov
Date: Fri Nov 01 2024 - 01:33:53 EST


In case of mono configurations we need to enforce single channel
output. This is required for audio playback on QRB4210 RB2 board.

Cc: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
Signed-off-by: Alexey Klimov <alexey.klimov@xxxxxxxxxx>
---
sound/soc/qcom/sm8250.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c
index 45e0c33fc3f3..7994488d7998 100644
--- a/sound/soc/qcom/sm8250.c
+++ b/sound/soc/qcom/sm8250.c
@@ -39,10 +39,20 @@ static int sm8250_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
SNDRV_PCM_HW_PARAM_RATE);
struct snd_interval *channels = hw_param_interval(params,
SNDRV_PCM_HW_PARAM_CHANNELS);
+ struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0);

rate->min = rate->max = 48000;
channels->min = channels->max = 2;

+ /* Maybe should be moved to driver data variant */
+ switch (cpu_dai->id) {
+ case RX_CODEC_DMA_RX_1:
+ channels->min = channels->max = 1;
+ break;
+ default:
+ break;
+ }
+
return 0;
}

--
2.45.2