• Anssi Hannula's avatar
    ALSA: hda - hdmi: Add ATI/AMD multi-channel audio support · 5a613584
    Anssi Hannula authored
    ATI/AMD codecs do not support all the standard HDA HDMI/DP functions,
    instead various vendor-specific verbs are provided.
    
    This commit addresses these missing functions:
    - standard channel mapping support
    - standard infoframe configuration support
    
    ATI/AMD provides their own verbs that allow the following:
    - setting CA for infoframe
    - setting down-mix information for infoframe
    - channel pair remapping
    - individual channel remapping (revision ID 3+, 0x100300+)
    
    The documentation for the verbs has now been released by AMD:
    http://www.x.org/docs/AMD/AMD_HDA_verbs_v2.pdf
    
    Add support for the ATI/AMD specific verbs and use them instead of the
    generic methods on ATI/AMD codecs. This allows multi-channel PCM audio
    to work.
    
    Channel remapping is restricted to pairwise mapping on codecs with
    revision ID 2 (0x100200 as reported by procfs codec#X) or lower. This
    means cards up to Radeon HD7670 as far as I know. This will not affect
    standard multi-channel modes since these codecs support automatic
    FC-LFE swapping for HDMI.
    
    ATI/AMD codecs do not advertise all of their supported rates, formats
    and channel counts, therefore that information is forced accordingly so
    that all HDMI 1.x PCM parameters are marked as supported.
    
    Support for multiple ports is also added to patch_atihdmi so that
    0x1002aa01 codecs with multiple ports will work properly when switched
    back to that patch.
    
    v2: splitted ELD emulation to a separate patch, tlv fixes
    v3: adapted to the new hdmi_ops infrastructure, fixed rev3+ vendor id
    Signed-off-by: default avatarAnssi Hannula <anssi.hannula@iki.fi>
    Tested-by: Peter Frühberger <fritsch@xbmc.org> # v2
    Tested-by: Olivier Langlois <olivier@trillion01.com> # v2+rev3fix
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    5a613584
patch_hdmi.c 89.2 KB