• Lyude Paul's avatar
    drm/i915/dp: Extract drm_dp_read_downstream_info() · 3d3721cc
    Lyude Paul authored
    We're going to be doing the same probing process in nouveau for
    determining downstream DP port capabilities, so let's deduplicate the
    work by moving i915's code for handling this into a shared helper:
    drm_dp_read_downstream_info().
    
    Note that when we do this, we also do make some functional changes while
    we're at it:
    * We always clear the downstream port info before trying to read it,
      just to make things easier for the caller
    * We skip reading downstream port info if the DPCD indicates that we
      don't support downstream port info
    * We only read as many bytes as needed for the reported number of
      downstream ports, no sense in reading the whole thing every time
    
    v2:
    * Fixup logic for calculating the downstream port length to account for
      the fact that downstream port caps can be either 1 byte or 4 bytes
      long. We can actually skip fixing the max_clock/max_bpc helpers here
      since they all check for DP_DETAILED_CAP_INFO_AVAILABLE anyway.
    * Fix ret code check for drm_dp_dpcd_read
    v5:
    * Change name from drm_dp_downstream_read_info() to
      drm_dp_read_downstream_info()
    * Also, add "See Also" sections for the various downstream info
      functions (drm_dp_read_downstream_info(), drm_dp_downstream_max_clock(),
      drm_dp_downstream_max_bpc())
    Reviewed-by: default avatarSean Paul <sean@poorly.run>
    Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
    Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200826182456.322681-14-lyude@redhat.com
    3d3721cc
drm_dp_helper.c 54.4 KB