diff --git a/Documentation/DocBook/media/v4l/pixfmt-yuv422m.xml b/Documentation/DocBook/media/v4l/pixfmt-yuv422m.xml
new file mode 100644
index 000000000000..dd502802cb75
--- /dev/null
+++ b/Documentation/DocBook/media/v4l/pixfmt-yuv422m.xml
@@ -0,0 +1,166 @@
+
+
+ V4L2_PIX_FMT_YUV422M ('YM16'), V4L2_PIX_FMT_YVU422M ('YM61')
+ &manvol;
+
+
+ V4L2_PIX_FMT_YUV422M
+ V4L2_PIX_FMT_YVU422M
+ Planar formats with ½ horizontal resolution, also
+ known as YUV and YVU 4:2:2
+
+
+
+ Description
+
+ This is a multi-planar format, as opposed to a packed format.
+The three components are separated into three sub-images or planes.
+
+ The Y plane is first. The Y plane has one byte per pixel.
+For V4L2_PIX_FMT_YUV422M the Cb data
+constitutes the second plane which is half the width of the Y plane (and of the
+image). Each Cb belongs to two pixels. For example,
+Cb0 belongs to Y'00,
+Y'01. The Cr data, just like the Cb plane, is
+in the third plane.
+
+ V4L2_PIX_FMT_YVU422M is the same except
+the Cr data is stored in the second plane and the Cb data in the third plane.
+
+
+ If the Y plane has pad bytes after each row, then the Cb
+and Cr planes have half as many pad bytes after their rows. In other
+words, two Cx rows (including padding) is exactly as long as one Y row
+(including padding).
+
+ V4L2_PIX_FMT_YUV422M and
+V4L2_PIX_FMT_YVU422M are intended to be
+used only in drivers and applications that support the multi-planar API,
+described in .
+
+
+ V4L2_PIX_FMT_YUV422M 4 × 4
+pixel image
+
+
+ Byte Order.
+ Each cell is one byte.
+
+
+
+
+
+ start0 + 0:
+ Y'00
+ Y'01
+ Y'02
+ Y'03
+
+
+ start0 + 4:
+ Y'10
+ Y'11
+ Y'12
+ Y'13
+
+
+ start0 + 8:
+ Y'20
+ Y'21
+ Y'22
+ Y'23
+
+
+ start0 + 12:
+ Y'30
+ Y'31
+ Y'32
+ Y'33
+
+
+
+ start1 + 0:
+ Cb00
+ Cb01
+
+
+ start1 + 2:
+ Cb10
+ Cb11
+
+
+ start1 + 4:
+ Cb20
+ Cb21
+
+
+ start1 + 6:
+ Cb30
+ Cb31
+
+
+
+ start2 + 0:
+ Cr00
+ Cr01
+
+
+ start2 + 2:
+ Cr10
+ Cr11
+
+
+ start2 + 4:
+ Cr20
+ Cr21
+
+
+ start2 + 6:
+ Cr30
+ Cr31
+
+
+
+
+
+
+
+
+ Color Sample Location.
+
+
+
+
+
+
+ 01
+ 23
+
+
+ 0
+ YCY
+ YCY
+
+
+ 1
+ YCY
+ YCY
+
+
+ 2
+ YCY
+ YCY
+
+
+ 3
+ YCY
+ YCY
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/DocBook/media/v4l/pixfmt-yuv444m.xml b/Documentation/DocBook/media/v4l/pixfmt-yuv444m.xml
new file mode 100644
index 000000000000..1b7335940bc7
--- /dev/null
+++ b/Documentation/DocBook/media/v4l/pixfmt-yuv444m.xml
@@ -0,0 +1,177 @@
+
+
+ V4L2_PIX_FMT_YUV444M ('YM24'), V4L2_PIX_FMT_YVU444M ('YM42')
+ &manvol;
+
+
+ V4L2_PIX_FMT_YUV444M
+ V4L2_PIX_FMT_YVU444M
+ Planar formats with full horizontal resolution, also
+ known as YUV and YVU 4:4:4
+
+
+
+ Description
+
+ This is a multi-planar format, as opposed to a packed format.
+The three components are separated into three sub-images or planes.
+
+ The Y plane is first. The Y plane has one byte per pixel.
+For V4L2_PIX_FMT_YUV444M the Cb data
+constitutes the second plane which is the same width and height as the Y plane
+(and as the image). The Cr data, just like the Cb plane, is in the third plane.
+
+
+ V4L2_PIX_FMT_YVU444M is the same except
+the Cr data is stored in the second plane and the Cb data in the third plane.
+
+ If the Y plane has pad bytes after each row, then the Cb
+and Cr planes have the same number of pad bytes after their rows.
+
+ V4L2_PIX_FMT_YUV444M and
+V4L2_PIX_FMT_YUV444M are intended to be
+used only in drivers and applications that support the multi-planar API,
+described in .
+
+
+ V4L2_PIX_FMT_YUV444M 4 × 4
+pixel image
+
+
+ Byte Order.
+ Each cell is one byte.
+
+
+
+
+
+ start0 + 0:
+ Y'00
+ Y'01
+ Y'02
+ Y'03
+
+
+ start0 + 4:
+ Y'10
+ Y'11
+ Y'12
+ Y'13
+
+
+ start0 + 8:
+ Y'20
+ Y'21
+ Y'22
+ Y'23
+
+
+ start0 + 12:
+ Y'30
+ Y'31
+ Y'32
+ Y'33
+
+
+
+ start1 + 0:
+ Cb00
+ Cb01
+ Cb02
+ Cb03
+
+
+ start1 + 4:
+ Cb10
+ Cb11
+ Cb12
+ Cb13
+
+
+ start1 + 8:
+ Cb20
+ Cb21
+ Cb22
+ Cb23
+
+
+ start1 + 12:
+ Cb20
+ Cb21
+ Cb32
+ Cb33
+
+
+
+ start2 + 0:
+ Cr00
+ Cr01
+ Cr02
+ Cr03
+
+
+ start2 + 4:
+ Cr10
+ Cr11
+ Cr12
+ Cr13
+
+
+ start2 + 8:
+ Cr20
+ Cr21
+ Cr22
+ Cr23
+
+
+ start2 + 12:
+ Cr30
+ Cr31
+ Cr32
+ Cr33
+
+
+
+
+
+
+
+
+ Color Sample Location.
+
+
+
+
+
+
+ 01
+ 23
+
+
+ 0
+ YCYC
+ YCYC
+
+
+ 1
+ YCYC
+ YCYC
+
+
+ 2
+ YCYC
+ YCYC
+
+
+ 3
+ YCYC
+ YCYC
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/DocBook/media/v4l/pixfmt.xml b/Documentation/DocBook/media/v4l/pixfmt.xml
index 9e77ff353feb..2f02f9441443 100644
--- a/Documentation/DocBook/media/v4l/pixfmt.xml
+++ b/Documentation/DocBook/media/v4l/pixfmt.xml
@@ -1628,6 +1628,8 @@ information.
&sub-y41p;
&sub-yuv420;
&sub-yuv420m;
+ &sub-yuv422m;
+ &sub-yuv444m;
&sub-yuv410;
&sub-yuv422p;
&sub-yuv411p;
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
index 8a018c6dd16a..14843090fd61 100644
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -1191,6 +1191,10 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
case V4L2_PIX_FMT_NV12MT_16X16: descr = "Y/CbCr 4:2:0 (16x16 MB, N-C)"; break;
case V4L2_PIX_FMT_YUV420M: descr = "Planar YUV 4:2:0 (N-C)"; break;
case V4L2_PIX_FMT_YVU420M: descr = "Planar YVU 4:2:0 (N-C)"; break;
+ case V4L2_PIX_FMT_YUV422M: descr = "Planar YUV 4:2:2 (N-C)"; break;
+ case V4L2_PIX_FMT_YVU422M: descr = "Planar YVU 4:2:2 (N-C)"; break;
+ case V4L2_PIX_FMT_YUV444M: descr = "Planar YUV 4:4:4 (N-C)"; break;
+ case V4L2_PIX_FMT_YVU444M: descr = "Planar YVU 4:4:4 (N-C)"; break;
case V4L2_PIX_FMT_SBGGR8: descr = "8-bit Bayer BGBG/GRGR"; break;
case V4L2_PIX_FMT_SGBRG8: descr = "8-bit Bayer GBGB/RGRG"; break;
case V4L2_PIX_FMT_SGRBG8: descr = "8-bit Bayer GRGR/BGBG"; break;
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index 14cd5ebfee6d..466458422385 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -546,6 +546,10 @@ struct v4l2_pix_format {
/* three non contiguous planes - Y, Cb, Cr */
#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12 YUV420 planar */
#define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12 YVU420 planar */
+#define V4L2_PIX_FMT_YUV422M v4l2_fourcc('Y', 'M', '1', '6') /* 16 YUV422 planar */
+#define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1') /* 16 YVU422 planar */
+#define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4') /* 24 YUV444 planar */
+#define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2') /* 24 YVU444 planar */
/* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */