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

Anssi Hannula anssi.hannula at iki.fi
Tue Aug 3 22:57:23 CEST 2010

(restored CC)

Kirjoitit tiistai, 3. elokuuta 2010 23:40:13:
> On Tue, Aug 3, 2010 at 1:32 PM, Anssi Hannula <anssi.hannula at iki.fi> wrote:
> > pl bossart kirjoitti tiistai, 3. elokuuta 2010 23:15:28:
> >> > 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.
> >> 
> >> You would only need an API to get the channel mapping. The HDMI sink
> >> will report its speaker configuration through a CEA code (section 7.4
> >> of the spec), and if we parsed the EDID info we could present the
> >> relevant channel order to user-space apps.
> > 
> > I'm not sure I see how that will help with the problem of this thread,
> > though, i.e. NVIDIA MCP7A hdmi codec apparently assuming audio being fed
> > in windows channel order instead of alsa channel order.
> You can in theory specify the channel order in the InfoFrame (CA
> field). If you had access to a register to program this, you would no
> longer be tied to alsa or windows or whatever order. You would just
> provide ALSA with the channels in the order you configured with the CA
> code.

The CA field is programmable, but the channel orders are predefined and no 
arbitrary channel formats are possible (see patch_hdmi.c or the related CEA 

The nvhdmi MCP7x codec driver tries to specify a channel order by using the 
channel_id field in AC_VERB_SET_CHANNEL_STREAMID for the 4 slave digital 
converters, but it doesn't seem to have any effect (at least on hardware I 
have; confirmed by swapping the channel_ids around with no effect).

Anssi Hannula

More information about the Alsa-devel mailing list