drm/i915/bxt: Fix PPS lost state after suspend breaking eDP link training
authorImre Deak <imre.deak@intel.com>
Thu, 16 Jun 2016 13:37:20 +0000 (16:37 +0300)
committerImre Deak <imre.deak@intel.com>
Wed, 22 Jun 2016 16:15:41 +0000 (19:15 +0300)
commit78597996370cbe00b739295c7241a1c6a08b4c44
treea3afeaf0eb0bf41338e51a4515d5894aeb613915
parentb4d06ede4e301c4d11bbf8fd58ebe2aad2618769
drm/i915/bxt: Fix PPS lost state after suspend breaking eDP link training

The PPS registers are backed by power well #0 and as such may be reset
after system or runtime suspend (both implying a possible DC9
transition). Fix this by reusing the VLV/CHV PPS pipe-reassignment
logic. The difference on BXT is that the PPS instances are not pipe but
port (or more accurately pin) specific, so we only need to care about
the lost HW state. As opposed to VLV/CHV the SW state is fixed and
initialized during connector init.

This also paves the way towards using the actual port->PPS instance
mapping based on VBT.

This fixes eDP link training errors on BXT after suspend, where we
started the link training too early due to an incorrect T3 (panel power
on) register value.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96436
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1466084243-5388-2-git-send-email-imre.deak@intel.com
drivers/gpu/drm/i915/intel_dp.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_runtime_pm.c