mirror of https://gitee.com/openkylin/linux.git
drm/i915: rip out edp special case from dp_link_down
This has been tons of fun to figure out with git blame. The first notion of this code block goes back to the original cpu edp enabling for ilk in commit32f9d658ae
Author: Zhenyu Wang <zhenyuw@linux.intel.com> Date: Fri Jul 24 01:00:32 2009 +0800 drm/i915: Add eDP support on IGDNG mobile chip Two things are notable in this commit wrt to the this edp special case: - The IS_eDP check _only_ fires for DP A, i.e. cpu edp ports. - The cpu edp port is disabled at the top of the dp_link_down function. My theory is that these hacks was added to work around the completely different modeset sequence for cpu edp ports compared to pch edp ports. With the cpu edp confusion on ilk (and snb/ivb) now fixed up, this shouldn't be required any more. The really interesting question is how this special cases survived this long in the code. The first step is declaring the pch port D as eDP if it's used for an internal panel: commitb329530ca7
Author: Adam Jackson <ajax@redhat.com> Date: Fri Jul 16 14:46:28 2010 -0400 drm/i915/dp: Correctly report eDP in the core connector type This commit unfortunately failed to notice that not all edp ports are created equal. Then follow a flurry of refactorings, culminating in a patch from Keith Packard which resulted in the current logic (by making it "correct" for all platforms that have edp): commit417e822dee
Author: Keith Packard <keithp@keithp.com> Date: Tue Nov 1 19:54:11 2011 -0700 drm/i915: Treat PCH eDP like DP in most places None of these cleanups or refactorings supply any reason why we need this code, they've simply carried it on as-is. Hence presume it might be harmful with the current code and rip it out. We do rewrite the link training bits completely anyway when re-training the link. Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
ba7a64587b
commit
b6f69c9a7f
|
@ -1921,13 +1921,6 @@ intel_dp_link_down(struct intel_dp *intel_dp)
|
||||||
|
|
||||||
msleep(17);
|
msleep(17);
|
||||||
|
|
||||||
if (is_edp(intel_dp)) {
|
|
||||||
if (HAS_PCH_CPT(dev) && (IS_GEN7(dev) || !is_cpu_edp(intel_dp)))
|
|
||||||
DP |= DP_LINK_TRAIN_OFF_CPT;
|
|
||||||
else
|
|
||||||
DP |= DP_LINK_TRAIN_OFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (HAS_PCH_IBX(dev) &&
|
if (HAS_PCH_IBX(dev) &&
|
||||||
I915_READ(intel_dp->output_reg) & DP_PIPEB_SELECT) {
|
I915_READ(intel_dp->output_reg) & DP_PIPEB_SELECT) {
|
||||||
struct drm_crtc *crtc = intel_dp->base.base.crtc;
|
struct drm_crtc *crtc = intel_dp->base.base.crtc;
|
||||||
|
|
Loading…
Reference in New Issue