• Imre Deak's avatar
    drm/i915: Reenable LTTPR non-transparent LT mode for DPCD_REV<1.4 · cb4920cc
    Imre Deak authored
    The driver currently disables the LTTPR non-transparent link training
    mode for sinks with a DPCD_REV<1.4, based on the following description
    of the LTTPR DPCD register range in DP standard 2.0 (at the 0xF0000
    register description):
    
    ""
    LTTPR-related registers at DPCD Addresses F0000h through F02FFh are valid
    only for DPCD r1.4 (or higher).
    """
    
    The transparent link training mode should still work fine, however the
    implementation for this in some retimer FWs seems to be broken, see the
    References: link below.
    
    After discussions with DP standard authors the above "DPCD r1.4" does
    not refer to the DPCD revision (stored in the DPCD_REV reg at 0x00000),
    rather to the "LTTPR field data structure revision" stored in the
    0xF0000 reg. An update request has been filed at vesa.org (see
    wg/Link/documentComment/3746) for the upcoming v2.1 specification to
    clarify the above description along the following lines:
    
    """
    LTTPR-related registers at DPCD Addresses F0000h through F02FFh are
    valid only for LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV 1.4 (or
    higher)
    """
    
    Based on my tests Windows uses the non-transparent link training mode
    for DPCD_REV==1.2 sinks as well (so presumably for all DPCD_REVs), and
    forcing it to use transparent mode on ICL/TGL platforms leads to the
    same LT failure as reported at the References: link.
    
    Based on the above let's assume that the transparent link training mode
    is not well tested/supported and align the code to the correct
    interpretation of what the r1.4 version refers to.
    Reported-and-tested-by: default avatarCasey Harkins <caseyharkins@gmail.com>
    Tested-by: default avatarKhaled Almahallawy <khaled.almahallawy@intel.com>
    References: https://gitlab.freedesktop.org/drm/intel/-/issues/3415
    Fixes: 264613b4 ("drm/i915: Disable LTTPR support when the DPCD rev < 1.4")
    Cc: <stable@vger.kernel.org> # v5.11+
    Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
    Reviewed-by: default avatarKhaled Almahallawy <khaled.almahallawy@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210512212809.1234701-1-imre.deak@intel.com
    cb4920cc
intel_dp_link_training.c 26.3 KB