• Tomi Valkeinen's avatar
    drm/omap: handle incompatible buffer stride and pixel size · 2dab0bab
    Tomi Valkeinen authored
    omapdrm doesn't check if the pitch of the framebuffer and the color
    format's bits-per-pixel are compatible. omapdss requires that the stride
    of a buffer is an integer number of pixels
    
    For example, when using modetest with a display that has x resolution of
    1280, and using packed 24 RGB mode (3 bytes per pixel), modetest
    allocates a buffer with a byte stride of 4 * 1280 = 5120. But 5120 / 3 =
    1706.666... pixels, which causes wrong colors and a tilt on the screen.
    
    Add a check into omapdrm to return an error if the user tries to use
    such a combination.
    
    Note: this is not a HW requirement at least for non-rotation use cases,
    but a SW driver requirement. In the future we should study if also
    rotation use cases are fine with any stride size, and if so, change the
    driver to allow these strides.
    Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    2dab0bab
omap_fb.c 12.3 KB