• Ville Syrjälä's avatar
    drm/i915: Tweak the DP "max vswing reached?" condition · 8bc2f5c3
    Ville Syrjälä authored
    Currently we consider the max vswing reached when we transmit a
    the max voltage level, but we don't consider pre-emphasis at all.
    This kinda matches older DP specs that only had some vague text
    about transmitting the maximum voltage swing. Latest versions
    now say something vague about consider the sum of the vswing
    and pre-emphasis fields in the ADJUST_REQUEST_LANE registers.
    Very vague, and super confusing especially the fact that it
    talks about transmitted voltgage swing in the same sentence
    as it say to look at the requested values.
    
    Also glanced at the link CTS spec, and that one seems to have
    tests that assume contradicting behaviour. Some say to consider
    just the vswing level we transmit, others say to check for
    sum of transmitted vswing+preemph being 3.
    
    So let's try to take some kind of sane middle ground here.
    I think what could make sense is only consider max vswing
    reached if MAX_SWING_REACHED==1 _and_ vswing+preemph==3.
    That will allow things to go all the way up to vswing 3 +
    pre-emph 0 or vswing 2 + pre-emph 1, depending on what
    the maximum supported vswing is. Only considering the sum
    of vswing+pre-emph doesn't make much sense to me since
    we could terminate too early if the sink requests eg.
    vswing 0 + pre-emph 3. And if we'd stick to the current
    code we could terminate too early of the sink asks for
    vswing 2 + pre-emph 0 when vswing level 3 is not supported.
    
    Side note: I don't really understand why any of this stuff is
    "specified" at all. There is already a limit of 5 attempts at
    the same vswing+pre-emph level, and a total limit of 10
    attempts. So might as well stick to the same max 5 attempts
    across the board IMO.
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211004170535.4173-2-ville.syrjala@linux.intel.comReviewed-by: default avatarImre Deak <imre.deak@intel.com>
    8bc2f5c3
intel_dp_link_training.c 29 KB