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

Takashi Iwai tiwai at suse.de
Tue Aug 3 21:38:58 CEST 2010


At Tue, 3 Aug 2010 22:01:47 +0300,
Anssi Hannula wrote:
> 
> Anssi Hannula kirjoitti torstai, 29. heinäkuuta 2010 17:41:15:
> > Anssi Hannula kirjoitti keskiviikko, 28. heinäkuuta 2010 05:42:09:
> > > Wei Ni kirjoitti tiistai, 27. heinäkuuta 2010 10:14:37:
> > > > 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,
> > > > };
> > > 
> > > I actually tried that already, but for some reason changing the order in
> > > nvhdmi_con_nids_7x doesn't have any effect.
> > > 
> > > Actually, disabling the whole for loop that assigns the channels in
> > > nvhdmi_dig_playback_pcm_prepare_8ch() has no effect, leading me to
> > > believe that the commands are not reaching the hardware or they are
> > > being overridden.
> > 
> > Well, I confirmed with AC_VERB_GET_CONV that they are getting through, and
> > they are still the same in nvhdmi_dig_playback_pcm_close_8ch_7x().
> > 
> > Any idea why they are having no effect?
> 
> If this can't be fixed (either due to hardware or missing documentation), how 
> can this be workarounded in alsa?
> 
> Only idea I can come up with is reserving a special device index in hda-intel 
> for use with "broken hdmi", which can then be handled in HDA-Intel.conf with 
> an appropriate ttable.. But that would be rather ugly.
> 
> Also, do we know if this affects all MCP7x devices or a subset of them?

Well, this is one of my looong-standing TODOs.
Originally I wanted to implement a new API to get/set the
channel-mapping, mainly for HDMI.
But, I've been recently too busy for other tasks (I can spend little
time for ALSA), thus it's pending forever.


Takashi


More information about the Alsa-devel mailing list