[alsa-devel] Wrong channel order with multichannel HDMI on MCP7A

Wei Ni wni at nvidia.com
Tue Jul 27 09:14:37 CEST 2010


Hi, Takashi
MCP7x use old HW design in HDMI, they don't support channel mapping like MCP89.
It use nvhdmi_dig_playback_pcm_prepare_8ch() to prepare channel mapping and 
steam id,format.

Anssi Hannula
Please try the following changes in patch_nvhdmi.c
static hda_nid_t nvhdmi_con_nids_7x[4] = {
	/*front, rear, clfe, rear_surr */
-	0x6, 0x8, 0xa, 0xc,
+	0x6, 0xa, 0x8, 0xc,
};

Thanks
Wei.


-----Original Message-----
From: Takashi Iwai [mailto:tiwai at suse.de] 
Sent: Monday, July 26, 2010 5:35 PM
To: Anssi Hannula
Cc: alsa-devel at alsa-project.org; Wei Ni
Subject: Re: [alsa-devel] Wrong channel order with multichannel HDMI on MCP7A

At Mon, 26 Jul 2010 11:14:17 +0200,
私 wrote:
> 
> 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?

Ah crap, it should be irrelevant.
Wei, don't MCP 7x chips support the channel mapping as MCP 89?


thanks,

Takashi


> > 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;
>  }
>  

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------


More information about the Alsa-devel mailing list