• Sylwester Nawrocki's avatar
    [media] s5p-fimc: Add support for alpha component configuration · dafb9c70
    Sylwester Nawrocki authored
    On Exynos SoCs the FIMC IP allows to configure globally the alpha
    component of all pixels for V4L2_PIX_FMT_RGB32, V4L2_PIX_FMT_RGB555
    and V4L2_PIX_FMT_RGB444 image formats. This patch adds a v4l2 control
    in order to let the applications control the alpha component value.
    
    The alpha value range depends on the pixel format, for RGB32 it's
    0..255 (8-bits), for RGB555 - 0..1 (1-bit) and for RGB444 - 0..15
    (4-bits). The v4l2 control range is always 0..255 and the alpha
    component data width is determined by currently set format on the
    V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE buffer queue. The applications
    need to match the alpha channel value range and the pixel format
    since the driver will clamp the alpha component. Depending on
    fourcc the valid alpha bits are:
    
     - V4L2_PIX_FMT_RGB555  [0]
     - V4L2_PIX_FMT_RGB444  [3:0]
     - V4L2_PIX_FMT_RGB32   [7:0]
    
    When switching to a pixel format with smaller alpha component width
    the currently set alpha value will be clamped to maximum value valid
    for current format. When switching to a format with wider alpha the
    alpha value remains unchanged.
    
    The variant description data structure is extended with a new entry
    so an additional control is created only where really supported by
    the hardware.
    
    V4L2_PIX_FMT_RGB555 and V4L2_PIX_FMT_RGB444 formats are only valid
    for V4L2_BUF_TYPE_VIDEO_CAPTURE buffer queue.
    Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
    Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    dafb9c70
fimc-core.c 49.6 KB