]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Wait for vblank before enabling the TV encoder
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 8 Sep 2014 14:43:01 +0000 (17:43 +0300)
committerJani Nikula <jani.nikula@intel.com>
Mon, 8 Sep 2014 15:07:08 +0000 (18:07 +0300)
commit739e840daffbeedb6a8d79e877734ce19d5e689d
treeeddf9ba71dd639dbf83c63561040adac2a82c127
parentd38460cfd2cde8ebc6c03c6b4732284a3a7f1257
drm/i915: Wait for vblank before enabling the TV encoder

The vblank waits in intel_tv_detect_type() are timing out for some
reason. This is a regression caused removing seemingly useless vblank
waits from the modeset seqeuence in:

 commit 3fb7efcd65d6ace4deb10799411920c049fea8b7
 Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
 Date:   Thu May 8 19:23:15 2014 +0300

    drm/i915: Kill vblank waits after pipe enable on gmch platforms

So it turns out they weren't all entirely useless. Apparently the pipe
has to go through one full frame before we enable the TV port. Add a
vblank wait to intel_enable_tv() to make sure that happens.

Another approach was attempted by placing the vblank wait just after
enabling the port. The theory behind that attempt was that we need to
let the port stay enabled for one full frame before disabling it again
during load detection. But that didn't work, and we definitely must
have the vblank wait before enabling the port.

Cc: stable@vger.kernel.org
Cc: Alan Bartlett <ajb@elrepo.org>
Tested-by: Alan Bartlett <ajb@elrepo.org>
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=79311
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/intel_tv.c