• Damian Hobson-Garcia's avatar
    fbdev: sh_mobile_lcdc: Add YUV framebuffer support · 53b50314
    Damian Hobson-Garcia authored
    Supports YCbCr420sp, YCbCr422sp, and YCbCr44sp, formats
    (bpp = 12, 16, and 24) respectively.
    
    When double-buffering both Y planes appear before the C planes (Y-Y-C-C),
    as opposed to  Y-C-Y-C.
    
    Set .nonstd in struct sh_mobile_lcdc_chan_cfg to enable YUV mode, and use
    .bpp to distiguish between the 3 modes.
    The value of .nonstd is copied to bits 16-31 of LDDFR in the LCDC and
    should be set accordingly.
    .nonstd must be set to 0 for RGB mode.
    
    Due to the encoding of YUV data, the framebuffer will clear to green
    instead of black.
    
    In YUV 420 mode, panning is only possible in 2 line increments.
    Additionally in YUV 420 mode the vertical resolution of the framebuffer
    must be an even number.
    Signed-off-by: default avatarDamian Hobson-Garcia <dhobsong@igel.co.jp>
    Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
    53b50314
sh_mobile_lcdcfb.c 39.4 KB