On Thu, 08 Jul 2021 14:26:54 +0200, Damjan Georgievski wrote:
On Thu, 8 Jul 2021 at 13:37, Takashi Iwai tiwai@suse.de wrote:
On Fri, 02 Jul 2021 15:27:30 +0200, Damjan Georgievski wrote:
I have a desktop computer with an AMD Ryzen 5 4650G PRO APU (CPU + on-die GPU). The motherboard (MSI Mortar B550m wifi / bios 1.6). has one displayport and one HDMI outputs. The displayport is connected to my Lenovo P27 monitor, and the HDMI to my Samsung TV.
When I choose the GPU as an audio out, I only get audio on the 3.5" headphones jack of the Lenovo monitor, while I would like to get the audio on the Samsung TV over HDMI. I can't find a way to switch the different outputs (neither over pipewire or just using native alsa).
pavucontrol configuration https://i.imgur.com/9nbVtNz.png alsamixer -c0 only has only one option to mute s/pdif, which mutes the output on the displayport -> Lenovo -> 3.5" jack.
$ aplay -l **** List of PLAYBACK Hardware Devices **** card 1: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: Generic_1 [HD-Audio Generic], device 0: ALCS1200A Analog [ALCS1200A Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: Generic_1 [HD-Audio Generic], device 1: ALCS1200A Digital [ALCS1200A Digital] Subdevices: 1/1 Subdevice #0: subdevice #0
Am I correct that card 1 here ^ should have at least two devices?
It could have more entries, depending on the configuration. I suppose you enabled CONFIG_SND_HDA_CODEC_HDMI properly?
yes - CONFIG_SND_HDA_CODEC_HDMI=m is enabled. I've been using the Arch distro kernel, which has that enabled; but also with self-compiled 5.13.0 from stable, with the same distro config; and with 5.14-git (77d34a468) with the same config. All have the same behaviour.
Should this hardware be supported with the sound/soc/amd/renoir/rn-pci-acp3x.c driver (instead of snd_hda_intel)? … since it is a Renoir desktop APU.
Please give alsa-info.sh output for more detailed analysis.
http://alsa-project.org/db/?f=00b31f3f0e6c58b56c73f98aec7c6b5ccaff700e
The codec proc output there shows that only one pin is enabled for HDMI/DP output, and that's the reason why the driver created only one stream. It's basically a BIOS setup.
The patch below should enable all pins forcibly and this should give more streams. Give it a try.
Takashi
--- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -1940,6 +1940,7 @@ static int hdmi_add_cvt(struct hda_codec *codec, hda_nid_t cvt_nid) static const struct snd_pci_quirk force_connect_list[] = { SND_PCI_QUIRK(0x103c, 0x870f, "HP", 1), SND_PCI_QUIRK(0x103c, 0x871a, "HP", 1), + SND_PCI_QUIRK(0x1462, 0xec94, "MS-7C94", 1), {} };