• Wu Fengguang's avatar
    drm: support routines for HDMI/DP ELD · 76adaa34
    Wu Fengguang authored
    ELD (EDID-Like Data) describes to the HDMI/DP audio driver the audio
    capabilities of the plugged monitor.
    
    This adds drm_edid_to_eld() for converting EDID to ELD. The converted
    ELD will be saved in a new drm_connector.eld[128] data field. This is
    necessary because the graphics driver will need to fixup some of the
    data fields (eg. HDMI/DP connection type, AV sync delay) before writing
    to the hardware ELD buffer. drm_av_sync_delay() will help the graphics
    drivers dynamically compute the AV sync delay for fixing-up the ELD.
    
    ELD selection policy: it's possible for one encoder to be associated
    with multiple connectors (ie. monitors), in which case the first found
    ELD will be returned by drm_select_eld(). This policy may not be
    suitable for all users, but let's start it simple first.
    
    The impact of ELD selection policy: assume there are two monitors, one
    supports stereo playback and the other has 8-channel output; cloned
    display mode is used, so that the two monitors are associated with the
    same internal encoder. If only the stereo playback capability is reported,
    the user won't be able to start 8-channel playback; if the 8-channel ELD
    is reported, then user space applications may send 8-channel samples
    down, however the user may actually be listening to the 2-channel
    monitor and not connecting speakers to the 8-channel monitor.
    
    According to James, many TVs will either refuse the display anything or
    pop-up an OSD warning whenever they receive hdmi audio which they cannot
    handle. Eventually we will require configurability and/or per-monitor
    audio control even when the video is cloned.
    
    CC: Zhao Yakui <yakui.zhao@intel.com>
    CC: Wang Zhenyu <zhenyu.z.wang@intel.com>
    CC: Jeremy Bush <contractfrombelow@gmail.com>
    CC: Christopher White <c.white@pulseforce.com>
    CC: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
    CC: Paul Menzel <paulepanter@users.sourceforge.net>
    CC: James Cloos <cloos@jhcloos.com>
    CC: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
    Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
    Signed-off-by: default avatarKeith Packard <keithp@keithp.com>
    76adaa34
drm_edid.c 44.4 KB