On Wed, 12 Sep 2012 23:24:09 +0200, Daniel Vetter <daniel.vetter at ffwll.ch> wrote: > It's bogus. > > If I've followed the history of this piece of code correctly, i.e. the > initial register write with the following vblank wait, this goes all > the way back to the original enabling of DP support in > > commit a4fc5ed69817c73e32571ad7837bb707f9890009 > Author: Keith Packard <keithp at keithp.com> > Date: Tue Apr 7 16:16:42 2009 -0700 > > drm/i915: Add Display Port support > > Unfortunately it seems to be nothing more than glorified duct-tape and > sometimes actively harmful. Adam Jackson noticed this for CPT > platforms with > > commit e85194641bec56179dcf5e1704ce5c6bf30340c6 > Author: Adam Jackson <ajax at redhat.com> > Date: Thu Jul 21 17:48:38 2011 -0400 > > drm/i915/dp: Don't turn CPT DP ports on too early > > Unfortunately this kept the code around for ilk and gm45. > > The specific failure case I'm seeing here is that after a dpms off/on > cycle we have the bits from the last link training (hopefully > successful link training) set in intel_dp->DP. This is requiered so > that complete_link_train can enable the port with the right tuning > values. > > Unfortunately writing these again to the disabled port at dpms on time > kills the port somehow until it's disabled - dp link training fails in > an endless loop without this patch on my mobile ilk and gm45. > > Cc: Chris Wilson <chris at chris-wilson.co.uk> > Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch> Works for me, only time will time if I no longer get the occasional failure in link training, but it definitely fixes the issue with dpms off. Tested-by: Chris Wilson <chris at chris-wilson.co.uk> Probably https://bugs.freedesktop.org/show_bug.cgi?id=51493 -Chris -- Chris Wilson, Intel Open Source Technology Centre