• Ville Syrjälä's avatar
    drm/i915: Wait for vblank before enabling the TV encoder · 7a98948f
    Ville Syrjälä authored
    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 56ef52ca
     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: default avatarAlan Bartlett <ajb@elrepo.org>
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=79311Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: default avatarDaniel Vetter <daniel@ffwll.ch>
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    7a98948f
intel_tv.c 48.2 KB