These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / media / platform / vivid / vivid-vid-common.c
index aa44627..1678b73 100644 (file)
@@ -45,7 +45,6 @@ const struct v4l2_dv_timings_cap vivid_dv_timings_cap = {
 
 struct vivid_fmt vivid_formats[] = {
        {
-               .name     = "4:2:2, packed, YUYV",
                .fourcc   = V4L2_PIX_FMT_YUYV,
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -55,7 +54,6 @@ struct vivid_fmt vivid_formats[] = {
                .data_offset = { PLANE0_DATA_OFFSET },
        },
        {
-               .name     = "4:2:2, packed, UYVY",
                .fourcc   = V4L2_PIX_FMT_UYVY,
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -64,7 +62,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "4:2:2, packed, YVYU",
                .fourcc   = V4L2_PIX_FMT_YVYU,
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -73,7 +70,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "4:2:2, packed, VYUY",
                .fourcc   = V4L2_PIX_FMT_VYUY,
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -82,7 +78,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "YUV 4:2:2 triplanar",
                .fourcc   = V4L2_PIX_FMT_YUV422P,
                .vdownsampling = { 1, 1, 1 },
                .bit_depth = { 8, 4, 4 },
@@ -91,7 +86,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "YUV 4:2:0 triplanar",
                .fourcc   = V4L2_PIX_FMT_YUV420,
                .vdownsampling = { 1, 2, 2 },
                .bit_depth = { 8, 4, 4 },
@@ -100,7 +94,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "YVU 4:2:0 triplanar",
                .fourcc   = V4L2_PIX_FMT_YVU420,
                .vdownsampling = { 1, 2, 2 },
                .bit_depth = { 8, 4, 4 },
@@ -109,7 +102,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "YUV 4:2:0 biplanar",
                .fourcc   = V4L2_PIX_FMT_NV12,
                .vdownsampling = { 1, 2 },
                .bit_depth = { 8, 8 },
@@ -118,7 +110,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "YVU 4:2:0 biplanar",
                .fourcc   = V4L2_PIX_FMT_NV21,
                .vdownsampling = { 1, 2 },
                .bit_depth = { 8, 8 },
@@ -127,7 +118,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "YUV 4:2:2 biplanar",
                .fourcc   = V4L2_PIX_FMT_NV16,
                .vdownsampling = { 1, 1 },
                .bit_depth = { 8, 8 },
@@ -136,7 +126,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "YVU 4:2:2 biplanar",
                .fourcc   = V4L2_PIX_FMT_NV61,
                .vdownsampling = { 1, 1 },
                .bit_depth = { 8, 8 },
@@ -145,7 +134,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "YUV 4:4:4 biplanar",
                .fourcc   = V4L2_PIX_FMT_NV24,
                .vdownsampling = { 1, 1 },
                .bit_depth = { 8, 16 },
@@ -154,7 +142,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "YVU 4:4:4 biplanar",
                .fourcc   = V4L2_PIX_FMT_NV42,
                .vdownsampling = { 1, 1 },
                .bit_depth = { 8, 16 },
@@ -163,7 +150,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "YUV555 (LE)",
                .fourcc   = V4L2_PIX_FMT_YUV555, /* uuuvvvvv ayyyyyuu */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -172,7 +158,6 @@ struct vivid_fmt vivid_formats[] = {
                .alpha_mask = 0x8000,
        },
        {
-               .name     = "YUV565 (LE)",
                .fourcc   = V4L2_PIX_FMT_YUV565, /* uuuvvvvv yyyyyuuu */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -180,7 +165,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "YUV444",
                .fourcc   = V4L2_PIX_FMT_YUV444, /* uuuuvvvv aaaayyyy */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -189,7 +173,6 @@ struct vivid_fmt vivid_formats[] = {
                .alpha_mask = 0xf000,
        },
        {
-               .name     = "YUV32 (LE)",
                .fourcc   = V4L2_PIX_FMT_YUV32, /* ayuv */
                .vdownsampling = { 1 },
                .bit_depth = { 32 },
@@ -198,7 +181,6 @@ struct vivid_fmt vivid_formats[] = {
                .alpha_mask = 0x000000ff,
        },
        {
-               .name     = "Monochrome",
                .fourcc   = V4L2_PIX_FMT_GREY,
                .vdownsampling = { 1 },
                .bit_depth = { 8 },
@@ -207,7 +189,22 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "RGB332",
+               .fourcc   = V4L2_PIX_FMT_Y16,
+               .vdownsampling = { 1 },
+               .bit_depth = { 16 },
+               .is_yuv   = true,
+               .planes   = 1,
+               .buffers = 1,
+       },
+       {
+               .fourcc   = V4L2_PIX_FMT_Y16_BE,
+               .vdownsampling = { 1 },
+               .bit_depth = { 16 },
+               .is_yuv   = true,
+               .planes   = 1,
+               .buffers = 1,
+       },
+       {
                .fourcc   = V4L2_PIX_FMT_RGB332, /* rrrgggbb */
                .vdownsampling = { 1 },
                .bit_depth = { 8 },
@@ -215,7 +212,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "RGB565 (LE)",
                .fourcc   = V4L2_PIX_FMT_RGB565, /* gggbbbbb rrrrrggg */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -224,7 +220,6 @@ struct vivid_fmt vivid_formats[] = {
                .can_do_overlay = true,
        },
        {
-               .name     = "RGB565 (BE)",
                .fourcc   = V4L2_PIX_FMT_RGB565X, /* rrrrrggg gggbbbbb */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -233,7 +228,6 @@ struct vivid_fmt vivid_formats[] = {
                .can_do_overlay = true,
        },
        {
-               .name     = "RGB444",
                .fourcc   = V4L2_PIX_FMT_RGB444, /* xxxxrrrr ggggbbbb */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -241,7 +235,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "XRGB444",
                .fourcc   = V4L2_PIX_FMT_XRGB444, /* xxxxrrrr ggggbbbb */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -249,7 +242,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "ARGB444",
                .fourcc   = V4L2_PIX_FMT_ARGB444, /* aaaarrrr ggggbbbb */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -258,7 +250,6 @@ struct vivid_fmt vivid_formats[] = {
                .alpha_mask = 0x00f0,
        },
        {
-               .name     = "RGB555 (LE)",
                .fourcc   = V4L2_PIX_FMT_RGB555, /* gggbbbbb xrrrrrgg */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -267,7 +258,6 @@ struct vivid_fmt vivid_formats[] = {
                .can_do_overlay = true,
        },
        {
-               .name     = "XRGB555 (LE)",
                .fourcc   = V4L2_PIX_FMT_XRGB555, /* gggbbbbb xrrrrrgg */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -276,7 +266,6 @@ struct vivid_fmt vivid_formats[] = {
                .can_do_overlay = true,
        },
        {
-               .name     = "ARGB555 (LE)",
                .fourcc   = V4L2_PIX_FMT_ARGB555, /* gggbbbbb arrrrrgg */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -286,7 +275,6 @@ struct vivid_fmt vivid_formats[] = {
                .alpha_mask = 0x8000,
        },
        {
-               .name     = "RGB555 (BE)",
                .fourcc   = V4L2_PIX_FMT_RGB555X, /* xrrrrrgg gggbbbbb */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -294,7 +282,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "XRGB555 (BE)",
                .fourcc   = V4L2_PIX_FMT_XRGB555X, /* xrrrrrgg gggbbbbb */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -302,7 +289,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "ARGB555 (BE)",
                .fourcc   = V4L2_PIX_FMT_ARGB555X, /* arrrrrgg gggbbbbb */
                .vdownsampling = { 1 },
                .bit_depth = { 16 },
@@ -311,7 +297,6 @@ struct vivid_fmt vivid_formats[] = {
                .alpha_mask = 0x0080,
        },
        {
-               .name     = "RGB24 (LE)",
                .fourcc   = V4L2_PIX_FMT_RGB24, /* rgb */
                .vdownsampling = { 1 },
                .bit_depth = { 24 },
@@ -319,7 +304,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "RGB24 (BE)",
                .fourcc   = V4L2_PIX_FMT_BGR24, /* bgr */
                .vdownsampling = { 1 },
                .bit_depth = { 24 },
@@ -327,7 +311,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "BGR666",
                .fourcc   = V4L2_PIX_FMT_BGR666, /* bbbbbbgg ggggrrrr rrxxxxxx */
                .vdownsampling = { 1 },
                .bit_depth = { 32 },
@@ -335,7 +318,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "RGB32 (LE)",
                .fourcc   = V4L2_PIX_FMT_RGB32, /* xrgb */
                .vdownsampling = { 1 },
                .bit_depth = { 32 },
@@ -343,7 +325,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "RGB32 (BE)",
                .fourcc   = V4L2_PIX_FMT_BGR32, /* bgrx */
                .vdownsampling = { 1 },
                .bit_depth = { 32 },
@@ -351,7 +332,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "XRGB32 (LE)",
                .fourcc   = V4L2_PIX_FMT_XRGB32, /* xrgb */
                .vdownsampling = { 1 },
                .bit_depth = { 32 },
@@ -359,7 +339,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "XRGB32 (BE)",
                .fourcc   = V4L2_PIX_FMT_XBGR32, /* bgrx */
                .vdownsampling = { 1 },
                .bit_depth = { 32 },
@@ -367,7 +346,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "ARGB32 (LE)",
                .fourcc   = V4L2_PIX_FMT_ARGB32, /* argb */
                .vdownsampling = { 1 },
                .bit_depth = { 32 },
@@ -376,7 +354,6 @@ struct vivid_fmt vivid_formats[] = {
                .alpha_mask = 0x000000ff,
        },
        {
-               .name     = "ARGB32 (BE)",
                .fourcc   = V4L2_PIX_FMT_ABGR32, /* bgra */
                .vdownsampling = { 1 },
                .bit_depth = { 32 },
@@ -385,7 +362,6 @@ struct vivid_fmt vivid_formats[] = {
                .alpha_mask = 0xff000000,
        },
        {
-               .name     = "Bayer BG/GR",
                .fourcc   = V4L2_PIX_FMT_SBGGR8, /* Bayer BG/GR */
                .vdownsampling = { 1 },
                .bit_depth = { 8 },
@@ -393,7 +369,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "Bayer GB/RG",
                .fourcc   = V4L2_PIX_FMT_SGBRG8, /* Bayer GB/RG */
                .vdownsampling = { 1 },
                .bit_depth = { 8 },
@@ -401,7 +376,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "Bayer GR/BG",
                .fourcc   = V4L2_PIX_FMT_SGRBG8, /* Bayer GR/BG */
                .vdownsampling = { 1 },
                .bit_depth = { 8 },
@@ -409,7 +383,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "Bayer RG/GB",
                .fourcc   = V4L2_PIX_FMT_SRGGB8, /* Bayer RG/GB */
                .vdownsampling = { 1 },
                .bit_depth = { 8 },
@@ -417,7 +390,62 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 1,
        },
        {
-               .name     = "4:2:2, biplanar, YUV",
+               .fourcc   = V4L2_PIX_FMT_SBGGR10, /* Bayer BG/GR */
+               .vdownsampling = { 1 },
+               .bit_depth = { 16 },
+               .planes   = 1,
+               .buffers = 1,
+       },
+       {
+               .fourcc   = V4L2_PIX_FMT_SGBRG10, /* Bayer GB/RG */
+               .vdownsampling = { 1 },
+               .bit_depth = { 16 },
+               .planes   = 1,
+               .buffers = 1,
+       },
+       {
+               .fourcc   = V4L2_PIX_FMT_SGRBG10, /* Bayer GR/BG */
+               .vdownsampling = { 1 },
+               .bit_depth = { 16 },
+               .planes   = 1,
+               .buffers = 1,
+       },
+       {
+               .fourcc   = V4L2_PIX_FMT_SRGGB10, /* Bayer RG/GB */
+               .vdownsampling = { 1 },
+               .bit_depth = { 16 },
+               .planes   = 1,
+               .buffers = 1,
+       },
+       {
+               .fourcc   = V4L2_PIX_FMT_SBGGR12, /* Bayer BG/GR */
+               .vdownsampling = { 1 },
+               .bit_depth = { 16 },
+               .planes   = 1,
+               .buffers = 1,
+       },
+       {
+               .fourcc   = V4L2_PIX_FMT_SGBRG12, /* Bayer GB/RG */
+               .vdownsampling = { 1 },
+               .bit_depth = { 16 },
+               .planes   = 1,
+               .buffers = 1,
+       },
+       {
+               .fourcc   = V4L2_PIX_FMT_SGRBG12, /* Bayer GR/BG */
+               .vdownsampling = { 1 },
+               .bit_depth = { 16 },
+               .planes   = 1,
+               .buffers = 1,
+       },
+       {
+               .fourcc   = V4L2_PIX_FMT_SRGGB12, /* Bayer RG/GB */
+               .vdownsampling = { 1 },
+               .bit_depth = { 16 },
+               .planes   = 1,
+               .buffers = 1,
+       },
+       {
                .fourcc   = V4L2_PIX_FMT_NV16M,
                .vdownsampling = { 1, 1 },
                .bit_depth = { 8, 8 },
@@ -427,7 +455,6 @@ struct vivid_fmt vivid_formats[] = {
                .data_offset = { PLANE0_DATA_OFFSET, 0 },
        },
        {
-               .name     = "4:2:2, biplanar, YVU",
                .fourcc   = V4L2_PIX_FMT_NV61M,
                .vdownsampling = { 1, 1 },
                .bit_depth = { 8, 8 },
@@ -437,7 +464,6 @@ struct vivid_fmt vivid_formats[] = {
                .data_offset = { 0, PLANE0_DATA_OFFSET },
        },
        {
-               .name     = "4:2:0, triplanar, YUV",
                .fourcc   = V4L2_PIX_FMT_YUV420M,
                .vdownsampling = { 1, 2, 2 },
                .bit_depth = { 8, 4, 4 },
@@ -446,7 +472,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 3,
        },
        {
-               .name     = "4:2:0, triplanar, YVU",
                .fourcc   = V4L2_PIX_FMT_YVU420M,
                .vdownsampling = { 1, 2, 2 },
                .bit_depth = { 8, 4, 4 },
@@ -455,7 +480,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 3,
        },
        {
-               .name     = "4:2:0, biplanar, YUV",
                .fourcc   = V4L2_PIX_FMT_NV12M,
                .vdownsampling = { 1, 2 },
                .bit_depth = { 8, 8 },
@@ -464,7 +488,6 @@ struct vivid_fmt vivid_formats[] = {
                .buffers = 2,
        },
        {
-               .name     = "4:2:0, biplanar, YVU",
                .fourcc   = V4L2_PIX_FMT_NV21M,
                .vdownsampling = { 1, 2 },
                .bit_depth = { 8, 8 },
@@ -557,6 +580,7 @@ void fmt_sp2mp(const struct v4l2_format *sp_fmt, struct v4l2_format *mp_fmt)
        mp->pixelformat = pix->pixelformat;
        mp->field = pix->field;
        mp->colorspace = pix->colorspace;
+       mp->xfer_func = pix->xfer_func;
        mp->ycbcr_enc = pix->ycbcr_enc;
        mp->quantization = pix->quantization;
        mp->num_planes = 1;
@@ -585,6 +609,7 @@ int fmt_sp2mp_func(struct file *file, void *priv,
        pix->pixelformat = mp->pixelformat;
        pix->field = mp->field;
        pix->colorspace = mp->colorspace;
+       pix->xfer_func = mp->xfer_func;
        pix->ycbcr_enc = mp->ycbcr_enc;
        pix->quantization = mp->quantization;
        pix->sizeimage = ppix->sizeimage;
@@ -750,7 +775,6 @@ int vivid_enum_fmt_vid(struct file *file, void  *priv,
 
        fmt = &vivid_formats[f->index];
 
-       strlcpy(f->description, fmt->name, sizeof(f->description));
        f->pixelformat = fmt->fourcc;
        return 0;
 }