aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/DocBook/media/v4l/subdev-formats.xml250
-rw-r--r--include/uapi/linux/v4l2-mediabus.h10
2 files changed, 252 insertions, 8 deletions
diff --git a/Documentation/DocBook/media/v4l/subdev-formats.xml b/Documentation/DocBook/media/v4l/subdev-formats.xml
index a0a936455fae..6f341d1eca1a 100644
--- a/Documentation/DocBook/media/v4l/subdev-formats.xml
+++ b/Documentation/DocBook/media/v4l/subdev-formats.xml
@@ -353,9 +353,9 @@
353 <listitem><para>The number of bits per pixel component. All components are 353 <listitem><para>The number of bits per pixel component. All components are
354 transferred on the same number of bits. Common values are 8, 10 and 12.</para> 354 transferred on the same number of bits. Common values are 8, 10 and 12.</para>
355 </listitem> 355 </listitem>
356 <listitem><para>If the pixel components are DPCM-compressed, a mention of the 356 <listitem><para>The compression (optional). If the pixel components are
357 DPCM compression and the number of bits per compressed pixel component.</para> 357 ALAW- or DPCM-compressed, a mention of the compression scheme and the
358 </listitem> 358 number of bits per compressed pixel component.</para></listitem>
359 <listitem><para>The number of bus samples per pixel. Pixels that are wider than 359 <listitem><para>The number of bus samples per pixel. Pixels that are wider than
360 the bus width must be transferred in multiple samples. Common values are 360 the bus width must be transferred in multiple samples. Common values are
361 1 and 2.</para></listitem> 361 1 and 2.</para></listitem>
@@ -504,6 +504,74 @@
504 <entry>r<subscript>1</subscript></entry> 504 <entry>r<subscript>1</subscript></entry>
505 <entry>r<subscript>0</subscript></entry> 505 <entry>r<subscript>0</subscript></entry>
506 </row> 506 </row>
507 <row id="V4L2-MBUS-FMT-SBGGR10-ALAW8-1X8">
508 <entry>V4L2_MBUS_FMT_SBGGR10_ALAW8_1X8</entry>
509 <entry>0x3015</entry>
510 <entry></entry>
511 <entry>-</entry>
512 <entry>-</entry>
513 <entry>-</entry>
514 <entry>-</entry>
515 <entry>b<subscript>7</subscript></entry>
516 <entry>b<subscript>6</subscript></entry>
517 <entry>b<subscript>5</subscript></entry>
518 <entry>b<subscript>4</subscript></entry>
519 <entry>b<subscript>3</subscript></entry>
520 <entry>b<subscript>2</subscript></entry>
521 <entry>b<subscript>1</subscript></entry>
522 <entry>b<subscript>0</subscript></entry>
523 </row>
524 <row id="V4L2-MBUS-FMT-SGBRG10-ALAW8-1X8">
525 <entry>V4L2_MBUS_FMT_SGBRG10_ALAW8_1X8</entry>
526 <entry>0x3016</entry>
527 <entry></entry>
528 <entry>-</entry>
529 <entry>-</entry>
530 <entry>-</entry>
531 <entry>-</entry>
532 <entry>g<subscript>7</subscript></entry>
533 <entry>g<subscript>6</subscript></entry>
534 <entry>g<subscript>5</subscript></entry>
535 <entry>g<subscript>4</subscript></entry>
536 <entry>g<subscript>3</subscript></entry>
537 <entry>g<subscript>2</subscript></entry>
538 <entry>g<subscript>1</subscript></entry>
539 <entry>g<subscript>0</subscript></entry>
540 </row>
541 <row id="V4L2-MBUS-FMT-SGRBG10-ALAW8-1X8">
542 <entry>V4L2_MBUS_FMT_SGRBG10_ALAW8_1X8</entry>
543 <entry>0x3017</entry>
544 <entry></entry>
545 <entry>-</entry>
546 <entry>-</entry>
547 <entry>-</entry>
548 <entry>-</entry>
549 <entry>g<subscript>7</subscript></entry>
550 <entry>g<subscript>6</subscript></entry>
551 <entry>g<subscript>5</subscript></entry>
552 <entry>g<subscript>4</subscript></entry>
553 <entry>g<subscript>3</subscript></entry>
554 <entry>g<subscript>2</subscript></entry>
555 <entry>g<subscript>1</subscript></entry>
556 <entry>g<subscript>0</subscript></entry>
557 </row>
558 <row id="V4L2-MBUS-FMT-SRGGB10-ALAW8-1X8">
559 <entry>V4L2_MBUS_FMT_SRGGB10_ALAW8_1X8</entry>
560 <entry>0x3018</entry>
561 <entry></entry>
562 <entry>-</entry>
563 <entry>-</entry>
564 <entry>-</entry>
565 <entry>-</entry>
566 <entry>r<subscript>7</subscript></entry>
567 <entry>r<subscript>6</subscript></entry>
568 <entry>r<subscript>5</subscript></entry>
569 <entry>r<subscript>4</subscript></entry>
570 <entry>r<subscript>3</subscript></entry>
571 <entry>r<subscript>2</subscript></entry>
572 <entry>r<subscript>1</subscript></entry>
573 <entry>r<subscript>0</subscript></entry>
574 </row>
507 <row id="V4L2-MBUS-FMT-SBGGR10-DPCM8-1X8"> 575 <row id="V4L2-MBUS-FMT-SBGGR10-DPCM8-1X8">
508 <entry>V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8</entry> 576 <entry>V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8</entry>
509 <entry>0x300b</entry> 577 <entry>0x300b</entry>
@@ -853,10 +921,16 @@
853 <title>Packed YUV Formats</title> 921 <title>Packed YUV Formats</title>
854 922
855 <para>Those data formats transfer pixel data as (possibly downsampled) Y, U 923 <para>Those data formats transfer pixel data as (possibly downsampled) Y, U
856 and V components. The format code is made of the following information. 924 and V components. Some formats include dummy bits in some of their samples
925 and are collectively referred to as "YDYC" (Y-Dummy-Y-Chroma) formats.
926 One cannot rely on the values of these dummy bits as those are undefined.
927 </para>
928 <para>The format code is made of the following information.
857 <itemizedlist> 929 <itemizedlist>
858 <listitem><para>The Y, U and V components order code, as transferred on the 930 <listitem><para>The Y, U and V components order code, as transferred on the
859 bus. Possible values are YUYV, UYVY, YVYU and VYUY.</para></listitem> 931 bus. Possible values are YUYV, UYVY, YVYU and VYUY for formats with no
932 dummy bit, and YDYUYDYV, YDYVYDYU, YUYDYVYD and YVYDYUYD for YDYC formats.
933 </para></listitem>
860 <listitem><para>The number of bits per pixel component. All components are 934 <listitem><para>The number of bits per pixel component. All components are
861 transferred on the same number of bits. Common values are 8, 10 and 12.</para> 935 transferred on the same number of bits. Common values are 8, 10 and 12.</para>
862 </listitem> 936 </listitem>
@@ -877,7 +951,21 @@
877 U, Y, V, Y order will be named <constant>V4L2_MBUS_FMT_UYVY8_2X8</constant>. 951 U, Y, V, Y order will be named <constant>V4L2_MBUS_FMT_UYVY8_2X8</constant>.
878 </para> 952 </para>
879 953
880 <para>The following table lisst existing packet YUV formats.</para> 954 <para><xref linkend="v4l2-mbus-pixelcode-yuv8"/> list existing packet YUV
955 formats and describes the organization of each pixel data in each sample.
956 When a format pattern is split across multiple samples each of the samples
957 in the pattern is described.</para>
958
959 <para>The role of each bit transferred over the bus is identified by one
960 of the following codes.</para>
961
962 <itemizedlist>
963 <listitem><para>y<subscript>x</subscript> for luma component bit number x</para></listitem>
964 <listitem><para>u<subscript>x</subscript> for blue chroma component bit number x</para></listitem>
965 <listitem><para>v<subscript>x</subscript> for red chroma component bit number x</para></listitem>
966 <listitem><para>- for non-available bits (for positions higher than the bus width)</para></listitem>
967 <listitem><para>d for dummy bits</para></listitem>
968 </itemizedlist>
881 969
882 <table pgwide="0" frame="none" id="v4l2-mbus-pixelcode-yuv8"> 970 <table pgwide="0" frame="none" id="v4l2-mbus-pixelcode-yuv8">
883 <title>YUV Formats</title> 971 <title>YUV Formats</title>
@@ -965,6 +1053,56 @@
965 <entry>y<subscript>1</subscript></entry> 1053 <entry>y<subscript>1</subscript></entry>
966 <entry>y<subscript>0</subscript></entry> 1054 <entry>y<subscript>0</subscript></entry>
967 </row> 1055 </row>
1056 <row id="V4L2-MBUS-FMT-UV8-1X8">
1057 <entry>V4L2_MBUS_FMT_UV8_1X8</entry>
1058 <entry>0x2015</entry>
1059 <entry></entry>
1060 <entry>-</entry>
1061 <entry>-</entry>
1062 <entry>-</entry>
1063 <entry>-</entry>
1064 <entry>-</entry>
1065 <entry>-</entry>
1066 <entry>-</entry>
1067 <entry>-</entry>
1068 <entry>-</entry>
1069 <entry>-</entry>
1070 <entry>-</entry>
1071 <entry>-</entry>
1072 <entry>u<subscript>7</subscript></entry>
1073 <entry>u<subscript>6</subscript></entry>
1074 <entry>u<subscript>5</subscript></entry>
1075 <entry>u<subscript>4</subscript></entry>
1076 <entry>u<subscript>3</subscript></entry>
1077 <entry>u<subscript>2</subscript></entry>
1078 <entry>u<subscript>1</subscript></entry>
1079 <entry>u<subscript>0</subscript></entry>
1080 </row>
1081 <row>
1082 <entry></entry>
1083 <entry></entry>
1084 <entry></entry>
1085 <entry>-</entry>
1086 <entry>-</entry>
1087 <entry>-</entry>
1088 <entry>-</entry>
1089 <entry>-</entry>
1090 <entry>-</entry>
1091 <entry>-</entry>
1092 <entry>-</entry>
1093 <entry>-</entry>
1094 <entry>-</entry>
1095 <entry>-</entry>
1096 <entry>-</entry>
1097 <entry>v<subscript>7</subscript></entry>
1098 <entry>v<subscript>6</subscript></entry>
1099 <entry>v<subscript>5</subscript></entry>
1100 <entry>v<subscript>4</subscript></entry>
1101 <entry>v<subscript>3</subscript></entry>
1102 <entry>v<subscript>2</subscript></entry>
1103 <entry>v<subscript>1</subscript></entry>
1104 <entry>v<subscript>0</subscript></entry>
1105 </row>
968 <row id="V4L2-MBUS-FMT-UYVY8-1_5X8"> 1106 <row id="V4L2-MBUS-FMT-UYVY8-1_5X8">
969 <entry>V4L2_MBUS_FMT_UYVY8_1_5X8</entry> 1107 <entry>V4L2_MBUS_FMT_UYVY8_1_5X8</entry>
970 <entry>0x2002</entry> 1108 <entry>0x2002</entry>
@@ -2415,6 +2553,106 @@
2415 <entry>u<subscript>1</subscript></entry> 2553 <entry>u<subscript>1</subscript></entry>
2416 <entry>u<subscript>0</subscript></entry> 2554 <entry>u<subscript>0</subscript></entry>
2417 </row> 2555 </row>
2556 <row id="V4L2-MBUS-FMT-YDYUYDYV8-1X16">
2557 <entry>V4L2_MBUS_FMT_YDYUYDYV8_1X16</entry>
2558 <entry>0x2014</entry>
2559 <entry></entry>
2560 <entry>-</entry>
2561 <entry>-</entry>
2562 <entry>-</entry>
2563 <entry>-</entry>
2564 <entry>y<subscript>7</subscript></entry>
2565 <entry>y<subscript>6</subscript></entry>
2566 <entry>y<subscript>5</subscript></entry>
2567 <entry>y<subscript>4</subscript></entry>
2568 <entry>y<subscript>3</subscript></entry>
2569 <entry>y<subscript>2</subscript></entry>
2570 <entry>y<subscript>1</subscript></entry>
2571 <entry>y<subscript>0</subscript></entry>
2572 <entry>d</entry>
2573 <entry>d</entry>
2574 <entry>d</entry>
2575 <entry>d</entry>
2576 <entry>d</entry>
2577 <entry>d</entry>
2578 <entry>d</entry>
2579 <entry>d</entry>
2580 </row>
2581 <row>
2582 <entry></entry>
2583 <entry></entry>
2584 <entry></entry>
2585 <entry>-</entry>
2586 <entry>-</entry>
2587 <entry>-</entry>
2588 <entry>-</entry>
2589 <entry>y<subscript>7</subscript></entry>
2590 <entry>y<subscript>6</subscript></entry>
2591 <entry>y<subscript>5</subscript></entry>
2592 <entry>y<subscript>4</subscript></entry>
2593 <entry>y<subscript>3</subscript></entry>
2594 <entry>y<subscript>2</subscript></entry>
2595 <entry>y<subscript>1</subscript></entry>
2596 <entry>y<subscript>0</subscript></entry>
2597 <entry>u<subscript>7</subscript></entry>
2598 <entry>u<subscript>6</subscript></entry>
2599 <entry>u<subscript>5</subscript></entry>
2600 <entry>u<subscript>4</subscript></entry>
2601 <entry>u<subscript>3</subscript></entry>
2602 <entry>u<subscript>2</subscript></entry>
2603 <entry>u<subscript>1</subscript></entry>
2604 <entry>u<subscript>0</subscript></entry>
2605 </row>
2606 <row>
2607 <entry></entry>
2608 <entry></entry>
2609 <entry></entry>
2610 <entry>-</entry>
2611 <entry>-</entry>
2612 <entry>-</entry>
2613 <entry>-</entry>
2614 <entry>y<subscript>7</subscript></entry>
2615 <entry>y<subscript>6</subscript></entry>
2616 <entry>y<subscript>5</subscript></entry>
2617 <entry>y<subscript>4</subscript></entry>
2618 <entry>y<subscript>3</subscript></entry>
2619 <entry>y<subscript>2</subscript></entry>
2620 <entry>y<subscript>1</subscript></entry>
2621 <entry>y<subscript>0</subscript></entry>
2622 <entry>d</entry>
2623 <entry>d</entry>
2624 <entry>d</entry>
2625 <entry>d</entry>
2626 <entry>d</entry>
2627 <entry>d</entry>
2628 <entry>d</entry>
2629 <entry>d</entry>
2630 </row>
2631 <row>
2632 <entry></entry>
2633 <entry></entry>
2634 <entry></entry>
2635 <entry>-</entry>
2636 <entry>-</entry>
2637 <entry>-</entry>
2638 <entry>-</entry>
2639 <entry>y<subscript>7</subscript></entry>
2640 <entry>y<subscript>6</subscript></entry>
2641 <entry>y<subscript>5</subscript></entry>
2642 <entry>y<subscript>4</subscript></entry>
2643 <entry>y<subscript>3</subscript></entry>
2644 <entry>y<subscript>2</subscript></entry>
2645 <entry>y<subscript>1</subscript></entry>
2646 <entry>y<subscript>0</subscript></entry>
2647 <entry>v<subscript>7</subscript></entry>
2648 <entry>v<subscript>6</subscript></entry>
2649 <entry>v<subscript>5</subscript></entry>
2650 <entry>v<subscript>4</subscript></entry>
2651 <entry>v<subscript>3</subscript></entry>
2652 <entry>v<subscript>2</subscript></entry>
2653 <entry>v<subscript>1</subscript></entry>
2654 <entry>v<subscript>0</subscript></entry>
2655 </row>
2418 <row id="V4L2-MBUS-FMT-YUYV10-1X20"> 2656 <row id="V4L2-MBUS-FMT-YUYV10-1X20">
2419 <entry>V4L2_MBUS_FMT_YUYV10_1X20</entry> 2657 <entry>V4L2_MBUS_FMT_YUYV10_1X20</entry>
2420 <entry>0x200d</entry> 2658 <entry>0x200d</entry>
diff --git a/include/uapi/linux/v4l2-mediabus.h b/include/uapi/linux/v4l2-mediabus.h
index 7d64e0e1a18b..e860f55820ec 100644
--- a/include/uapi/linux/v4l2-mediabus.h
+++ b/include/uapi/linux/v4l2-mediabus.h
@@ -47,8 +47,9 @@ enum v4l2_mbus_pixelcode {
47 V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007, 47 V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007,
48 V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008, 48 V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008,
49 49
50 /* YUV (including grey) - next is 0x2014 */ 50 /* YUV (including grey) - next is 0x2016 */
51 V4L2_MBUS_FMT_Y8_1X8 = 0x2001, 51 V4L2_MBUS_FMT_Y8_1X8 = 0x2001,
52 V4L2_MBUS_FMT_UV8_1X8 = 0x2015,
52 V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002, 53 V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002,
53 V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003, 54 V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003,
54 V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004, 55 V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004,
@@ -65,14 +66,19 @@ enum v4l2_mbus_pixelcode {
65 V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010, 66 V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010,
66 V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011, 67 V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011,
67 V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012, 68 V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012,
69 V4L2_MBUS_FMT_YDYUYDYV8_1X16 = 0x2014,
68 V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d, 70 V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d,
69 V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e, 71 V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e,
70 72
71 /* Bayer - next is 0x3015 */ 73 /* Bayer - next is 0x3019 */
72 V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001, 74 V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001,
73 V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013, 75 V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013,
74 V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002, 76 V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002,
75 V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014, 77 V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014,
78 V4L2_MBUS_FMT_SBGGR10_ALAW8_1X8 = 0x3015,
79 V4L2_MBUS_FMT_SGBRG10_ALAW8_1X8 = 0x3016,
80 V4L2_MBUS_FMT_SGRBG10_ALAW8_1X8 = 0x3017,
81 V4L2_MBUS_FMT_SRGGB10_ALAW8_1X8 = 0x3018,
76 V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b, 82 V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b,
77 V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c, 83 V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c,
78 V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009, 84 V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009,