• Tomi Valkeinen's avatar
    drm/omap: fix output enable/disable sequence · 2ec8e378
    Tomi Valkeinen authored
    At the moment it's quite easy to get the following errors when the HDMI
    output is enabled or disabled:
    
    [drm:omap_crtc_error_irq] *ERROR* tv: errors: 00008000
    
    The reason for the errors is that the omapdrm driver doesn't properly
    handle the sync-lost irqs that happen when enabling the DIGIT crtc,
    which is used for HDMI and analog TV. The driver does disable the
    sync-lost irq properly, but it fails to wait until the output has been
    fully enabled (i.e. the first vsync), so the sync-lost errors are still
    seen occasionally.
    
    This patch makes the omapdrm act the same way as the omapfb does:
    
    - When enabling a display, we'll wait for the first vsync.
    - When disabling a display, we'll wait for framedone if available, or
      odd and even vsyncs.
    
    These changes make sure the output is fully enabled or disabled at the
    end of the function.
    Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    Reported-by: default avatarSanjay Singh Rawat <sanjay.rawat@linaro.org>
    Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
    2ec8e378
omap_crtc.c 18.4 KB