Skip to content
  • Fabio Estevam's avatar
    drm: mxsfb_crtc: Fix the framebuffer misplacement · d42986b6
    Fabio Estevam authored
    
    
    Currently the framebuffer content is displayed with incorrect offsets
    in both the vertical and horizontal directions.
    
    The fbdev version of the driver does not show this problem. Breno Lima
    dumped the eLCDIF controller registers on both the drm and fbdev drivers
    and noticed that the VDCTRL3 register is configured incorrectly in the
    drm driver.
    
    The fbdev driver calculates the vertical and horizontal wait counts
    of the VDCTRL3 register by doing: back porch + sync length.
    
    Looking at the horizontal and vertical timing diagram from
    include/drm/drm_modes.h this value corresponds to:
    
    crtc_[hv]total - crtc_[hv]sync_start
    
    So fix the VDCTRL3 register setting accordingly so that the eLCDIF
    controller can properly show the framebuffer content in the correct
    position.
    
    Reported-by: default avatarBreno Lima <breno.lima@nxp.com>
    Signed-off-by: default avatarFabio Estevam <fabio.estevam@nxp.com>
    Tested-by: default avatarBreno Lima <breno.lima@nxp.com>
    Tested-by: default avatarMarek Vasut <marex@denx.de>
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    d42986b6