• Imre Deak's avatar
    drm/i915/dp: Add workaround for spurious AUX timeouts/hotplugs on LTTPR links · eddbb074
    Imre Deak authored
    To avoid AUX timeouts and subsequent spurious hotplug interrupts, make
    sure that the first DPCD access during detection is a read from an LTTPR
    register.
    
    Some ADLP DP link configuration at least with multiple LTTPRs expects
    the first DPCD access during the LTTPR/DPCD detection after hotplug to
    be a read from the LTTPR range starting with
    DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV. The side effect of
    this read is to put each LTTPR into the LTTPR transparent or LTTPR
    non-transparent mode.
    
    The lack of the above read may leave some of the LTTPRs in non-LTTPR
    mode, while other LTTPRs in LTTPR transparent or LTTPR non-transparent
    mode (for instance LTTPRs after system suspend/resume that kept their
    mode from before suspend). Due to the different AUX timeouts the
    different modes imply, the DPCD access from a non-LTTPR range will
    timeout and lead to an LTTPR generated hotplug towards the source (which
    the LTTPR firmware uses to account for buggy TypeC adapters with a long
    wake-up delay).
    
    SYSCROS: 72939
    
    v2: Keep DPCD read-out working on non-LTTPR platforms.
    v3: Summarize what and why the patch does at the beginning of the commit
        log. (Jani)
    Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
    Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220408224629.845887-1-imre.deak@intel.com
    eddbb074
intel_dp_link_training.c 45.3 KB