fbdev: sh_mobile_lcdc: Add YUV framebuffer support
authorDamian Hobson-Garcia <dhobsong@igel.co.jp>
Thu, 24 Feb 2011 05:47:13 +0000 (05:47 +0000)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 16 Mar 2011 08:27:10 +0000 (17:27 +0900)
commit53b5031430bb3a7941b340b453afe4eabeb5340c
treec6eff3b6345c251194c6a1e6f8ca60a5d8f20581
parent3b0fd9d75598584478d1d3f6551f8a8a9696c34e
fbdev: sh_mobile_lcdc: Add YUV framebuffer support

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: Damian Hobson-Garcia <dhobsong@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
drivers/video/sh_mobile_lcdcfb.c
drivers/video/sh_mobile_lcdcfb.h
include/video/sh_mobile_lcdc.h