diff --git a/Documentation/DocBook/media-entities.tmpl b/Documentation/DocBook/media-entities.tmpl
index 7a9570887d214361428838f94758a8528a5fd0c3..c8abb23ef1e7b063c8babd317e985fb0814db68c 100644
--- a/Documentation/DocBook/media-entities.tmpl
+++ b/Documentation/DocBook/media-entities.tmpl
@@ -270,6 +270,7 @@
+
diff --git a/Documentation/DocBook/v4l/pixfmt-m420.xml b/Documentation/DocBook/v4l/pixfmt-m420.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ce4bc019e5c0351ee86ec12abff513571c9bf32f
--- /dev/null
+++ b/Documentation/DocBook/v4l/pixfmt-m420.xml
@@ -0,0 +1,147 @@
+
+
+ V4L2_PIX_FMT_M420 ('M420')
+ &manvol;
+
+
+ V4L2_PIX_FMT_M420
+ Format with ½ horizontal and vertical chroma
+ resolution, also known as YUV 4:2:0. Hybrid plane line-interleaved
+ layout.
+
+
+ Description
+
+ M420 is a YUV format with ½ horizontal and vertical chroma
+ subsampling (YUV 4:2:0). Pixels are organized as interleaved luma and
+ chroma planes. Two lines of luma data are followed by one line of chroma
+ data.
+ The luma plane has one byte per pixel. The chroma plane contains
+ interleaved CbCr pixels subsampled by ½ in the horizontal and
+ vertical directions. Each CbCr pair belongs to four pixels. For example,
+Cb0/Cr0 belongs to
+Y'00, Y'01,
+Y'10, Y'11.
+
+ All line lengths are identical: if the Y lines include pad bytes
+ so do the CbCr lines.
+
+
+ V4L2_PIX_FMT_M420 4 × 4
+pixel image
+
+
+ Byte Order.
+ Each cell is one byte.
+
+
+
+
+
+ start + 0:
+ Y'00
+ Y'01
+ Y'02
+ Y'03
+
+
+ start + 4:
+ Y'10
+ Y'11
+ Y'12
+ Y'13
+
+
+ start + 8:
+ Cb00
+ Cr00
+ Cb01
+ Cr01
+
+
+ start + 16:
+ Y'20
+ Y'21
+ Y'22
+ Y'23
+
+
+ start + 20:
+ Y'30
+ Y'31
+ Y'32
+ Y'33
+
+
+ start + 24:
+ Cb10
+ Cr10
+ Cb11
+ Cr11
+
+
+
+
+
+
+
+
+ Color Sample Location.
+
+
+
+
+
+
+ 01
+ 23
+
+
+ 0
+ YY
+ YY
+
+
+
+ C
+ C
+
+
+ 1
+ YY
+ YY
+
+
+
+
+
+ 2
+ YY
+ YY
+
+
+
+ C
+ C
+
+
+ 3
+ YY
+ YY
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/DocBook/v4l/pixfmt.xml b/Documentation/DocBook/v4l/pixfmt.xml
index 3486a068fe461070fe66071655f4506bb91ac3e5..dbfe3b08435f9a588c2de93a4e4fd4af202c7d82 100644
--- a/Documentation/DocBook/v4l/pixfmt.xml
+++ b/Documentation/DocBook/v4l/pixfmt.xml
@@ -713,6 +713,7 @@ information.
&sub-nv12m;
&sub-nv12mt;
&sub-nv16;
+ &sub-m420;
diff --git a/Documentation/DocBook/v4l/videodev2.h.xml b/Documentation/DocBook/v4l/videodev2.h.xml
index 937acf54da9c398fa000de0872b2314b84d8b666..c50536a4f596150af92dd64072e65f25b8dfd892 100644
--- a/Documentation/DocBook/v4l/videodev2.h.xml
+++ b/Documentation/DocBook/v4l/videodev2.h.xml
@@ -336,6 +336,7 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */
#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */
#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */
+#define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */
/* two planes -- one Y, one Cr + Cb interleaved */
#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index a417270b337f179180d1a1f5bbe7ac0537305296..8a4c309d23444450a13a9e675cdc51e4a14376f4 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -336,6 +336,7 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */
#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */
#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */
+#define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */
/* two planes -- one Y, one Cr + Cb interleaved */
#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */