• Gwan-gyeong Mun's avatar
    drm/i915/dp: Add writing of DP SDPs · 03c761b0
    Gwan-gyeong Mun authored
    It adds routines that write DP VSC SDP and DP HDR Metadata Infoframe SDP.
    In order to pack DP VSC SDP, it adds intel_dp_vsc_sdp_pack() function.
    It follows DP 1.4a spec. [Table 2-116: VSC SDP Header Bytes] and
    [Table 2-117: VSC SDP Payload for DB16 through DB18]
    
    In order to pack DP HDR Metadata Infoframe SDP, it adds
    intel_dp_hdr_metadata_infoframe_sdp_pack() function.
    And it follows DP 1.4a spec.
    ([Table 2-125: INFOFRAME SDP v1.2 Header Bytes] and
    [Table 2-126: INFOFRAME SDP v1.2 Payload Data Bytes - DB0 through DB31])
    and CTA-861-G spec. [Table-42 Dynamic Range and Mastering InfoFrame].
    
    A mechanism and a naming rule of intel_dp_set_infoframes() function
    references intel_encoder->set_infoframes() of intel_hdmi.c .
    VSC SDP is used for PSR and Pixel Encoding and Colorimetry Formats cases.
    Because PSR routine has its own routine of writing a VSC SDP, when the PSR
    is enabled, intel_dp_set_infoframes() does not write a VSC SDP.
    
    v3:
      - Explicitly disable unused DIPs (AVI, GCP, VS, SPD, DRM. They will be
        used for HDMI), when intel_dp_set_infoframes() function will be called.
      - Replace a structure name to drm_dp_vsc_sdp from intel_dp_vsc_sdp.
    v4: Use struct drm_device logging macros
    v5:
      - use intel_de_*() functions for register access
      - Addressed review comments from Uma
        Polish commit message and comments
        Add 6bpc to packing of VSC SDP
    Signed-off-by: default avatarGwan-gyeong Mun <gwan-gyeong.mun@intel.com>
    Reviewed-by: default avatarUma Shankar <uma.shankar@intel.com>
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200211074657.231405-5-gwan-gyeong.mun@intel.com
    03c761b0
intel_dp.h 5.19 KB