It is worth noting (though you probably knew already) that the stuff in
the public HD audio spec is already implemented in the ALSA driver, but
it doesn't work with ATI/AMD out-of-the-box.. either the ATI/AMD
multichannel is completely different and needs its own handling, or
there is some secret switch that makes the extra channels appear to the
standard hdmi driver.
Well, there is something missing on the 1st part as well (since the
audio controller reports Stereo capability only), but it might be
something as simple like some AMD specific switch to turn on
multichannel support (since these last emails make it sound like AMD
actually does follow the public Intel HD multichannel spec - or we are
talking about different model series).
The 2nd one I'm somewhat confused about. r600 already has support for
mixing the audio into the HDMI stream, and multichannel audio shouldn't
need any changes there (maybe he's talking about some newer models?).
As for structures from industry standards, the EDID from VESA EDID, CEA
EDID extension from EIA-CEA-861-D/E, and ELD from Intel HD audio spec
(which are only needed for detection of supported audio formats of the
receiver) are handled by common code in drm_edid.c:drm_edid_to_eld()
(currently used on intel/nvidia), so no code needs to be added for those.
Additionally, the video/audio infoframes from the HDMI specification are
already implemented in r600_hdmi.c (and there is also a generic audio
infoframe implementation in the ALSA HDA driver, which is used on