diff --git a/arch/arm64/boot/dts/rockchip/rk3576-nanopi-r76s.dts b/arch/arm64/boot/dts/rockchip/rk3576-nanopi-r76s.dts index 31415f69128d1..d9ed0fbe30949 100644 --- a/arch/arm64/boot/dts/rockchip/rk3576-nanopi-r76s.dts +++ b/arch/arm64/boot/dts/rockchip/rk3576-nanopi-r76s.dts @@ -278,6 +278,10 @@ status = "disabled"; }; +&spdif_tx3 { + status = "disabled"; +}; + &uart6 { status = "okay"; }; \ No newline at end of file diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c index 2849ea39efc88..f3b9a7de344ac 100644 --- a/sound/soc/codecs/hdmi-codec.c +++ b/sound/soc/codecs/hdmi-codec.c @@ -1110,11 +1110,22 @@ static int hdmi_codec_probe(struct platform_device *pdev) if (hcd->i2s) { daidrv[i] = hdmi_i2s_dai; daidrv[i].playback.channels_max = hcd->max_i2s_channels; + /* Disable capture for HDMI-TX (output only) to prevent + * PulseAudio from trying to open capture streams which + * causes "Only one simultaneous stream supported!" errors + * and results in mono audio output. + */ + daidrv[i].capture.channels_min = 0; + daidrv[i].capture.channels_max = 0; i++; } - if (hcd->spdif) + if (hcd->spdif) { daidrv[i] = hdmi_spdif_dai; + /* Disable capture for HDMI-TX SPDIF (output only) */ + daidrv[i].capture.channels_min = 0; + daidrv[i].capture.channels_max = 0; + } dev_set_drvdata(dev, hcp);