aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorImre Deak <imre.deak@intel.com>2014-01-16 11:35:57 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-01-22 04:34:39 -0500
commit5d6a1116c6475404e6505b708320f9579ae19acd (patch)
tree059b3c0164583b5b5f765303acc9a5fb113c492c /drivers/gpu
parentdc5a43636c2fd50c694f16d042e0639fff5044fd (diff)
drm/i915: don't disable the DP port if the link is lost
Currently if the DP link is lost (either because of a hot unplug, or failed link status check) we disable the DP port, but leave the rest of the pipe running. This is incompatible with the modeset disabling sequence of some platforms/configurations. At least this is the case for DP ports on the CPU as opposed to PCH. Atm we'll also get a warning when we do a modeset disable after the above link lost event, since we expect the DP port to be enabled at this point (see the bugzilla ticket for the related dmesg). Note that with this patch we'll still end up disabling the port, thanks to the HPD uevent and subsequent modeset disable. See also the next patch fixing the other half of this issue. Solution suggested by Ville. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70570 Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 7df5085973e9..7b630e9a0115 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -2891,13 +2891,11 @@ intel_dp_check_link_status(struct intel_dp *intel_dp)
2891 2891
2892 /* Try to read receiver status if the link appears to be up */ 2892 /* Try to read receiver status if the link appears to be up */
2893 if (!intel_dp_get_link_status(intel_dp, link_status)) { 2893 if (!intel_dp_get_link_status(intel_dp, link_status)) {
2894 intel_dp_link_down(intel_dp);
2895 return; 2894 return;
2896 } 2895 }
2897 2896
2898 /* Now read the DPCD to see if it's actually running */ 2897 /* Now read the DPCD to see if it's actually running */
2899 if (!intel_dp_get_dpcd(intel_dp)) { 2898 if (!intel_dp_get_dpcd(intel_dp)) {
2900 intel_dp_link_down(intel_dp);
2901 return; 2899 return;
2902 } 2900 }
2903 2901