• T
    drm/omap: fix enabling/disabling of video pipeline · 506096a1
    Tomi Valkeinen 提交于
    At the moment the omap_crtc_pre_apply() handles the enabling, disabling
    and configuring of encoders and panels separately from the CRTC (i.e.
    the overlay manager).
    
    However, this doesn't work correctly. The encoder driver has to be in
    control of its video input (i.e. the crtc) for correct operation.
    
    This problem causes bugs with (at least) HDMI: the HDMI encoder supplies
    pixel clock for DISPC, and DISPC supplies video stream for HDMI. The
    current code first enables the HDMI encoder, and CRTC after that.
    However, the encoder expects the video stream to start during the
    encoder's enable, and if it doesn't, there will be sync lost errors.
    
    The encoder enables its video source by calling src->enable(), and this
    call goes to omapdrm (omap_crtc_enable), but omapdrm doesn't do anything
    in that function. Similarly for disable, which goes to
    omap_crtc_disable().
    
    This patch moves the code to setup and enable/disable the crtc to
    omap_crtc_enable. and omap_crtc_disable().
    Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
    Reviewed-by: NRob Clark <robdclark@gmail.com>
    506096a1
omap_crtc.c 19.1 KB