• Imre Deak's avatar
    drm/i915: vlv: fix DP PHY lockup due to invalid PP sequencer setup · 2cac613b
    Imre Deak authored
    Atm we setup the HW panel power sequencer logic both for eDP and DP
    ports. On eDP we then go on and start the power on sequence and commence
    with link training when it's ready. On DP we don't do the power on
    sequencing but do the link training immediately. At this point the DP
    PHY block gets stuck, since - supposedly - it is waiting for the power
    on sequence to finish. The actual register write that seems to hold off
    the PHY is PIPEX_PP_ON_DELAYS[Panel Control Port Select]. Writing here
    a non-0 value eventually sets PIPEX_PP_STATUS[Require Asset Status] to
    1 and blocks the PHY until the panel power on is ready.
    
    Fix this by not doing any PP sequencing setup for DP ports.
    
    Thanks to Ville Syrjälä, Jesse Barnes and Todd Previte for the help in
    tracking this down.
    
    Note that on older gmch platforms (where we have lvds instead of edp)
    we've hacked around this by writing the magic ABCD unlock key to PP
    registers, which disables the hw sanity checks.
    
    For edp all platforms thus far had the pch split, with the edp port in
    the north display complex and the PP registers on the pch the hw
    sanity checks (expressed through the "Require Asset Status" bit) was
    never functional, hence never a real issue.
    
    This regression has been introduce in
    
    commit bf13e81b
    Author: Jani Nikula <jani.nikula@intel.com>
    Date:   Fri Sep 6 07:40:05 2013 +0300
    
        drm/i915: add support for per-pipe power sequencing on vlv
    Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
    [danvet: Add note about the bigger story here.]
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    2cac613b
intel_dp.c 106 KB