[alsa-devel] Wrong channel order with multichannel HDMI on MCP7A
Takashi Iwai
tiwai at suse.de
Mon Jul 26 11:14:17 CEST 2010
At Sun, 25 Jul 2010 19:51:39 +0300,
Anssi Hannula wrote:
>
> Hi all!
>
> I have a motherboard with NVIDIA MCP7A HDMI audio.
> However, multichannel audio is not mapped properly into the HDMI order.
>
> On 5.1, I get RL in FC, RR in LFE, FC in RL, LFE in RR.
>
> Interestingly, this is not consistent with the ALSA channel order (FL FR RL RR
> FC LFE) being passed directly to HDMI (FL FR LFE FC RL RR). Instead it looks
> like there has been a waveformatex (FL FR FC LFE RL RR; windows?) => HDMI
> conversion instead of ALSA => HDMI.
>
> Same happens for 7.1.
>
> Is it possible to set the hardware to do an ALSA => HDMI conversion instead?
> If not, we should manually compensate for this somewhere, right?
Does the patch below change anything?
> Somewhat relatedly, trying to output 4 channels results in silence only.
Although 5.1/7.1 work?
> Trying to output 3 or 5 channels triggers a timeout with I/O error, with the
> following in the kernel log: "ALSA pcm_lib.c:1757: playback write error (DMA
> or IRQ trouble?)"
HD-audio doesn't support the odd number of channels in general, so
they should be played as 4 or 6 channels. But, it looks like
something wrong in the setup...
thanks,
Takashi
---
diff --git a/sound/pci/hda/patch_nvhdmi.c b/sound/pci/hda/patch_nvhdmi.c
index 3c10c0b..7355c60 100644
--- a/sound/pci/hda/patch_nvhdmi.c
+++ b/sound/pci/hda/patch_nvhdmi.c
@@ -511,6 +511,8 @@ static int patch_nvhdmi_8ch_7x(struct hda_codec *codec)
codec->patch_ops = nvhdmi_patch_ops_8ch_7x;
+ init_channel_allocations();
+
return 0;
}
More information about the Alsa-devel
mailing list