diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c index 2849ea39efc8..f3b9a7de344a 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);