Linux Sound subsystem development
 help / color / mirror / Atom feed
* [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints
@ 2025-12-10  6:51 Ravi Hothi
  2025-12-10  6:51 ` [PATCH v2 1/2] ASoC: qcom: q6dsp-lpass-ports: Extend q6dsp-lpass-ports driver to support additional sampling rates Ravi Hothi
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Ravi Hothi @ 2025-12-10  6:51 UTC (permalink / raw)
  To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
	Takashi Iwai
  Cc: linux-sound, linux-arm-msm, linux-kernel, kernel,
	mohammad.rafi.shaik, ajay.nandam

This patch series expands the existing constraints in
the q6dsp-lpass-ports driver to improve compatibility
and flexibility for audio stream configurations. 

The first patch extends the supported sampling rates to cover a wider
range, from 8000 Hz to 192000 Hz, ensuring better compatibility with
diverse audio hardware and allowing more flexible audio stream setups.

The second patch adds support for the 32-bit PCM format
(SNDRV_PCM_FMTBIT_S32_LE) alongside the existing 16-bit
and 24-bit formats, enabling handling of high-resolution
audio streams and improving audio quality for supported hardware.

changes in [v2]:
	- Updated commit description as suggested by Mark Brown.
	- Link to V1 : https://lore.kernel.org/all/20251118100203.2751955-1-ravi.hothi@oss.qualcomm.com/

Ravi Hothi (2):
  ASoC: qcom: q6dsp-lpass-ports: Extend q6dsp-lpass-ports driver to
    support additional sampling rates
  ASoC: qcom: q6dsp-lpass-ports: Update constraints to support 32-bit
    PCM format

 sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c | 108 +++++++++++------------
 1 file changed, 52 insertions(+), 56 deletions(-)


base-commit: 008d3547aae5bc86fac3eda317489169c3fda112
-- 
2.34.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2 1/2] ASoC: qcom: q6dsp-lpass-ports: Extend q6dsp-lpass-ports driver to support additional sampling rates
  2025-12-10  6:51 [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints Ravi Hothi
@ 2025-12-10  6:51 ` Ravi Hothi
  2025-12-10  6:51 ` [PATCH v2 2/2] ASoC: qcom: q6dsp-lpass-ports: Update constraints to support 32-bit PCM format Ravi Hothi
  2025-12-10 13:56 ` [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints Alexey Klimov
  2 siblings, 0 replies; 9+ messages in thread
From: Ravi Hothi @ 2025-12-10  6:51 UTC (permalink / raw)
  To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
	Takashi Iwai
  Cc: linux-sound, linux-arm-msm, linux-kernel, kernel,
	mohammad.rafi.shaik, ajay.nandam

Expand the existing constraints in the q6dsp-lpass-ports driver
to allow a wider range of sampling rates, from 8000 Hz to 192000 Hz.
This change improves compatibility with diverse audio hardware and
provides greater flexibility for audio stream configurations.

Signed-off-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com>
---
 sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c | 73 +++++++++---------------
 1 file changed, 27 insertions(+), 46 deletions(-)

diff --git a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c b/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
index 4eed54b071a5..76421adb5afa 100644
--- a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
+++ b/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
@@ -10,16 +10,14 @@
 #define Q6AFE_TDM_PB_DAI(pre, num, did) {				\
 		.playback = {						\
 			.stream_name = pre" TDM"#num" Playback",	\
-			.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\
-				SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\
-				SNDRV_PCM_RATE_176400,			\
+			.rates = SNDRV_PCM_RATE_8000_192000,		\
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |		\
 				   SNDRV_PCM_FMTBIT_S24_LE |		\
 				   SNDRV_PCM_FMTBIT_S32_LE,		\
 			.channels_min = 1,				\
 			.channels_max = 8,				\
 			.rate_min = 8000,				\
-			.rate_max = 176400,				\
+			.rate_max = 192000,				\
 		},							\
 		.name = #did,						\
 		.id = did,						\
@@ -28,16 +26,14 @@
 #define Q6AFE_TDM_CAP_DAI(pre, num, did) {				\
 		.capture = {						\
 			.stream_name = pre" TDM"#num" Capture",		\
-			.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\
-				SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\
-				SNDRV_PCM_RATE_176400,			\
+			.rates = SNDRV_PCM_RATE_8000_192000,		\
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |		\
 				   SNDRV_PCM_FMTBIT_S24_LE |		\
 				   SNDRV_PCM_FMTBIT_S32_LE,		\
 			.channels_min = 1,				\
 			.channels_max = 8,				\
 			.rate_min = 8000,				\
-			.rate_max = 176400,				\
+			.rate_max = 192000,				\
 		},							\
 		.name = #did,						\
 		.id = did,						\
@@ -46,16 +42,14 @@
 #define Q6AFE_CDC_DMA_RX_DAI(did) {				\
 		.playback = {						\
 			.stream_name = #did" Playback",	\
-			.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\
-				SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\
-				SNDRV_PCM_RATE_176400,			\
+			.rates = SNDRV_PCM_RATE_8000_192000,		\
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |		\
 				   SNDRV_PCM_FMTBIT_S24_LE |		\
 				   SNDRV_PCM_FMTBIT_S32_LE,		\
 			.channels_min = 1,				\
 			.channels_max = 8,				\
 			.rate_min = 8000,				\
-			.rate_max = 176400,				\
+			.rate_max = 192000,				\
 		},							\
 		.name = #did,						\
 		.id = did,						\
@@ -64,16 +58,14 @@
 #define Q6AFE_CDC_DMA_TX_DAI(did) {				\
 		.capture = {						\
 			.stream_name = #did" Capture",		\
-			.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\
-				SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\
-				SNDRV_PCM_RATE_176400,			\
+			.rates = SNDRV_PCM_RATE_8000_192000,		\
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |		\
 				   SNDRV_PCM_FMTBIT_S24_LE |		\
 				   SNDRV_PCM_FMTBIT_S32_LE,		\
 			.channels_min = 1,				\
 			.channels_max = 8,				\
 			.rate_min = 8000,				\
-			.rate_max = 176400,				\
+			.rate_max = 192000,				\
 		},							\
 		.name = #did,						\
 		.id = did,						\
@@ -350,118 +342,108 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
 	}, {
 		.playback = {
 			.stream_name = "Primary MI2S Playback",
-			.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
-				 SNDRV_PCM_RATE_16000,
+			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |
 				   SNDRV_PCM_FMTBIT_S24_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
-			.rate_max =     48000,
+			.rate_max =     192000,
 		},
 		.id = PRIMARY_MI2S_RX,
 		.name = "PRI_MI2S_RX",
 	}, {
 		.capture = {
 			.stream_name = "Primary MI2S Capture",
-			.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
-				 SNDRV_PCM_RATE_16000,
+			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |
 				   SNDRV_PCM_FMTBIT_S24_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
-			.rate_max =     48000,
+			.rate_max =     192000,
 		},
 		.id = PRIMARY_MI2S_TX,
 		.name = "PRI_MI2S_TX",
 	}, {
 		.playback = {
 			.stream_name = "Secondary MI2S Playback",
-			.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
-				 SNDRV_PCM_RATE_16000,
+			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
-			.rate_max =     48000,
+			.rate_max =     192000,
 		},
 		.name = "SEC_MI2S_RX",
 		.id = SECONDARY_MI2S_RX,
 	}, {
 		.capture = {
 			.stream_name = "Secondary MI2S Capture",
-			.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
-				 SNDRV_PCM_RATE_16000,
+			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |
 				   SNDRV_PCM_FMTBIT_S24_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
-			.rate_max =     48000,
+			.rate_max =     192000,
 		},
 		.id = SECONDARY_MI2S_TX,
 		.name = "SEC_MI2S_TX",
 	}, {
 		.playback = {
 			.stream_name = "Tertiary MI2S Playback",
-			.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
-				 SNDRV_PCM_RATE_16000,
+			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
-			.rate_max =     48000,
+			.rate_max =     192000,
 		},
 		.name = "TERT_MI2S_RX",
 		.id = TERTIARY_MI2S_RX,
 	}, {
 		.capture = {
 			.stream_name = "Tertiary MI2S Capture",
-			.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
-				 SNDRV_PCM_RATE_16000,
+			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |
 				   SNDRV_PCM_FMTBIT_S24_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
-			.rate_max =     48000,
+			.rate_max =     192000,
 		},
 		.id = TERTIARY_MI2S_TX,
 		.name = "TERT_MI2S_TX",
 	}, {
 		.playback = {
 			.stream_name = "Quaternary MI2S Playback",
-			.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
-				 SNDRV_PCM_RATE_16000,
+			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
-			.rate_max =     48000,
+			.rate_max =     192000,
 		},
 		.name = "QUAT_MI2S_RX",
 		.id = QUATERNARY_MI2S_RX,
 	}, {
 		.capture = {
 			.stream_name = "Quaternary MI2S Capture",
-			.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
-				 SNDRV_PCM_RATE_16000,
+			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |
 				   SNDRV_PCM_FMTBIT_S24_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
-			.rate_max =     48000,
+			.rate_max =     192000,
 		},
 		.id = QUATERNARY_MI2S_TX,
 		.name = "QUAT_MI2S_TX",
 	}, {
 		.playback = {
 			.stream_name = "Quinary MI2S Playback",
-			.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
-			SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |
-			SNDRV_PCM_RATE_192000,
+			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE,
 			.channels_min = 1,
 			.channels_max = 8,
@@ -473,13 +455,12 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
 	}, {
 		.capture = {
 			.stream_name = "Quinary MI2S Capture",
-			.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
-				 SNDRV_PCM_RATE_16000,
+			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
-			.rate_max =     48000,
+			.rate_max =     192000,
 		},
 		.id = QUINARY_MI2S_TX,
 		.name = "QUIN_MI2S_TX",
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 2/2] ASoC: qcom: q6dsp-lpass-ports: Update constraints to support 32-bit PCM format
  2025-12-10  6:51 [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints Ravi Hothi
  2025-12-10  6:51 ` [PATCH v2 1/2] ASoC: qcom: q6dsp-lpass-ports: Extend q6dsp-lpass-ports driver to support additional sampling rates Ravi Hothi
@ 2025-12-10  6:51 ` Ravi Hothi
  2025-12-10 13:56 ` [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints Alexey Klimov
  2 siblings, 0 replies; 9+ messages in thread
From: Ravi Hothi @ 2025-12-10  6:51 UTC (permalink / raw)
  To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
	Takashi Iwai
  Cc: linux-sound, linux-arm-msm, linux-kernel, kernel,
	mohammad.rafi.shaik, ajay.nandam

Expand the existing constraints by introducing support for
the 32-bit PCM format (SNDRV_PCM_FMTBIT_S32_LE) alongside
the existing 16-bit and 24-bit formats. This enhancement
enables handling of high-resolution audio streams and improves
audio quality for supported hardware.

Signed-off-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com>
---
 sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c | 35 +++++++++++++++++-------
 1 file changed, 25 insertions(+), 10 deletions(-)

diff --git a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c b/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
index 76421adb5afa..8542e620ee02 100644
--- a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
+++ b/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
@@ -344,7 +344,8 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
 			.stream_name = "Primary MI2S Playback",
 			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |
-				   SNDRV_PCM_FMTBIT_S24_LE,
+				   SNDRV_PCM_FMTBIT_S24_LE |
+				   SNDRV_PCM_FMTBIT_S32_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
@@ -357,7 +358,8 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
 			.stream_name = "Primary MI2S Capture",
 			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |
-				   SNDRV_PCM_FMTBIT_S24_LE,
+				   SNDRV_PCM_FMTBIT_S24_LE |
+				   SNDRV_PCM_FMTBIT_S32_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
@@ -369,7 +371,9 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
 		.playback = {
 			.stream_name = "Secondary MI2S Playback",
 			.rates = SNDRV_PCM_RATE_8000_192000,
-			.formats = SNDRV_PCM_FMTBIT_S16_LE,
+			.formats = SNDRV_PCM_FMTBIT_S16_LE |
+				   SNDRV_PCM_FMTBIT_S24_LE |
+				   SNDRV_PCM_FMTBIT_S32_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
@@ -382,7 +386,8 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
 			.stream_name = "Secondary MI2S Capture",
 			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |
-				   SNDRV_PCM_FMTBIT_S24_LE,
+				   SNDRV_PCM_FMTBIT_S24_LE |
+				   SNDRV_PCM_FMTBIT_S32_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
@@ -394,7 +399,9 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
 		.playback = {
 			.stream_name = "Tertiary MI2S Playback",
 			.rates = SNDRV_PCM_RATE_8000_192000,
-			.formats = SNDRV_PCM_FMTBIT_S16_LE,
+			.formats = SNDRV_PCM_FMTBIT_S16_LE |
+				   SNDRV_PCM_FMTBIT_S24_LE |
+				   SNDRV_PCM_FMTBIT_S32_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
@@ -407,7 +414,8 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
 			.stream_name = "Tertiary MI2S Capture",
 			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |
-				   SNDRV_PCM_FMTBIT_S24_LE,
+				   SNDRV_PCM_FMTBIT_S24_LE |
+				   SNDRV_PCM_FMTBIT_S32_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
@@ -419,7 +427,9 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
 		.playback = {
 			.stream_name = "Quaternary MI2S Playback",
 			.rates = SNDRV_PCM_RATE_8000_192000,
-			.formats = SNDRV_PCM_FMTBIT_S16_LE,
+			.formats = SNDRV_PCM_FMTBIT_S16_LE |
+				   SNDRV_PCM_FMTBIT_S24_LE |
+				   SNDRV_PCM_FMTBIT_S32_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
@@ -432,7 +442,8 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
 			.stream_name = "Quaternary MI2S Capture",
 			.rates = SNDRV_PCM_RATE_8000_192000,
 			.formats = SNDRV_PCM_FMTBIT_S16_LE |
-				   SNDRV_PCM_FMTBIT_S24_LE,
+				   SNDRV_PCM_FMTBIT_S24_LE |
+				   SNDRV_PCM_FMTBIT_S32_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
@@ -444,7 +455,9 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
 		.playback = {
 			.stream_name = "Quinary MI2S Playback",
 			.rates = SNDRV_PCM_RATE_8000_192000,
-			.formats = SNDRV_PCM_FMTBIT_S16_LE,
+			.formats = SNDRV_PCM_FMTBIT_S16_LE |
+				   SNDRV_PCM_FMTBIT_S24_LE |
+				   SNDRV_PCM_FMTBIT_S32_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
@@ -456,7 +469,9 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
 		.capture = {
 			.stream_name = "Quinary MI2S Capture",
 			.rates = SNDRV_PCM_RATE_8000_192000,
-			.formats = SNDRV_PCM_FMTBIT_S16_LE,
+			.formats = SNDRV_PCM_FMTBIT_S16_LE |
+				   SNDRV_PCM_FMTBIT_S24_LE |
+				   SNDRV_PCM_FMTBIT_S32_LE,
 			.channels_min = 1,
 			.channels_max = 8,
 			.rate_min =     8000,
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints
  2025-12-10  6:51 [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints Ravi Hothi
  2025-12-10  6:51 ` [PATCH v2 1/2] ASoC: qcom: q6dsp-lpass-ports: Extend q6dsp-lpass-ports driver to support additional sampling rates Ravi Hothi
  2025-12-10  6:51 ` [PATCH v2 2/2] ASoC: qcom: q6dsp-lpass-ports: Update constraints to support 32-bit PCM format Ravi Hothi
@ 2025-12-10 13:56 ` Alexey Klimov
  2025-12-15  7:29   ` Ravi Hothi
  2 siblings, 1 reply; 9+ messages in thread
From: Alexey Klimov @ 2025-12-10 13:56 UTC (permalink / raw)
  To: Ravi Hothi, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
	Jaroslav Kysela, Takashi Iwai
  Cc: linux-sound, linux-arm-msm, linux-kernel, kernel,
	mohammad.rafi.shaik, ajay.nandam

On Wed Dec 10, 2025 at 6:51 AM GMT, Ravi Hothi wrote:
> This patch series expands the existing constraints in
> the q6dsp-lpass-ports driver to improve compatibility
> and flexibility for audio stream configurations. 
>
> The first patch extends the supported sampling rates to cover a wider
> range, from 8000 Hz to 192000 Hz, ensuring better compatibility with
> diverse audio hardware and allowing more flexible audio stream setups.
>
> The second patch adds support for the 32-bit PCM format
> (SNDRV_PCM_FMTBIT_S32_LE) alongside the existing 16-bit
> and 24-bit formats, enabling handling of high-resolution
> audio streams and improving audio quality for supported hardware.

Is q6dsp-lpass-ports involved in compress offloaded playback on
existing devices? If yes, then how is it gonna play with
explicitly setting format/sampling rate to s16le/48k in sndcards drivers?

[..]

Best regards,
Alexey

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints
  2025-12-10 13:56 ` [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints Alexey Klimov
@ 2025-12-15  7:29   ` Ravi Hothi
  2025-12-17 11:38     ` Alexey Klimov
  0 siblings, 1 reply; 9+ messages in thread
From: Ravi Hothi @ 2025-12-15  7:29 UTC (permalink / raw)
  To: Alexey Klimov, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
	Jaroslav Kysela, Takashi Iwai
  Cc: linux-sound, linux-arm-msm, linux-kernel, kernel,
	mohammad.rafi.shaik, ajay.nandam



On 12/10/2025 7:26 PM, Alexey Klimov wrote:
> On Wed Dec 10, 2025 at 6:51 AM GMT, Ravi Hothi wrote:
>> This patch series expands the existing constraints in
>> the q6dsp-lpass-ports driver to improve compatibility
>> and flexibility for audio stream configurations.
>>
>> The first patch extends the supported sampling rates to cover a wider
>> range, from 8000 Hz to 192000 Hz, ensuring better compatibility with
>> diverse audio hardware and allowing more flexible audio stream setups.
>>
>> The second patch adds support for the 32-bit PCM format
>> (SNDRV_PCM_FMTBIT_S32_LE) alongside the existing 16-bit
>> and 24-bit formats, enabling handling of high-resolution
>> audio streams and improving audio quality for supported hardware.
> 
> Is q6dsp-lpass-ports involved in compress offloaded playback on
> existing devices? If yes, then how is it gonna play with
> explicitly setting format/sampling rate to s16le/48k in sndcards drivers?
>


Support for s16le/48k is already available; these patch will expand the 
existing constraint so that customers can use a wider range.

Thanks
Ravi Hothi

> [..]
> 
> Best regards,
> Alexey

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints
  2025-12-15  7:29   ` Ravi Hothi
@ 2025-12-17 11:38     ` Alexey Klimov
  2025-12-17 12:56       ` Srinivas Kandagatla
  0 siblings, 1 reply; 9+ messages in thread
From: Alexey Klimov @ 2025-12-17 11:38 UTC (permalink / raw)
  To: Ravi Hothi, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
	Jaroslav Kysela, Takashi Iwai
  Cc: linux-sound, linux-arm-msm, linux-kernel, kernel,
	mohammad.rafi.shaik, ajay.nandam

On Mon Dec 15, 2025 at 7:29 AM GMT, Ravi Hothi wrote:
>
>
> On 12/10/2025 7:26 PM, Alexey Klimov wrote:
>> On Wed Dec 10, 2025 at 6:51 AM GMT, Ravi Hothi wrote:
>>> This patch series expands the existing constraints in
>>> the q6dsp-lpass-ports driver to improve compatibility
>>> and flexibility for audio stream configurations.
>>>
>>> The first patch extends the supported sampling rates to cover a wider
>>> range, from 8000 Hz to 192000 Hz, ensuring better compatibility with
>>> diverse audio hardware and allowing more flexible audio stream setups.
>>>
>>> The second patch adds support for the 32-bit PCM format
>>> (SNDRV_PCM_FMTBIT_S32_LE) alongside the existing 16-bit
>>> and 24-bit formats, enabling handling of high-resolution
>>> audio streams and improving audio quality for supported hardware.
>> 
>> Is q6dsp-lpass-ports involved in compress offloaded playback on
>> existing devices? If yes, then how is it gonna play with
>> explicitly setting format/sampling rate to s16le/48k in sndcards drivers?
>>
> Support for s16le/48k is already available; these patch will expand the 
> existing constraint so that customers can use a wider range.

Unfortunately, you didn't answer any of my questions or answered
a different one.

Perhaps the main one: is q6dsp-lpass-ports involved in compress offloaded
playback on existing devices?

Thanks,
Alexey


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints
  2025-12-17 11:38     ` Alexey Klimov
@ 2025-12-17 12:56       ` Srinivas Kandagatla
  2025-12-22  4:25         ` Alexey Klimov
  0 siblings, 1 reply; 9+ messages in thread
From: Srinivas Kandagatla @ 2025-12-17 12:56 UTC (permalink / raw)
  To: Alexey Klimov, Ravi Hothi, Srinivas Kandagatla, Liam Girdwood,
	Mark Brown, Jaroslav Kysela, Takashi Iwai
  Cc: linux-sound, linux-arm-msm, linux-kernel, kernel,
	mohammad.rafi.shaik, ajay.nandam



On 12/17/25 11:38 AM, Alexey Klimov wrote:
> On Mon Dec 15, 2025 at 7:29 AM GMT, Ravi Hothi wrote:
>>
>>
>> On 12/10/2025 7:26 PM, Alexey Klimov wrote:
>>> On Wed Dec 10, 2025 at 6:51 AM GMT, Ravi Hothi wrote:
>>>> This patch series expands the existing constraints in
>>>> the q6dsp-lpass-ports driver to improve compatibility
>>>> and flexibility for audio stream configurations.
>>>>
>>>> The first patch extends the supported sampling rates to cover a wider
>>>> range, from 8000 Hz to 192000 Hz, ensuring better compatibility with
>>>> diverse audio hardware and allowing more flexible audio stream setups.
>>>>
>>>> The second patch adds support for the 32-bit PCM format
>>>> (SNDRV_PCM_FMTBIT_S32_LE) alongside the existing 16-bit
>>>> and 24-bit formats, enabling handling of high-resolution
>>>> audio streams and improving audio quality for supported hardware.
>>>
>>> Is q6dsp-lpass-ports involved in compress offloaded playback on
>>> existing devices? If yes, then how is it gonna play with
>>> explicitly setting format/sampling rate to s16le/48k in sndcards drivers?

be_hw_params_fixup callback in machine drivers can select any format
that fits the usecase. currently this is hardcoded for s16le samples and
48K rate, but its not limited to this. This patch is expanding the
allowed range in the dais so that machine drivers should be able to
select other options, ex: for HDMI its better to be at S24LE or S32LE.

>>>
>> Support for s16le/48k is already available; these patch will expand the 
>> existing constraint so that customers can use a wider range.
> 
> Unfortunately, you didn't answer any of my questions or answered
> a different one.
> 
> Perhaps the main one: is q6dsp-lpass-ports involved in compress offloaded
> playback on existing devices?

lpass-ports are the Backend DAI ports, So yes, they will be involved in
all the usecases that deal with handling sinks or sources irrespective
of pcm or compressed content.


--srini>
> Thanks,
> Alexey
> 


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints
  2025-12-17 12:56       ` Srinivas Kandagatla
@ 2025-12-22  4:25         ` Alexey Klimov
  2026-01-05  7:20           ` Srinivas Kandagatla
  0 siblings, 1 reply; 9+ messages in thread
From: Alexey Klimov @ 2025-12-22  4:25 UTC (permalink / raw)
  To: Srinivas Kandagatla, Ravi Hothi, Srinivas Kandagatla,
	Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
  Cc: linux-sound, linux-arm-msm, linux-kernel, kernel,
	mohammad.rafi.shaik, ajay.nandam

On Wed Dec 17, 2025 at 12:56 PM GMT, Srinivas Kandagatla wrote:
>
>
> On 12/17/25 11:38 AM, Alexey Klimov wrote:
>> On Mon Dec 15, 2025 at 7:29 AM GMT, Ravi Hothi wrote:
>>>
>>>
>>> On 12/10/2025 7:26 PM, Alexey Klimov wrote:
>>>> On Wed Dec 10, 2025 at 6:51 AM GMT, Ravi Hothi wrote:
>>>>> This patch series expands the existing constraints in
>>>>> the q6dsp-lpass-ports driver to improve compatibility
>>>>> and flexibility for audio stream configurations.
>>>>>
>>>>> The first patch extends the supported sampling rates to cover a wider
>>>>> range, from 8000 Hz to 192000 Hz, ensuring better compatibility with
>>>>> diverse audio hardware and allowing more flexible audio stream setups.
>>>>>
>>>>> The second patch adds support for the 32-bit PCM format
>>>>> (SNDRV_PCM_FMTBIT_S32_LE) alongside the existing 16-bit
>>>>> and 24-bit formats, enabling handling of high-resolution
>>>>> audio streams and improving audio quality for supported hardware.
>>>>
>>>> Is q6dsp-lpass-ports involved in compress offloaded playback on
>>>> existing devices? If yes, then how is it gonna play with
>>>> explicitly setting format/sampling rate to s16le/48k in sndcards drivers?
>
> be_hw_params_fixup callback in machine drivers can select any format
> that fits the usecase. currently this is hardcoded for s16le samples and
> 48K rate, but its not limited to this. This patch is expanding the
> allowed range in the dais so that machine drivers should be able to
> select other options, ex: for HDMI its better to be at S24LE or S32LE.

Yes. Exactly.
So, should we add kcontrols to machine driver to handle these usecases like
selecting s24le instead of s16le? Or what's the plan?

>>> Support for s16le/48k is already available; these patch will expand the 
>>> existing constraint so that customers can use a wider range.
>> 
>> Unfortunately, you didn't answer any of my questions or answered
>> a different one.
>> 
>> Perhaps the main one: is q6dsp-lpass-ports involved in compress offloaded
>> playback on existing devices?
>
> lpass-ports are the Backend DAI ports, So yes, they will be involved in
> all the usecases that deal with handling sinks or sources irrespective
> of pcm or compressed content.

Thanks,
Alexey


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints
  2025-12-22  4:25         ` Alexey Klimov
@ 2026-01-05  7:20           ` Srinivas Kandagatla
  0 siblings, 0 replies; 9+ messages in thread
From: Srinivas Kandagatla @ 2026-01-05  7:20 UTC (permalink / raw)
  To: Alexey Klimov, Srinivas Kandagatla, Ravi Hothi,
	Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
	Takashi Iwai
  Cc: linux-sound, linux-arm-msm, linux-kernel, kernel,
	mohammad.rafi.shaik, ajay.nandam



On 12/22/25 4:25 AM, Alexey Klimov wrote:
> On Wed Dec 17, 2025 at 12:56 PM GMT, Srinivas Kandagatla wrote:
>>
>>
>> On 12/17/25 11:38 AM, Alexey Klimov wrote:
>>> On Mon Dec 15, 2025 at 7:29 AM GMT, Ravi Hothi wrote:
>>>>
>>>>
>>>> On 12/10/2025 7:26 PM, Alexey Klimov wrote:
>>>>> On Wed Dec 10, 2025 at 6:51 AM GMT, Ravi Hothi wrote:
>>>>>> This patch series expands the existing constraints in
>>>>>> the q6dsp-lpass-ports driver to improve compatibility
>>>>>> and flexibility for audio stream configurations.
>>>>>>
>>>>>> The first patch extends the supported sampling rates to cover a wider
>>>>>> range, from 8000 Hz to 192000 Hz, ensuring better compatibility with
>>>>>> diverse audio hardware and allowing more flexible audio stream setups.
>>>>>>
>>>>>> The second patch adds support for the 32-bit PCM format
>>>>>> (SNDRV_PCM_FMTBIT_S32_LE) alongside the existing 16-bit
>>>>>> and 24-bit formats, enabling handling of high-resolution
>>>>>> audio streams and improving audio quality for supported hardware.
>>>>>
>>>>> Is q6dsp-lpass-ports involved in compress offloaded playback on
>>>>> existing devices? If yes, then how is it gonna play with
>>>>> explicitly setting format/sampling rate to s16le/48k in sndcards drivers?
>>
>> be_hw_params_fixup callback in machine drivers can select any format
>> that fits the usecase. currently this is hardcoded for s16le samples and
>> 48K rate, but its not limited to this. This patch is expanding the
>> allowed range in the dais so that machine drivers should be able to
>> select other options, ex: for HDMI its better to be at S24LE or S32LE.
> 
> Yes. Exactly.
> So, should we add kcontrols to machine driver to handle these usecases like
> selecting s24le instead of s16le? Or what's the plan?
We can always do that if that is how things are wired up at the platform
level on case by case basis.

--srini>
>>>> Support for s16le/48k is already available; these patch will expand the 
>>>> existing constraint so that customers can use a wider range.
>>>
>>> Unfortunately, you didn't answer any of my questions or answered
>>> a different one.
>>>
>>> Perhaps the main one: is q6dsp-lpass-ports involved in compress offloaded
>>> playback on existing devices?
>>
>> lpass-ports are the Backend DAI ports, So yes, they will be involved in
>> all the usecases that deal with handling sinks or sources irrespective
>> of pcm or compressed content.
> 
> Thanks,
> Alexey
> 


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2026-01-05  7:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-10  6:51 [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints Ravi Hothi
2025-12-10  6:51 ` [PATCH v2 1/2] ASoC: qcom: q6dsp-lpass-ports: Extend q6dsp-lpass-ports driver to support additional sampling rates Ravi Hothi
2025-12-10  6:51 ` [PATCH v2 2/2] ASoC: qcom: q6dsp-lpass-ports: Update constraints to support 32-bit PCM format Ravi Hothi
2025-12-10 13:56 ` [PATCH v2 0/2] ASoC: qcom: q6dsp-lpass-ports: Expand sampling rate and PCM format constraints Alexey Klimov
2025-12-15  7:29   ` Ravi Hothi
2025-12-17 11:38     ` Alexey Klimov
2025-12-17 12:56       ` Srinivas Kandagatla
2025-12-22  4:25         ` Alexey Klimov
2026-01-05  7:20           ` Srinivas Kandagatla

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox