drm/i915: don't try to retrain a DP link on an inactive CRTC
authorImre Deak <imre.deak@intel.com>
Mon, 18 Aug 2014 11:42:46 +0000 (14:42 +0300)
committerJani Nikula <jani.nikula@intel.com>
Mon, 18 Aug 2014 13:51:35 +0000 (16:51 +0300)
Atm we may retrain the DP link even if the CRTC is inactive through
HPD work->intel_dp_check_link_status(). This in turn can lock up the PHY
(at least on BYT), since the DP port is disabled.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81948
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: stable@vger.kernel.org (3.16+)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/intel_dp.c

index 39b6431638461ea057c277c3c7b258db6e10a411..67cfed6d911ae99eae257a67b8e05ea64ba145d1 100644 (file)
@@ -3553,6 +3553,9 @@ intel_dp_check_link_status(struct intel_dp *intel_dp)
        if (WARN_ON(!intel_encoder->base.crtc))
                return;
 
+       if (!to_intel_crtc(intel_encoder->base.crtc)->active)
+               return;
+
        /* Try to read receiver status if the link appears to be up */
        if (!intel_dp_get_link_status(intel_dp, link_status)) {
                return;