* [PATCH v1 0/4] Enable audio over HDMI and
@ 2026-04-13 9:19 Kumar Anurag
2026-04-13 9:19 ` [PATCH v1 1/4] arm64: dts: qcom: Enable secondary mi2s Kumar Anurag
` (5 more replies)
0 siblings, 6 replies; 16+ messages in thread
From: Kumar Anurag @ 2026-04-13 9:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai
Cc: linux-arm-msm, devicetree, linux-kernel, linux-sound,
Kumar Anurag
This series adds the dt and driver changes for enabling
audio over HDMI and Displayport.
Kumar Anurag (4):
arm64: dts: qcom: Enable secondary mi2s
arm64: dts: qcom: qcs6490: Enable DP audio
ASoC: qcom: q6dsp: Update bit format support for secondary i2s
ASoC: qcom: sc8280xp: don't force S16_LE in hw_params fixup
arch/arm64/boot/dts/qcom/kodiak.dtsi | 5 ++
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 59 ++++++++++++++++++++
sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c | 7 ++-
sound/soc/qcom/sc8280xp.c | 2 -
4 files changed, 69 insertions(+), 4 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v1 1/4] arm64: dts: qcom: Enable secondary mi2s
2026-04-13 9:19 [PATCH v1 0/4] Enable audio over HDMI and Kumar Anurag
@ 2026-04-13 9:19 ` Kumar Anurag
2026-04-14 11:58 ` Konrad Dybcio
2026-04-14 14:56 ` Dmitry Baryshkov
2026-04-13 9:19 ` [PATCH v1 2/4] arm64: dts: qcom: qcs6490: Enable DP audio Kumar Anurag
` (4 subsequent siblings)
5 siblings, 2 replies; 16+ messages in thread
From: Kumar Anurag @ 2026-04-13 9:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai
Cc: linux-arm-msm, devicetree, linux-kernel, linux-sound,
Kumar Anurag
Enable secondary mi2s to support HDMI audio.
Signed-off-by: Kumar Anurag <kumar.singh@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/kodiak.dtsi | 5 +++
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 43 ++++++++++++++++++++
2 files changed, 48 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qcom/kodiak.dtsi
index 6079e67ea829..d1009debc12b 100644
--- a/arch/arm64/boot/dts/qcom/kodiak.dtsi
+++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi
@@ -5827,6 +5827,11 @@ mi2s1_ws: mi2s1-ws-state {
function = "mi2s1_ws";
};
+ mi2s1_mclk: mi2s1-mclk-state {
+ pins = "gpio105";
+ function = "sec_mi2s";
+ };
+
pcie0_clkreq_n: pcie0-clkreq-n-state {
pins = "gpio88";
function = "pcie0_clkreqn";
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
index e3d2f01881ae..2e4062052828 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
@@ -672,6 +672,7 @@ &i2c0 {
lt9611_codec: hdmi-bridge@2b {
compatible = "lontium,lt9611uxc";
reg = <0x2b>;
+ #sound-dai-cells = <1>;
interrupts-extended = <&tlmm 24 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&pm7250b_gpios 2 GPIO_ACTIVE_HIGH>;
@@ -1110,6 +1111,9 @@ &sound {
compatible = "qcom,qcs6490-rb3gen2-sndcard";
model = "QCS6490-RB3Gen2";
+ pinctrl-0 = <&mi2s1_data0>, <&mi2s1_mclk>, <&mi2s1_sclk>, <&mi2s1_ws>;
+ pinctrl-names = "default";
+
audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
"SpkrRight IN", "WSA_SPK2 OUT",
"VA DMIC0", "vdd-micb",
@@ -1149,6 +1153,22 @@ platform {
sound-dai = <&q6apm>;
};
};
+
+ mi2s1-playback-dai-link {
+ link-name = "Secondary MI2S Playback";
+
+ codec {
+ sound-dai = <<9611_codec 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai SECONDARY_MI2S_RX>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
};
&swr2 {
@@ -1437,3 +1457,26 @@ &lpass_audiocc {
compatible = "qcom,qcm6490-lpassaudiocc";
/delete-property/ power-domains;
};
+
+&mi2s1_data0 {
+ drive-strength = <8>;
+ bias-disable;
+};
+
+&mi2s1_mclk {
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+};
+
+&mi2s1_sclk {
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+};
+
+&mi2s1_ws {
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v1 2/4] arm64: dts: qcom: qcs6490: Enable DP audio
2026-04-13 9:19 [PATCH v1 0/4] Enable audio over HDMI and Kumar Anurag
2026-04-13 9:19 ` [PATCH v1 1/4] arm64: dts: qcom: Enable secondary mi2s Kumar Anurag
@ 2026-04-13 9:19 ` Kumar Anurag
2026-04-14 9:28 ` Konrad Dybcio
2026-04-14 14:58 ` Dmitry Baryshkov
2026-04-13 9:19 ` [PATCH v1 3/4] ASoC: qcom: q6dsp: Update bit format support for secondary i2s Kumar Anurag
` (3 subsequent siblings)
5 siblings, 2 replies; 16+ messages in thread
From: Kumar Anurag @ 2026-04-13 9:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai
Cc: linux-arm-msm, devicetree, linux-kernel, linux-sound,
Kumar Anurag
Add new dai link to enable DP audio.
Signed-off-by: Kumar Anurag <kumar.singh@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
index 2e4062052828..90fd8822dabd 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
@@ -1169,6 +1169,22 @@ platform {
sound-dai = <&q6apm>;
};
};
+
+ dp-dai-link {
+ link-name = "DisplayPort0 Playback";
+
+ codec {
+ sound-dai = <&mdss_dp>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai DISPLAY_PORT_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
};
&swr2 {
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v1 3/4] ASoC: qcom: q6dsp: Update bit format support for secondary i2s
2026-04-13 9:19 [PATCH v1 0/4] Enable audio over HDMI and Kumar Anurag
2026-04-13 9:19 ` [PATCH v1 1/4] arm64: dts: qcom: Enable secondary mi2s Kumar Anurag
2026-04-13 9:19 ` [PATCH v1 2/4] arm64: dts: qcom: qcs6490: Enable DP audio Kumar Anurag
@ 2026-04-13 9:19 ` Kumar Anurag
2026-04-14 9:54 ` Konrad Dybcio
` (2 more replies)
2026-04-13 9:19 ` [PATCH v1 4/4] ASoC: qcom: sc8280xp: don't force S16_LE in hw_params fixup Kumar Anurag
` (2 subsequent siblings)
5 siblings, 3 replies; 16+ messages in thread
From: Kumar Anurag @ 2026-04-13 9:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai
Cc: linux-arm-msm, devicetree, linux-kernel, linux-sound,
Kumar Anurag
Add 32bit for playback and capture over secondary mi2s.
Signed-off-by: Kumar Anurag <kumar.singh@oss.qualcomm.com>
---
sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c b/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
index 4eed54b071a5..0664f18d7a44 100644
--- a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
+++ b/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
@@ -380,7 +380,9 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
.stream_name = "Secondary MI2S Playback",
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
SNDRV_PCM_RATE_16000,
- .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,
@@ -394,7 +396,8 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
SNDRV_PCM_RATE_16000,
.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,
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v1 4/4] ASoC: qcom: sc8280xp: don't force S16_LE in hw_params fixup
2026-04-13 9:19 [PATCH v1 0/4] Enable audio over HDMI and Kumar Anurag
` (2 preceding siblings ...)
2026-04-13 9:19 ` [PATCH v1 3/4] ASoC: qcom: q6dsp: Update bit format support for secondary i2s Kumar Anurag
@ 2026-04-13 9:19 ` Kumar Anurag
2026-04-14 11:40 ` Mark Brown
2026-04-15 11:06 ` Alexey Klimov
2026-04-14 14:54 ` [PATCH v1 0/4] Enable audio over HDMI and Dmitry Baryshkov
2026-04-14 14:58 ` Dmitry Baryshkov
5 siblings, 2 replies; 16+ messages in thread
From: Kumar Anurag @ 2026-04-13 9:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai
Cc: linux-arm-msm, devicetree, linux-kernel, linux-sound,
Kumar Anurag
The machine driver was unconditionally forcing S16_LE in
sc8280xp_be_hw_params_fixup(), which prevents links (e.g. HDMI bridges)
that require 32-bit formats from working. Drop the format override and
keep only the fixed rate/channels constraints.
Signed-off-by: Kumar Anurag <kumar.singh@oss.qualcomm.com>
---
sound/soc/qcom/sc8280xp.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/sound/soc/qcom/sc8280xp.c b/sound/soc/qcom/sc8280xp.c
index 7925aa3f63ba..c00eabf200b7 100644
--- a/sound/soc/qcom/sc8280xp.c
+++ b/sound/soc/qcom/sc8280xp.c
@@ -75,10 +75,8 @@ static int sc8280xp_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_mask *fmt = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT);
rate->min = rate->max = 48000;
- snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S16_LE);
channels->min = 2;
channels->max = 2;
switch (cpu_dai->id) {
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v1 2/4] arm64: dts: qcom: qcs6490: Enable DP audio
2026-04-13 9:19 ` [PATCH v1 2/4] arm64: dts: qcom: qcs6490: Enable DP audio Kumar Anurag
@ 2026-04-14 9:28 ` Konrad Dybcio
2026-04-14 14:58 ` Dmitry Baryshkov
1 sibling, 0 replies; 16+ messages in thread
From: Konrad Dybcio @ 2026-04-14 9:28 UTC (permalink / raw)
To: Kumar Anurag, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Srinivas Kandagatla,
Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-arm-msm, devicetree, linux-kernel, linux-sound
On 4/13/26 11:19 AM, Kumar Anurag wrote:
> Add new dai link to enable DP audio.
>
> Signed-off-by: Kumar Anurag <kumar.singh@oss.qualcomm.com>
> ---
subject: qcs6490-rb3gen2
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 3/4] ASoC: qcom: q6dsp: Update bit format support for secondary i2s
2026-04-13 9:19 ` [PATCH v1 3/4] ASoC: qcom: q6dsp: Update bit format support for secondary i2s Kumar Anurag
@ 2026-04-14 9:54 ` Konrad Dybcio
2026-04-14 11:38 ` Mark Brown
2026-04-14 14:21 ` Srinivas Kandagatla
2 siblings, 0 replies; 16+ messages in thread
From: Konrad Dybcio @ 2026-04-14 9:54 UTC (permalink / raw)
To: Kumar Anurag, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Srinivas Kandagatla,
Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-arm-msm, devicetree, linux-kernel, linux-sound
On 4/13/26 11:19 AM, Kumar Anurag wrote:
> Add 32bit for playback and capture over secondary mi2s.
>
> Signed-off-by: Kumar Anurag <kumar.singh@oss.qualcomm.com>
> ---
Would this apply to the other 5 I2S ports as well?
Konrad
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 3/4] ASoC: qcom: q6dsp: Update bit format support for secondary i2s
2026-04-13 9:19 ` [PATCH v1 3/4] ASoC: qcom: q6dsp: Update bit format support for secondary i2s Kumar Anurag
2026-04-14 9:54 ` Konrad Dybcio
@ 2026-04-14 11:38 ` Mark Brown
2026-04-14 14:21 ` Srinivas Kandagatla
2 siblings, 0 replies; 16+ messages in thread
From: Mark Brown @ 2026-04-14 11:38 UTC (permalink / raw)
To: Kumar Anurag
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Jaroslav Kysela,
Takashi Iwai, linux-arm-msm, devicetree, linux-kernel,
linux-sound
[-- Attachment #1: Type: text/plain, Size: 342 bytes --]
On Mon, Apr 13, 2026 at 02:19:36AM -0700, Kumar Anurag wrote:
> Add 32bit for playback and capture over secondary mi2s.
> - .formats = SNDRV_PCM_FMTBIT_S16_LE,
> + .formats = SNDRV_PCM_FMTBIT_S16_LE |
> + SNDRV_PCM_FMTBIT_S24_LE |
> + SNDRV_PCM_FMTBIT_S32_LE,
The commit message said 32 bit but this is both 24 and 32 bit.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 4/4] ASoC: qcom: sc8280xp: don't force S16_LE in hw_params fixup
2026-04-13 9:19 ` [PATCH v1 4/4] ASoC: qcom: sc8280xp: don't force S16_LE in hw_params fixup Kumar Anurag
@ 2026-04-14 11:40 ` Mark Brown
2026-04-15 11:06 ` Alexey Klimov
1 sibling, 0 replies; 16+ messages in thread
From: Mark Brown @ 2026-04-14 11:40 UTC (permalink / raw)
To: Kumar Anurag
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Jaroslav Kysela,
Takashi Iwai, linux-arm-msm, devicetree, linux-kernel,
linux-sound
[-- Attachment #1: Type: text/plain, Size: 872 bytes --]
On Mon, Apr 13, 2026 at 02:19:37AM -0700, Kumar Anurag wrote:
> The machine driver was unconditionally forcing S16_LE in
> sc8280xp_be_hw_params_fixup(), which prevents links (e.g. HDMI bridges)
> that require 32-bit formats from working. Drop the format override and
> keep only the fixed rate/channels constraints.
> struct snd_interval *channels = hw_param_interval(params,
> SNDRV_PCM_HW_PARAM_CHANNELS);
> - struct snd_mask *fmt = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT);
>
> rate->min = rate->max = 48000;
> - snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S16_LE);
This breaks compressed playback, for compressed streams we need to
override the format since the DSP will be converting an input compressed
stream to a PCM one. See 9565c9d53c5b (ASoC: qcom: sc8280xp: explicitly
set S16LE format in sc8280xp_be_hw_params_fixup()).
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 1/4] arm64: dts: qcom: Enable secondary mi2s
2026-04-13 9:19 ` [PATCH v1 1/4] arm64: dts: qcom: Enable secondary mi2s Kumar Anurag
@ 2026-04-14 11:58 ` Konrad Dybcio
2026-04-14 14:56 ` Dmitry Baryshkov
1 sibling, 0 replies; 16+ messages in thread
From: Konrad Dybcio @ 2026-04-14 11:58 UTC (permalink / raw)
To: Kumar Anurag, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Srinivas Kandagatla,
Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-arm-msm, devicetree, linux-kernel, linux-sound
On 4/13/26 11:19 AM, Kumar Anurag wrote:
> Enable secondary mi2s to support HDMI audio.
>
> Signed-off-by: Kumar Anurag <kumar.singh@oss.qualcomm.com>
> ---
[...]
> +&mi2s1_data0 {
> + drive-strength = <8>;
> + bias-disable;
> +};
> +
> +&mi2s1_mclk {
> + drive-strength = <8>;
> + bias-disable;
> + output-high;
> +};
> +
> +&mi2s1_sclk {
> + drive-strength = <8>;
> + bias-disable;
> + output-high;
> +};
> +
> +&mi2s1_ws {
> + drive-strength = <8>;
> + bias-disable;
> + output-high;
For these pins in their "mission mode" function, do we expect these
pincfg settings to ever change (i.e. across boards, will the drive-strength/
bias/output properties differ?)
Konrad
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 3/4] ASoC: qcom: q6dsp: Update bit format support for secondary i2s
2026-04-13 9:19 ` [PATCH v1 3/4] ASoC: qcom: q6dsp: Update bit format support for secondary i2s Kumar Anurag
2026-04-14 9:54 ` Konrad Dybcio
2026-04-14 11:38 ` Mark Brown
@ 2026-04-14 14:21 ` Srinivas Kandagatla
2 siblings, 0 replies; 16+ messages in thread
From: Srinivas Kandagatla @ 2026-04-14 14:21 UTC (permalink / raw)
To: Kumar Anurag, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Srinivas Kandagatla,
Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-arm-msm, devicetree, linux-kernel, linux-sound
On 4/13/26 9:19 AM, Kumar Anurag wrote:
> Add 32bit for playback and capture over secondary mi2s.
>
> Signed-off-by: Kumar Anurag <kumar.singh@oss.qualcomm.com>
> ---
Pretty much simillar changes a are already submitted by " [PATCH v1 0/2]
ASoC: qcom: q6dsp-lpass-ports: Add support for extended sampling rates
and PCM formats" https://lkml.org/lkml/2025/11/18/673
--srini
> sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c b/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
> index 4eed54b071a5..0664f18d7a44 100644
> --- a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
> +++ b/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
> @@ -380,7 +380,9 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
> .stream_name = "Secondary MI2S Playback",
> .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
> SNDRV_PCM_RATE_16000,
> - .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,
> @@ -394,7 +396,8 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
> .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
> SNDRV_PCM_RATE_16000,
> .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,
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 0/4] Enable audio over HDMI and
2026-04-13 9:19 [PATCH v1 0/4] Enable audio over HDMI and Kumar Anurag
` (3 preceding siblings ...)
2026-04-13 9:19 ` [PATCH v1 4/4] ASoC: qcom: sc8280xp: don't force S16_LE in hw_params fixup Kumar Anurag
@ 2026-04-14 14:54 ` Dmitry Baryshkov
2026-04-14 14:58 ` Dmitry Baryshkov
5 siblings, 0 replies; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-04-14 14:54 UTC (permalink / raw)
To: Kumar Anurag
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai, linux-arm-msm, devicetree,
linux-kernel, linux-sound
On Mon, Apr 13, 2026 at 02:19:33AM -0700, Kumar Anurag wrote:
> This series adds the dt and driver changes for enabling
> audio over HDMI and Displayport.
Starting from the cover letter subject. On which platform?
>
> Kumar Anurag (4):
> arm64: dts: qcom: Enable secondary mi2s
> arm64: dts: qcom: qcs6490: Enable DP audio
> ASoC: qcom: q6dsp: Update bit format support for secondary i2s
> ASoC: qcom: sc8280xp: don't force S16_LE in hw_params fixup
>
> arch/arm64/boot/dts/qcom/kodiak.dtsi | 5 ++
> arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 59 ++++++++++++++++++++
> sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c | 7 ++-
> sound/soc/qcom/sc8280xp.c | 2 -
> 4 files changed, 69 insertions(+), 4 deletions(-)
>
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 1/4] arm64: dts: qcom: Enable secondary mi2s
2026-04-13 9:19 ` [PATCH v1 1/4] arm64: dts: qcom: Enable secondary mi2s Kumar Anurag
2026-04-14 11:58 ` Konrad Dybcio
@ 2026-04-14 14:56 ` Dmitry Baryshkov
1 sibling, 0 replies; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-04-14 14:56 UTC (permalink / raw)
To: Kumar Anurag
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai, linux-arm-msm, devicetree,
linux-kernel, linux-sound
On Mon, Apr 13, 2026 at 02:19:34AM -0700, Kumar Anurag wrote:
> Enable secondary mi2s to support HDMI audio.
Please also correct subject line to mention kodiak.
>
> Signed-off-by: Kumar Anurag <kumar.singh@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/kodiak.dtsi | 5 +++
> arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 43 ++++++++++++++++++++
> 2 files changed, 48 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qcom/kodiak.dtsi
> index 6079e67ea829..d1009debc12b 100644
> --- a/arch/arm64/boot/dts/qcom/kodiak.dtsi
> +++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi
> @@ -5827,6 +5827,11 @@ mi2s1_ws: mi2s1-ws-state {
> function = "mi2s1_ws";
> };
>
> + mi2s1_mclk: mi2s1-mclk-state {
> + pins = "gpio105";
> + function = "sec_mi2s";
> + };
> +
> pcie0_clkreq_n: pcie0-clkreq-n-state {
> pins = "gpio88";
> function = "pcie0_clkreqn";
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> index e3d2f01881ae..2e4062052828 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> @@ -672,6 +672,7 @@ &i2c0 {
> lt9611_codec: hdmi-bridge@2b {
> compatible = "lontium,lt9611uxc";
> reg = <0x2b>;
> + #sound-dai-cells = <1>;
Separate patch.
>
> interrupts-extended = <&tlmm 24 IRQ_TYPE_EDGE_FALLING>;
> reset-gpios = <&pm7250b_gpios 2 GPIO_ACTIVE_HIGH>;
> @@ -1110,6 +1111,9 @@ &sound {
> compatible = "qcom,qcs6490-rb3gen2-sndcard";
> model = "QCS6490-RB3Gen2";
>
> + pinctrl-0 = <&mi2s1_data0>, <&mi2s1_mclk>, <&mi2s1_sclk>, <&mi2s1_ws>;
> + pinctrl-names = "default";
> +
> audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
> "SpkrRight IN", "WSA_SPK2 OUT",
> "VA DMIC0", "vdd-micb",
> @@ -1149,6 +1153,22 @@ platform {
> sound-dai = <&q6apm>;
> };
> };
> +
> + mi2s1-playback-dai-link {
Keep the entries sorted. mi2s1 < va
> + link-name = "Secondary MI2S Playback";
> +
> + codec {
> + sound-dai = <<9611_codec 0>;
> + };
> +
> + cpu {
> + sound-dai = <&q6apmbedai SECONDARY_MI2S_RX>;
> + };
> +
> + platform {
> + sound-dai = <&q6apm>;
> + };
> + };
> };
>
> &swr2 {
> @@ -1437,3 +1457,26 @@ &lpass_audiocc {
> compatible = "qcom,qcm6490-lpassaudiocc";
> /delete-property/ power-domains;
> };
> +
> +&mi2s1_data0 {
> + drive-strength = <8>;
> + bias-disable;
> +};
> +
> +&mi2s1_mclk {
> + drive-strength = <8>;
> + bias-disable;
> + output-high;
> +};
> +
> +&mi2s1_sclk {
> + drive-strength = <8>;
> + bias-disable;
> + output-high;
> +};
> +
> +&mi2s1_ws {
> + drive-strength = <8>;
> + bias-disable;
> + output-high;
> +};
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 2/4] arm64: dts: qcom: qcs6490: Enable DP audio
2026-04-13 9:19 ` [PATCH v1 2/4] arm64: dts: qcom: qcs6490: Enable DP audio Kumar Anurag
2026-04-14 9:28 ` Konrad Dybcio
@ 2026-04-14 14:58 ` Dmitry Baryshkov
1 sibling, 0 replies; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-04-14 14:58 UTC (permalink / raw)
To: Kumar Anurag
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai, linux-arm-msm, devicetree,
linux-kernel, linux-sound
On Mon, Apr 13, 2026 at 02:19:35AM -0700, Kumar Anurag wrote:
> Add new dai link to enable DP audio.
DAI
Also, will this enable audio for the USB-C DP only? Please add support
for audio over the mini-DP port (or mention that it's not available in
HW).
>
> Signed-off-by: Kumar Anurag <kumar.singh@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> index 2e4062052828..90fd8822dabd 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> @@ -1169,6 +1169,22 @@ platform {
> sound-dai = <&q6apm>;
> };
> };
> +
> + dp-dai-link {
Still keep it sorted.
> + link-name = "DisplayPort0 Playback";
> +
> + codec {
> + sound-dai = <&mdss_dp>;
> + };
> +
> + cpu {
> + sound-dai = <&q6apmbedai DISPLAY_PORT_RX_0>;
> + };
> +
> + platform {
> + sound-dai = <&q6apm>;
> + };
> + };
> };
>
> &swr2 {
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 0/4] Enable audio over HDMI and
2026-04-13 9:19 [PATCH v1 0/4] Enable audio over HDMI and Kumar Anurag
` (4 preceding siblings ...)
2026-04-14 14:54 ` [PATCH v1 0/4] Enable audio over HDMI and Dmitry Baryshkov
@ 2026-04-14 14:58 ` Dmitry Baryshkov
5 siblings, 0 replies; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-04-14 14:58 UTC (permalink / raw)
To: Kumar Anurag
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai, linux-arm-msm, devicetree,
linux-kernel, linux-sound
On Mon, Apr 13, 2026 at 02:19:33AM -0700, Kumar Anurag wrote:
> This series adds the dt and driver changes for enabling
> audio over HDMI and Displayport.
Do we need topology changes or UCM changes for these to work?
>
> Kumar Anurag (4):
> arm64: dts: qcom: Enable secondary mi2s
> arm64: dts: qcom: qcs6490: Enable DP audio
> ASoC: qcom: q6dsp: Update bit format support for secondary i2s
> ASoC: qcom: sc8280xp: don't force S16_LE in hw_params fixup
>
> arch/arm64/boot/dts/qcom/kodiak.dtsi | 5 ++
> arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 59 ++++++++++++++++++++
> sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c | 7 ++-
> sound/soc/qcom/sc8280xp.c | 2 -
> 4 files changed, 69 insertions(+), 4 deletions(-)
>
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 4/4] ASoC: qcom: sc8280xp: don't force S16_LE in hw_params fixup
2026-04-13 9:19 ` [PATCH v1 4/4] ASoC: qcom: sc8280xp: don't force S16_LE in hw_params fixup Kumar Anurag
2026-04-14 11:40 ` Mark Brown
@ 2026-04-15 11:06 ` Alexey Klimov
1 sibling, 0 replies; 16+ messages in thread
From: Alexey Klimov @ 2026-04-15 11:06 UTC (permalink / raw)
To: Kumar Anurag, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Srinivas Kandagatla,
Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-arm-msm, devicetree, linux-kernel, linux-sound
On Mon Apr 13, 2026 at 10:19 AM BST, Kumar Anurag wrote:
> The machine driver was unconditionally forcing S16_LE in
> sc8280xp_be_hw_params_fixup(), which prevents links (e.g. HDMI bridges)
> that require 32-bit formats from working. Drop the format override and
> keep only the fixed rate/channels constraints.
Why the format override is no longer needed? Please add it in the
description.
> Signed-off-by: Kumar Anurag <kumar.singh@oss.qualcomm.com>
> ---
> sound/soc/qcom/sc8280xp.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/sound/soc/qcom/sc8280xp.c b/sound/soc/qcom/sc8280xp.c
> index 7925aa3f63ba..c00eabf200b7 100644
> --- a/sound/soc/qcom/sc8280xp.c
> +++ b/sound/soc/qcom/sc8280xp.c
> @@ -75,10 +75,8 @@ static int sc8280xp_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_mask *fmt = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT);
>
> rate->min = rate->max = 48000;
> - snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S16_LE);
Does compressed playback work after this change? How did you test it?
Will it be possible with this series to have compressed playback via
HDMI (with 32-bit format, right?)? You might need to add some
functionality for this in topology.
Thanks,
Alexey
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2026-04-15 11:06 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-13 9:19 [PATCH v1 0/4] Enable audio over HDMI and Kumar Anurag
2026-04-13 9:19 ` [PATCH v1 1/4] arm64: dts: qcom: Enable secondary mi2s Kumar Anurag
2026-04-14 11:58 ` Konrad Dybcio
2026-04-14 14:56 ` Dmitry Baryshkov
2026-04-13 9:19 ` [PATCH v1 2/4] arm64: dts: qcom: qcs6490: Enable DP audio Kumar Anurag
2026-04-14 9:28 ` Konrad Dybcio
2026-04-14 14:58 ` Dmitry Baryshkov
2026-04-13 9:19 ` [PATCH v1 3/4] ASoC: qcom: q6dsp: Update bit format support for secondary i2s Kumar Anurag
2026-04-14 9:54 ` Konrad Dybcio
2026-04-14 11:38 ` Mark Brown
2026-04-14 14:21 ` Srinivas Kandagatla
2026-04-13 9:19 ` [PATCH v1 4/4] ASoC: qcom: sc8280xp: don't force S16_LE in hw_params fixup Kumar Anurag
2026-04-14 11:40 ` Mark Brown
2026-04-15 11:06 ` Alexey Klimov
2026-04-14 14:54 ` [PATCH v1 0/4] Enable audio over HDMI and Dmitry Baryshkov
2026-04-14 14:58 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox