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

Anssi Hannula anssi.hannula at iki.fi
Tue Aug 3 21:01:47 CEST 2010


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?

-- 
Anssi Hannula


More information about the Alsa-devel mailing list