aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/DocBook/media/dvb/dvbproperty.xml52
-rw-r--r--Documentation/DocBook/media/v4l/common.xml14
-rw-r--r--Documentation/DocBook/media/v4l/compat.xml24
-rw-r--r--Documentation/DocBook/media/v4l/controls.xml87
-rw-r--r--Documentation/DocBook/media/v4l/io.xml6
-rw-r--r--Documentation/DocBook/media/v4l/media-ioc-enum-entities.xml10
-rw-r--r--Documentation/DocBook/media/v4l/subdev-formats.xml206
-rw-r--r--Documentation/DocBook/media/v4l/v4l2.xml19
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-ident.xml9
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-info.xml223
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-dbg-g-register.xml29
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml240
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-enuminput.xml5
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-enumoutput.xml5
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml113
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml9
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml78
-rw-r--r--Documentation/DocBook/media_api.tmpl1
-rw-r--r--Documentation/devicetree/bindings/media/exynos-fimc-lite.txt14
-rw-r--r--Documentation/devicetree/bindings/media/exynos4-fimc-is.txt49
-rw-r--r--Documentation/devicetree/bindings/media/samsung-fimc.txt197
-rw-r--r--Documentation/devicetree/bindings/media/samsung-mipi-csis.txt81
-rw-r--r--Documentation/devicetree/bindings/media/video-interfaces.txt228
-rw-r--r--Documentation/video4linux/CARDLIST.em28xx3
-rw-r--r--Documentation/video4linux/CARDLIST.tuner3
-rw-r--r--Documentation/video4linux/si476x.txt187
26 files changed, 1379 insertions, 513 deletions
diff --git a/Documentation/DocBook/media/dvb/dvbproperty.xml b/Documentation/DocBook/media/dvb/dvbproperty.xml
index 4a5eaeed0b9e..a9b15e34c5b2 100644
--- a/Documentation/DocBook/media/dvb/dvbproperty.xml
+++ b/Documentation/DocBook/media/dvb/dvbproperty.xml
@@ -1,6 +1,6 @@
1<section id="FE_GET_SET_PROPERTY"> 1<section id="FE_GET_SET_PROPERTY">
2<title><constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></title> 2<title><constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></title>
3<para>This section describes the DVB version 5 extention of the DVB-API, also 3<para>This section describes the DVB version 5 extension of the DVB-API, also
4called "S2API", as this API were added to provide support for DVB-S2. It was 4called "S2API", as this API were added to provide support for DVB-S2. It was
5designed to be able to replace the old frontend API. Yet, the DISEQC and 5designed to be able to replace the old frontend API. Yet, the DISEQC and
6the capability ioctls weren't implemented yet via the new way.</para> 6the capability ioctls weren't implemented yet via the new way.</para>
@@ -903,14 +903,12 @@ enum fe_interleaving {
903 <constant>svalue</constant> is for signed values of the measure (dB measures) 903 <constant>svalue</constant> is for signed values of the measure (dB measures)
904 and <constant>uvalue</constant> is for unsigned values (counters, relative scale)</para></listitem> 904 and <constant>uvalue</constant> is for unsigned values (counters, relative scale)</para></listitem>
905 <listitem><para><constant>scale</constant> - Scale for the value. It can be:</para> 905 <listitem><para><constant>scale</constant> - Scale for the value. It can be:</para>
906 <section id = "fecap-scale-params"> 906 <itemizedlist mark='bullet' id="fecap-scale-params">
907 <itemizedlist mark='bullet'>
908 <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - The parameter is supported by the frontend, but it was not possible to collect it (could be a transitory or permanent condition)</para></listitem> 907 <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - The parameter is supported by the frontend, but it was not possible to collect it (could be a transitory or permanent condition)</para></listitem>
909 <listitem><para><constant>FE_SCALE_DECIBEL</constant> - parameter is a signed value, measured in 1/1000 dB</para></listitem> 908 <listitem><para><constant>FE_SCALE_DECIBEL</constant> - parameter is a signed value, measured in 1/1000 dB</para></listitem>
910 <listitem><para><constant>FE_SCALE_RELATIVE</constant> - parameter is a unsigned value, where 0 means 0% and 65535 means 100%.</para></listitem> 909 <listitem><para><constant>FE_SCALE_RELATIVE</constant> - parameter is a unsigned value, where 0 means 0% and 65535 means 100%.</para></listitem>
911 <listitem><para><constant>FE_SCALE_COUNTER</constant> - parameter is a unsigned value that counts the occurrence of an event, like bit error, block error, or lapsed time.</para></listitem> 910 <listitem><para><constant>FE_SCALE_COUNTER</constant> - parameter is a unsigned value that counts the occurrence of an event, like bit error, block error, or lapsed time.</para></listitem>
912 </itemizedlist> 911 </itemizedlist>
913 </section>
914 </listitem> 912 </listitem>
915 </itemizedlist> 913 </itemizedlist>
916 <section id="DTV-STAT-SIGNAL-STRENGTH"> 914 <section id="DTV-STAT-SIGNAL-STRENGTH">
@@ -918,9 +916,9 @@ enum fe_interleaving {
918 <para>Indicates the signal strength level at the analog part of the tuner or of the demod.</para> 916 <para>Indicates the signal strength level at the analog part of the tuner or of the demod.</para>
919 <para>Possible scales for this metric are:</para> 917 <para>Possible scales for this metric are:</para>
920 <itemizedlist mark='bullet'> 918 <itemizedlist mark='bullet'>
921 <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> 919 <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
922 <listitem><constant>FE_SCALE_DECIBEL</constant> - signal strength is in 0.0001 dBm units, power measured in miliwatts. This value is generally negative.</listitem> 920 <listitem><para><constant>FE_SCALE_DECIBEL</constant> - signal strength is in 0.0001 dBm units, power measured in miliwatts. This value is generally negative.</para></listitem>
923 <listitem><constant>FE_SCALE_RELATIVE</constant> - The frontend provides a 0% to 100% measurement for power (actually, 0 to 65535).</listitem> 921 <listitem><para><constant>FE_SCALE_RELATIVE</constant> - The frontend provides a 0% to 100% measurement for power (actually, 0 to 65535).</para></listitem>
924 </itemizedlist> 922 </itemizedlist>
925 </section> 923 </section>
926 <section id="DTV-STAT-CNR"> 924 <section id="DTV-STAT-CNR">
@@ -928,9 +926,9 @@ enum fe_interleaving {
928 <para>Indicates the Signal to Noise ratio for the main carrier.</para> 926 <para>Indicates the Signal to Noise ratio for the main carrier.</para>
929 <para>Possible scales for this metric are:</para> 927 <para>Possible scales for this metric are:</para>
930 <itemizedlist mark='bullet'> 928 <itemizedlist mark='bullet'>
931 <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> 929 <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
932 <listitem><constant>FE_SCALE_DECIBEL</constant> - Signal/Noise ratio is in 0.0001 dB units.</listitem> 930 <listitem><para><constant>FE_SCALE_DECIBEL</constant> - Signal/Noise ratio is in 0.0001 dB units.</para></listitem>
933 <listitem><constant>FE_SCALE_RELATIVE</constant> - The frontend provides a 0% to 100% measurement for Signal/Noise (actually, 0 to 65535).</listitem> 931 <listitem><para><constant>FE_SCALE_RELATIVE</constant> - The frontend provides a 0% to 100% measurement for Signal/Noise (actually, 0 to 65535).</para></listitem>
934 </itemizedlist> 932 </itemizedlist>
935 </section> 933 </section>
936 <section id="DTV-STAT-PRE-ERROR-BIT-COUNT"> 934 <section id="DTV-STAT-PRE-ERROR-BIT-COUNT">
@@ -943,8 +941,8 @@ enum fe_interleaving {
943 The frontend may reset it when a channel/transponder is tuned.</para> 941 The frontend may reset it when a channel/transponder is tuned.</para>
944 <para>Possible scales for this metric are:</para> 942 <para>Possible scales for this metric are:</para>
945 <itemizedlist mark='bullet'> 943 <itemizedlist mark='bullet'>
946 <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> 944 <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
947 <listitem><constant>FE_SCALE_COUNTER</constant> - Number of error bits counted before the inner coding.</listitem> 945 <listitem><para><constant>FE_SCALE_COUNTER</constant> - Number of error bits counted before the inner coding.</para></listitem>
948 </itemizedlist> 946 </itemizedlist>
949 </section> 947 </section>
950 <section id="DTV-STAT-PRE-TOTAL-BIT-COUNT"> 948 <section id="DTV-STAT-PRE-TOTAL-BIT-COUNT">
@@ -952,14 +950,14 @@ enum fe_interleaving {
952 <para>Measures the amount of bits received before the inner code block, during the same period as 950 <para>Measures the amount of bits received before the inner code block, during the same period as
953 <link linkend="DTV-STAT-PRE-ERROR-BIT-COUNT"><constant>DTV_STAT_PRE_ERROR_BIT_COUNT</constant></link> measurement was taken.</para> 951 <link linkend="DTV-STAT-PRE-ERROR-BIT-COUNT"><constant>DTV_STAT_PRE_ERROR_BIT_COUNT</constant></link> measurement was taken.</para>
954 <para>It should be noticed that this measurement can be smaller than the total amount of bits on the transport stream, 952 <para>It should be noticed that this measurement can be smaller than the total amount of bits on the transport stream,
955 as the frontend may need to manually restart the measurement, loosing some data between each measurement interval.</para> 953 as the frontend may need to manually restart the measurement, losing some data between each measurement interval.</para>
956 <para>This measurement is monotonically increased, as the frontend gets more bit count measurements. 954 <para>This measurement is monotonically increased, as the frontend gets more bit count measurements.
957 The frontend may reset it when a channel/transponder is tuned.</para> 955 The frontend may reset it when a channel/transponder is tuned.</para>
958 <para>Possible scales for this metric are:</para> 956 <para>Possible scales for this metric are:</para>
959 <itemizedlist mark='bullet'> 957 <itemizedlist mark='bullet'>
960 <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> 958 <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
961 <listitem><constant>FE_SCALE_COUNTER</constant> - Number of bits counted while measuring 959 <listitem><para><constant>FE_SCALE_COUNTER</constant> - Number of bits counted while measuring
962 <link linkend="DTV-STAT-PRE-ERROR-BIT-COUNT"><constant>DTV_STAT_PRE_ERROR_BIT_COUNT</constant></link>.</listitem> 960 <link linkend="DTV-STAT-PRE-ERROR-BIT-COUNT"><constant>DTV_STAT_PRE_ERROR_BIT_COUNT</constant></link>.</para></listitem>
963 </itemizedlist> 961 </itemizedlist>
964 </section> 962 </section>
965 <section id="DTV-STAT-POST-ERROR-BIT-COUNT"> 963 <section id="DTV-STAT-POST-ERROR-BIT-COUNT">
@@ -972,8 +970,8 @@ enum fe_interleaving {
972 The frontend may reset it when a channel/transponder is tuned.</para> 970 The frontend may reset it when a channel/transponder is tuned.</para>
973 <para>Possible scales for this metric are:</para> 971 <para>Possible scales for this metric are:</para>
974 <itemizedlist mark='bullet'> 972 <itemizedlist mark='bullet'>
975 <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> 973 <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
976 <listitem><constant>FE_SCALE_COUNTER</constant> - Number of error bits counted after the inner coding.</listitem> 974 <listitem><para><constant>FE_SCALE_COUNTER</constant> - Number of error bits counted after the inner coding.</para></listitem>
977 </itemizedlist> 975 </itemizedlist>
978 </section> 976 </section>
979 <section id="DTV-STAT-POST-TOTAL-BIT-COUNT"> 977 <section id="DTV-STAT-POST-TOTAL-BIT-COUNT">
@@ -981,14 +979,14 @@ enum fe_interleaving {
981 <para>Measures the amount of bits received after the inner coding, during the same period as 979 <para>Measures the amount of bits received after the inner coding, during the same period as
982 <link linkend="DTV-STAT-POST-ERROR-BIT-COUNT"><constant>DTV_STAT_POST_ERROR_BIT_COUNT</constant></link> measurement was taken.</para> 980 <link linkend="DTV-STAT-POST-ERROR-BIT-COUNT"><constant>DTV_STAT_POST_ERROR_BIT_COUNT</constant></link> measurement was taken.</para>
983 <para>It should be noticed that this measurement can be smaller than the total amount of bits on the transport stream, 981 <para>It should be noticed that this measurement can be smaller than the total amount of bits on the transport stream,
984 as the frontend may need to manually restart the measurement, loosing some data between each measurement interval.</para> 982 as the frontend may need to manually restart the measurement, losing some data between each measurement interval.</para>
985 <para>This measurement is monotonically increased, as the frontend gets more bit count measurements. 983 <para>This measurement is monotonically increased, as the frontend gets more bit count measurements.
986 The frontend may reset it when a channel/transponder is tuned.</para> 984 The frontend may reset it when a channel/transponder is tuned.</para>
987 <para>Possible scales for this metric are:</para> 985 <para>Possible scales for this metric are:</para>
988 <itemizedlist mark='bullet'> 986 <itemizedlist mark='bullet'>
989 <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> 987 <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
990 <listitem><constant>FE_SCALE_COUNTER</constant> - Number of bits counted while measuring 988 <listitem><para><constant>FE_SCALE_COUNTER</constant> - Number of bits counted while measuring
991 <link linkend="DTV-STAT-POST-ERROR-BIT-COUNT"><constant>DTV_STAT_POST_ERROR_BIT_COUNT</constant></link>.</listitem> 989 <link linkend="DTV-STAT-POST-ERROR-BIT-COUNT"><constant>DTV_STAT_POST_ERROR_BIT_COUNT</constant></link>.</para></listitem>
992 </itemizedlist> 990 </itemizedlist>
993 </section> 991 </section>
994 <section id="DTV-STAT-ERROR-BLOCK-COUNT"> 992 <section id="DTV-STAT-ERROR-BLOCK-COUNT">
@@ -998,8 +996,8 @@ enum fe_interleaving {
998 The frontend may reset it when a channel/transponder is tuned.</para> 996 The frontend may reset it when a channel/transponder is tuned.</para>
999 <para>Possible scales for this metric are:</para> 997 <para>Possible scales for this metric are:</para>
1000 <itemizedlist mark='bullet'> 998 <itemizedlist mark='bullet'>
1001 <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> 999 <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
1002 <listitem><constant>FE_SCALE_COUNTER</constant> - Number of error blocks counted after the outer coding.</listitem> 1000 <listitem><para><constant>FE_SCALE_COUNTER</constant> - Number of error blocks counted after the outer coding.</para></listitem>
1003 </itemizedlist> 1001 </itemizedlist>
1004 </section> 1002 </section>
1005 <section id="DTV-STAT-TOTAL-BLOCK-COUNT"> 1003 <section id="DTV-STAT-TOTAL-BLOCK-COUNT">
@@ -1011,9 +1009,9 @@ enum fe_interleaving {
1011 by <link linkend="DTV-STAT-TOTAL-BLOCK-COUNT"><constant>DTV-STAT-TOTAL-BLOCK-COUNT</constant></link>.</para> 1009 by <link linkend="DTV-STAT-TOTAL-BLOCK-COUNT"><constant>DTV-STAT-TOTAL-BLOCK-COUNT</constant></link>.</para>
1012 <para>Possible scales for this metric are:</para> 1010 <para>Possible scales for this metric are:</para>
1013 <itemizedlist mark='bullet'> 1011 <itemizedlist mark='bullet'>
1014 <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> 1012 <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
1015 <listitem><constant>FE_SCALE_COUNTER</constant> - Number of blocks counted while measuring 1013 <listitem><para><constant>FE_SCALE_COUNTER</constant> - Number of blocks counted while measuring
1016 <link linkend="DTV-STAT-ERROR-BLOCK-COUNT"><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></link>.</listitem> 1014 <link linkend="DTV-STAT-ERROR-BLOCK-COUNT"><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></link>.</para></listitem>
1017 </itemizedlist> 1015 </itemizedlist>
1018 </section> 1016 </section>
1019 </section> 1017 </section>
diff --git a/Documentation/DocBook/media/v4l/common.xml b/Documentation/DocBook/media/v4l/common.xml
index ae06afbbb3a9..1ddf354aa997 100644
--- a/Documentation/DocBook/media/v4l/common.xml
+++ b/Documentation/DocBook/media/v4l/common.xml
@@ -750,15 +750,6 @@ header can be used to get the timings of the formats in the <xref linkend="cea86
750<xref linkend="vesadmt" /> standards. 750<xref linkend="vesadmt" /> standards.
751 </para> 751 </para>
752 </listitem> 752 </listitem>
753 <listitem>
754 <para>DV Presets: Digital Video (DV) presets (<emphasis role="bold">deprecated</emphasis>).
755 These are IDs representing a
756video timing at the input/output. Presets are pre-defined timings implemented
757by the hardware according to video standards. A __u32 data type is used to represent
758a preset unlike the bit mask that is used in &v4l2-std-id; allowing future extensions
759to support as many different presets as needed. This API is deprecated in favor of the DV Timings
760API.</para>
761 </listitem>
762 </itemizedlist> 753 </itemizedlist>
763 <para>To enumerate and query the attributes of the DV timings supported by a device, 754 <para>To enumerate and query the attributes of the DV timings supported by a device,
764 applications use the &VIDIOC-ENUM-DV-TIMINGS; and &VIDIOC-DV-TIMINGS-CAP; ioctls. 755 applications use the &VIDIOC-ENUM-DV-TIMINGS; and &VIDIOC-DV-TIMINGS-CAP; ioctls.
@@ -766,11 +757,6 @@ API.</para>
766&VIDIOC-S-DV-TIMINGS; ioctl and to get current DV timings they use the 757&VIDIOC-S-DV-TIMINGS; ioctl and to get current DV timings they use the
767&VIDIOC-G-DV-TIMINGS; ioctl. To detect the DV timings as seen by the video receiver applications 758&VIDIOC-G-DV-TIMINGS; ioctl. To detect the DV timings as seen by the video receiver applications
768use the &VIDIOC-QUERY-DV-TIMINGS; ioctl.</para> 759use the &VIDIOC-QUERY-DV-TIMINGS; ioctl.</para>
769 <para>To enumerate and query the attributes of DV presets supported by a device,
770applications use the &VIDIOC-ENUM-DV-PRESETS; ioctl. To get the current DV preset,
771applications use the &VIDIOC-G-DV-PRESET; ioctl and to set a preset they use the
772&VIDIOC-S-DV-PRESET; ioctl. To detect the preset as seen by the video receiver applications
773use the &VIDIOC-QUERY-DV-PRESET; ioctl.</para>
774 <para>Applications can make use of the <xref linkend="input-capabilities" /> and 760 <para>Applications can make use of the <xref linkend="input-capabilities" /> and
775<xref linkend="output-capabilities"/> flags to decide what ioctls are available to set the 761<xref linkend="output-capabilities"/> flags to decide what ioctls are available to set the
776video timings for the device.</para> 762video timings for the device.</para>
diff --git a/Documentation/DocBook/media/v4l/compat.xml b/Documentation/DocBook/media/v4l/compat.xml
index 104a1a2b8849..f43542ae2981 100644
--- a/Documentation/DocBook/media/v4l/compat.xml
+++ b/Documentation/DocBook/media/v4l/compat.xml
@@ -2310,6 +2310,9 @@ more information.</para>
2310 <listitem> 2310 <listitem>
2311 <para>Added FM Modulator (FM TX) Extended Control Class: <constant>V4L2_CTRL_CLASS_FM_TX</constant> and their Control IDs.</para> 2311 <para>Added FM Modulator (FM TX) Extended Control Class: <constant>V4L2_CTRL_CLASS_FM_TX</constant> and their Control IDs.</para>
2312 </listitem> 2312 </listitem>
2313<listitem>
2314 <para>Added FM Receiver (FM RX) Extended Control Class: <constant>V4L2_CTRL_CLASS_FM_RX</constant> and their Control IDs.</para>
2315 </listitem>
2313 <listitem> 2316 <listitem>
2314 <para>Added Remote Controller chapter, describing the default Remote Controller mapping for media devices.</para> 2317 <para>Added Remote Controller chapter, describing the default Remote Controller mapping for media devices.</para>
2315 </listitem> 2318 </listitem>
@@ -2493,6 +2496,23 @@ that used it. It was originally scheduled for removal in 2.6.35.
2493 </orderedlist> 2496 </orderedlist>
2494 </section> 2497 </section>
2495 2498
2499 <section>
2500 <title>V4L2 in Linux 3.10</title>
2501 <orderedlist>
2502 <listitem>
2503 <para>Removed obsolete and unused DV_PRESET ioctls
2504 VIDIOC_G_DV_PRESET, VIDIOC_S_DV_PRESET, VIDIOC_QUERY_DV_PRESET and
2505 VIDIOC_ENUM_DV_PRESET. Remove the related v4l2_input/output capability
2506 flags V4L2_IN_CAP_PRESETS and V4L2_OUT_CAP_PRESETS.
2507 </para>
2508 </listitem>
2509 <listitem>
2510 <para>Added new debugging ioctl &VIDIOC-DBG-G-CHIP-INFO;.
2511 </para>
2512 </listitem>
2513 </orderedlist>
2514 </section>
2515
2496 <section id="other"> 2516 <section id="other">
2497 <title>Relation of V4L2 to other Linux multimedia APIs</title> 2517 <title>Relation of V4L2 to other Linux multimedia APIs</title>
2498 2518
@@ -2625,8 +2645,8 @@ interfaces and should not be implemented in new drivers.</para>
2625<xref linkend="extended-controls" />.</para> 2645<xref linkend="extended-controls" />.</para>
2626 </listitem> 2646 </listitem>
2627 <listitem> 2647 <listitem>
2628 <para>&VIDIOC-G-DV-PRESET;, &VIDIOC-S-DV-PRESET;, &VIDIOC-ENUM-DV-PRESETS; and 2648 <para>VIDIOC_G_DV_PRESET, VIDIOC_S_DV_PRESET, VIDIOC_ENUM_DV_PRESETS and
2629 &VIDIOC-QUERY-DV-PRESET; ioctls. Use the DV Timings API (<xref linkend="dv-timings" />).</para> 2649 VIDIOC_QUERY_DV_PRESET ioctls. Use the DV Timings API (<xref linkend="dv-timings" />).</para>
2630 </listitem> 2650 </listitem>
2631 <listitem> 2651 <listitem>
2632 <para><constant>VIDIOC_SUBDEV_G_CROP</constant> and 2652 <para><constant>VIDIOC_SUBDEV_G_CROP</constant> and
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
index 9e8f85498678..8d7a77928d49 100644
--- a/Documentation/DocBook/media/v4l/controls.xml
+++ b/Documentation/DocBook/media/v4l/controls.xml
@@ -2300,6 +2300,12 @@ Possible values are:</entry>
2300 </row> 2300 </row>
2301 <row><entry></entry></row> 2301 <row><entry></entry></row>
2302 <row> 2302 <row>
2303 <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER</constant>&nbsp;</entry>
2304 <entry>boolean</entry>
2305 </row><row><entry spanname="descr">Repeat the video sequence headers. Repeating these
2306headers makes random access to the video stream easier. Applicable to the MPEG1, 2 and 4 encoder.</entry>
2307 </row>
2308 <row>
2303 <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER</constant>&nbsp;</entry> 2309 <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER</constant>&nbsp;</entry>
2304 <entry>boolean</entry> 2310 <entry>boolean</entry>
2305 </row><row><entry spanname="descr">Enabled the deblocking post processing filter for MPEG4 decoder. 2311 </row><row><entry spanname="descr">Enabled the deblocking post processing filter for MPEG4 decoder.
@@ -3136,6 +3142,13 @@ giving priority to the center of the metered area.</entry>
3136 <entry><constant>V4L2_EXPOSURE_METERING_SPOT</constant>&nbsp;</entry> 3142 <entry><constant>V4L2_EXPOSURE_METERING_SPOT</constant>&nbsp;</entry>
3137 <entry>Measure only very small area at the center of the frame.</entry> 3143 <entry>Measure only very small area at the center of the frame.</entry>
3138 </row> 3144 </row>
3145 <row>
3146 <entry><constant>V4L2_EXPOSURE_METERING_MATRIX</constant>&nbsp;</entry>
3147 <entry>A multi-zone metering. The light intensity is measured
3148in several points of the frame and the the results are combined. The
3149algorithm of the zones selection and their significance in calculating the
3150final value is device dependant.</entry>
3151 </row>
3139 </tbody> 3152 </tbody>
3140 </entrytbl> 3153 </entrytbl>
3141 </row> 3154 </row>
@@ -3848,7 +3861,7 @@ in Hz. The range and step are driver-specific.</entry>
3848 </row> 3861 </row>
3849 <row> 3862 <row>
3850 <entry spanname="id"><constant>V4L2_CID_TUNE_PREEMPHASIS</constant>&nbsp;</entry> 3863 <entry spanname="id"><constant>V4L2_CID_TUNE_PREEMPHASIS</constant>&nbsp;</entry>
3851 <entry>integer</entry> 3864 <entry>enum v4l2_preemphasis</entry>
3852 </row> 3865 </row>
3853 <row id="v4l2-preemphasis"><entry spanname="descr">Configures the pre-emphasis value for broadcasting. 3866 <row id="v4l2-preemphasis"><entry spanname="descr">Configures the pre-emphasis value for broadcasting.
3854A pre-emphasis filter is applied to the broadcast to accentuate the high audio frequencies. 3867A pre-emphasis filter is applied to the broadcast to accentuate the high audio frequencies.
@@ -4687,4 +4700,76 @@ interface and may change in the future.</para>
4687 </table> 4700 </table>
4688 4701
4689 </section> 4702 </section>
4703
4704 <section id="fm-rx-controls">
4705 <title>FM Receiver Control Reference</title>
4706
4707 <para>The FM Receiver (FM_RX) class includes controls for common features of
4708 FM Reception capable devices.</para>
4709
4710 <table pgwide="1" frame="none" id="fm-rx-control-id">
4711 <title>FM_RX Control IDs</title>
4712
4713 <tgroup cols="4">
4714 <colspec colname="c1" colwidth="1*" />
4715 <colspec colname="c2" colwidth="6*" />
4716 <colspec colname="c3" colwidth="2*" />
4717 <colspec colname="c4" colwidth="6*" />
4718 <spanspec namest="c1" nameend="c2" spanname="id" />
4719 <spanspec namest="c2" nameend="c4" spanname="descr" />
4720 <thead>
4721 <row>
4722 <entry spanname="id" align="left">ID</entry>
4723 <entry align="left">Type</entry>
4724 </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry>
4725 </row>
4726 </thead>
4727 <tbody valign="top">
4728 <row><entry></entry></row>
4729 <row>
4730 <entry spanname="id"><constant>V4L2_CID_FM_RX_CLASS</constant>&nbsp;</entry>
4731 <entry>class</entry>
4732 </row><row><entry spanname="descr">The FM_RX class
4733descriptor. Calling &VIDIOC-QUERYCTRL; for this control will return a
4734description of this control class.</entry>
4735 </row>
4736 <row>
4737 <entry spanname="id"><constant>V4L2_CID_RDS_RECEPTION</constant>&nbsp;</entry>
4738 <entry>boolean</entry>
4739 </row><row><entry spanname="descr">Enables/disables RDS
4740 reception by the radio tuner</entry>
4741 </row>
4742 <row>
4743 <entry spanname="id"><constant>V4L2_CID_TUNE_DEEMPHASIS</constant>&nbsp;</entry>
4744 <entry>enum v4l2_deemphasis</entry>
4745 </row>
4746 <row id="v4l2-deemphasis"><entry spanname="descr">Configures the de-emphasis value for reception.
4747A de-emphasis filter is applied to the broadcast to accentuate the high audio frequencies.
4748Depending on the region, a time constant of either 50 or 75 useconds is used. The enum&nbsp;v4l2_deemphasis
4749defines possible values for de-emphasis. Here they are:</entry>
4750 </row><row>
4751 <entrytbl spanname="descr" cols="2">
4752 <tbody valign="top">
4753 <row>
4754 <entry><constant>V4L2_DEEMPHASIS_DISABLED</constant>&nbsp;</entry>
4755 <entry>No de-emphasis is applied.</entry>
4756 </row>
4757 <row>
4758 <entry><constant>V4L2_DEEMPHASIS_50_uS</constant>&nbsp;</entry>
4759 <entry>A de-emphasis of 50 uS is used.</entry>
4760 </row>
4761 <row>
4762 <entry><constant>V4L2_DEEMPHASIS_75_uS</constant>&nbsp;</entry>
4763 <entry>A de-emphasis of 75 uS is used.</entry>
4764 </row>
4765 </tbody>
4766 </entrytbl>
4767
4768 </row>
4769 <row><entry></entry></row>
4770 </tbody>
4771 </tgroup>
4772 </table>
4773
4774 </section>
4690</section> 4775</section>
diff --git a/Documentation/DocBook/media/v4l/io.xml b/Documentation/DocBook/media/v4l/io.xml
index e6c58559ca6b..2c4c068dde83 100644
--- a/Documentation/DocBook/media/v4l/io.xml
+++ b/Documentation/DocBook/media/v4l/io.xml
@@ -1145,6 +1145,12 @@ in which case caches have not been used.</entry>
1145 same clock outside V4L2, use 1145 same clock outside V4L2, use
1146 <function>clock_gettime(2)</function> .</entry> 1146 <function>clock_gettime(2)</function> .</entry>
1147 </row> 1147 </row>
1148 <row>
1149 <entry><constant>V4L2_BUF_FLAG_TIMESTAMP_COPY</constant></entry>
1150 <entry>0x4000</entry>
1151 <entry>The CAPTURE buffer timestamp has been taken from the
1152 corresponding OUTPUT buffer. This flag applies only to mem2mem devices.</entry>
1153 </row>
1148 </tbody> 1154 </tbody>
1149 </tgroup> 1155 </tgroup>
1150 </table> 1156 </table>
diff --git a/Documentation/DocBook/media/v4l/media-ioc-enum-entities.xml b/Documentation/DocBook/media/v4l/media-ioc-enum-entities.xml
index 576b68b33f2c..116c301656e0 100644
--- a/Documentation/DocBook/media/v4l/media-ioc-enum-entities.xml
+++ b/Documentation/DocBook/media/v4l/media-ioc-enum-entities.xml
@@ -272,6 +272,16 @@
272 <entry><constant>MEDIA_ENT_T_V4L2_SUBDEV_LENS</constant></entry> 272 <entry><constant>MEDIA_ENT_T_V4L2_SUBDEV_LENS</constant></entry>
273 <entry>Lens controller</entry> 273 <entry>Lens controller</entry>
274 </row> 274 </row>
275 <row>
276 <entry><constant>MEDIA_ENT_T_V4L2_SUBDEV_DECODER</constant></entry>
277 <entry>Video decoder, the basic function of the video decoder is to
278 accept analogue video from a wide variety of sources such as
279 broadcast, DVD players, cameras and video cassette recorders, in
280 either NTSC, PAL or HD format and still occasionally SECAM, separate
281 it into its component parts, luminance and chrominance, and output
282 it in some digital video standard, with appropriate embedded timing
283 signals.</entry>
284 </row>
275 </tbody> 285 </tbody>
276 </tgroup> 286 </tgroup>
277 </table> 287 </table>
diff --git a/Documentation/DocBook/media/v4l/subdev-formats.xml b/Documentation/DocBook/media/v4l/subdev-formats.xml
index cc51372ed5e0..adc61982df7b 100644
--- a/Documentation/DocBook/media/v4l/subdev-formats.xml
+++ b/Documentation/DocBook/media/v4l/subdev-formats.xml
@@ -93,19 +93,35 @@
93 93
94 <table pgwide="0" frame="none" id="v4l2-mbus-pixelcode-rgb"> 94 <table pgwide="0" frame="none" id="v4l2-mbus-pixelcode-rgb">
95 <title>RGB formats</title> 95 <title>RGB formats</title>
96 <tgroup cols="11"> 96 <tgroup cols="27">
97 <colspec colname="id" align="left" /> 97 <colspec colname="id" align="left" />
98 <colspec colname="code" align="center"/> 98 <colspec colname="code" align="center"/>
99 <colspec colname="bit" /> 99 <colspec colname="bit" />
100 <colspec colnum="4" colname="b07" align="center" /> 100 <colspec colnum="4" colname="b23" align="center" />
101 <colspec colnum="5" colname="b06" align="center" /> 101 <colspec colnum="5" colname="b22" align="center" />
102 <colspec colnum="6" colname="b05" align="center" /> 102 <colspec colnum="6" colname="b21" align="center" />
103 <colspec colnum="7" colname="b04" align="center" /> 103 <colspec colnum="7" colname="b20" align="center" />
104 <colspec colnum="8" colname="b03" align="center" /> 104 <colspec colnum="8" colname="b19" align="center" />
105 <colspec colnum="9" colname="b02" align="center" /> 105 <colspec colnum="9" colname="b18" align="center" />
106 <colspec colnum="10" colname="b01" align="center" /> 106 <colspec colnum="10" colname="b17" align="center" />
107 <colspec colnum="11" colname="b00" align="center" /> 107 <colspec colnum="11" colname="b16" align="center" />
108 <spanspec namest="b07" nameend="b00" spanname="b0" /> 108 <colspec colnum="12" colname="b15" align="center" />
109 <colspec colnum="13" colname="b14" align="center" />
110 <colspec colnum="14" colname="b13" align="center" />
111 <colspec colnum="15" colname="b12" align="center" />
112 <colspec colnum="16" colname="b11" align="center" />
113 <colspec colnum="17" colname="b10" align="center" />
114 <colspec colnum="18" colname="b09" align="center" />
115 <colspec colnum="19" colname="b08" align="center" />
116 <colspec colnum="20" colname="b07" align="center" />
117 <colspec colnum="21" colname="b06" align="center" />
118 <colspec colnum="22" colname="b05" align="center" />
119 <colspec colnum="23" colname="b04" align="center" />
120 <colspec colnum="24" colname="b03" align="center" />
121 <colspec colnum="25" colname="b02" align="center" />
122 <colspec colnum="26" colname="b01" align="center" />
123 <colspec colnum="27" colname="b00" align="center" />
124 <spanspec namest="b23" nameend="b00" spanname="b0" />
109 <thead> 125 <thead>
110 <row> 126 <row>
111 <entry>Identifier</entry> 127 <entry>Identifier</entry>
@@ -117,6 +133,22 @@
117 <entry></entry> 133 <entry></entry>
118 <entry></entry> 134 <entry></entry>
119 <entry>Bit</entry> 135 <entry>Bit</entry>
136 <entry>23</entry>
137 <entry>22</entry>
138 <entry>21</entry>
139 <entry>20</entry>
140 <entry>19</entry>
141 <entry>18</entry>
142 <entry>17</entry>
143 <entry>16</entry>
144 <entry>15</entry>
145 <entry>14</entry>
146 <entry>13</entry>
147 <entry>12</entry>
148 <entry>11</entry>
149 <entry>10</entry>
150 <entry>9</entry>
151 <entry>8</entry>
120 <entry>7</entry> 152 <entry>7</entry>
121 <entry>6</entry> 153 <entry>6</entry>
122 <entry>5</entry> 154 <entry>5</entry>
@@ -132,6 +164,7 @@
132 <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE</entry> 164 <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE</entry>
133 <entry>0x1001</entry> 165 <entry>0x1001</entry>
134 <entry></entry> 166 <entry></entry>
167 &dash-ent-16;
135 <entry>0</entry> 168 <entry>0</entry>
136 <entry>0</entry> 169 <entry>0</entry>
137 <entry>0</entry> 170 <entry>0</entry>
@@ -145,6 +178,7 @@
145 <entry></entry> 178 <entry></entry>
146 <entry></entry> 179 <entry></entry>
147 <entry></entry> 180 <entry></entry>
181 &dash-ent-16;
148 <entry>g<subscript>3</subscript></entry> 182 <entry>g<subscript>3</subscript></entry>
149 <entry>g<subscript>2</subscript></entry> 183 <entry>g<subscript>2</subscript></entry>
150 <entry>g<subscript>1</subscript></entry> 184 <entry>g<subscript>1</subscript></entry>
@@ -158,6 +192,7 @@
158 <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE</entry> 192 <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE</entry>
159 <entry>0x1002</entry> 193 <entry>0x1002</entry>
160 <entry></entry> 194 <entry></entry>
195 &dash-ent-16;
161 <entry>g<subscript>3</subscript></entry> 196 <entry>g<subscript>3</subscript></entry>
162 <entry>g<subscript>2</subscript></entry> 197 <entry>g<subscript>2</subscript></entry>
163 <entry>g<subscript>1</subscript></entry> 198 <entry>g<subscript>1</subscript></entry>
@@ -171,6 +206,7 @@
171 <entry></entry> 206 <entry></entry>
172 <entry></entry> 207 <entry></entry>
173 <entry></entry> 208 <entry></entry>
209 &dash-ent-16;
174 <entry>0</entry> 210 <entry>0</entry>
175 <entry>0</entry> 211 <entry>0</entry>
176 <entry>0</entry> 212 <entry>0</entry>
@@ -184,6 +220,7 @@
184 <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE</entry> 220 <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE</entry>
185 <entry>0x1003</entry> 221 <entry>0x1003</entry>
186 <entry></entry> 222 <entry></entry>
223 &dash-ent-16;
187 <entry>0</entry> 224 <entry>0</entry>
188 <entry>r<subscript>4</subscript></entry> 225 <entry>r<subscript>4</subscript></entry>
189 <entry>r<subscript>3</subscript></entry> 226 <entry>r<subscript>3</subscript></entry>
@@ -197,6 +234,7 @@
197 <entry></entry> 234 <entry></entry>
198 <entry></entry> 235 <entry></entry>
199 <entry></entry> 236 <entry></entry>
237 &dash-ent-16;
200 <entry>g<subscript>2</subscript></entry> 238 <entry>g<subscript>2</subscript></entry>
201 <entry>g<subscript>1</subscript></entry> 239 <entry>g<subscript>1</subscript></entry>
202 <entry>g<subscript>0</subscript></entry> 240 <entry>g<subscript>0</subscript></entry>
@@ -210,6 +248,7 @@
210 <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE</entry> 248 <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE</entry>
211 <entry>0x1004</entry> 249 <entry>0x1004</entry>
212 <entry></entry> 250 <entry></entry>
251 &dash-ent-16;
213 <entry>g<subscript>2</subscript></entry> 252 <entry>g<subscript>2</subscript></entry>
214 <entry>g<subscript>1</subscript></entry> 253 <entry>g<subscript>1</subscript></entry>
215 <entry>g<subscript>0</subscript></entry> 254 <entry>g<subscript>0</subscript></entry>
@@ -223,6 +262,7 @@
223 <entry></entry> 262 <entry></entry>
224 <entry></entry> 263 <entry></entry>
225 <entry></entry> 264 <entry></entry>
265 &dash-ent-16;
226 <entry>0</entry> 266 <entry>0</entry>
227 <entry>r<subscript>4</subscript></entry> 267 <entry>r<subscript>4</subscript></entry>
228 <entry>r<subscript>3</subscript></entry> 268 <entry>r<subscript>3</subscript></entry>
@@ -236,6 +276,7 @@
236 <entry>V4L2_MBUS_FMT_BGR565_2X8_BE</entry> 276 <entry>V4L2_MBUS_FMT_BGR565_2X8_BE</entry>
237 <entry>0x1005</entry> 277 <entry>0x1005</entry>
238 <entry></entry> 278 <entry></entry>
279 &dash-ent-16;
239 <entry>b<subscript>4</subscript></entry> 280 <entry>b<subscript>4</subscript></entry>
240 <entry>b<subscript>3</subscript></entry> 281 <entry>b<subscript>3</subscript></entry>
241 <entry>b<subscript>2</subscript></entry> 282 <entry>b<subscript>2</subscript></entry>
@@ -249,6 +290,7 @@
249 <entry></entry> 290 <entry></entry>
250 <entry></entry> 291 <entry></entry>
251 <entry></entry> 292 <entry></entry>
293 &dash-ent-16;
252 <entry>g<subscript>2</subscript></entry> 294 <entry>g<subscript>2</subscript></entry>
253 <entry>g<subscript>1</subscript></entry> 295 <entry>g<subscript>1</subscript></entry>
254 <entry>g<subscript>0</subscript></entry> 296 <entry>g<subscript>0</subscript></entry>
@@ -262,6 +304,7 @@
262 <entry>V4L2_MBUS_FMT_BGR565_2X8_LE</entry> 304 <entry>V4L2_MBUS_FMT_BGR565_2X8_LE</entry>
263 <entry>0x1006</entry> 305 <entry>0x1006</entry>
264 <entry></entry> 306 <entry></entry>
307 &dash-ent-16;
265 <entry>g<subscript>2</subscript></entry> 308 <entry>g<subscript>2</subscript></entry>
266 <entry>g<subscript>1</subscript></entry> 309 <entry>g<subscript>1</subscript></entry>
267 <entry>g<subscript>0</subscript></entry> 310 <entry>g<subscript>0</subscript></entry>
@@ -275,6 +318,7 @@
275 <entry></entry> 318 <entry></entry>
276 <entry></entry> 319 <entry></entry>
277 <entry></entry> 320 <entry></entry>
321 &dash-ent-16;
278 <entry>b<subscript>4</subscript></entry> 322 <entry>b<subscript>4</subscript></entry>
279 <entry>b<subscript>3</subscript></entry> 323 <entry>b<subscript>3</subscript></entry>
280 <entry>b<subscript>2</subscript></entry> 324 <entry>b<subscript>2</subscript></entry>
@@ -288,6 +332,7 @@
288 <entry>V4L2_MBUS_FMT_RGB565_2X8_BE</entry> 332 <entry>V4L2_MBUS_FMT_RGB565_2X8_BE</entry>
289 <entry>0x1007</entry> 333 <entry>0x1007</entry>
290 <entry></entry> 334 <entry></entry>
335 &dash-ent-16;
291 <entry>r<subscript>4</subscript></entry> 336 <entry>r<subscript>4</subscript></entry>
292 <entry>r<subscript>3</subscript></entry> 337 <entry>r<subscript>3</subscript></entry>
293 <entry>r<subscript>2</subscript></entry> 338 <entry>r<subscript>2</subscript></entry>
@@ -301,6 +346,7 @@
301 <entry></entry> 346 <entry></entry>
302 <entry></entry> 347 <entry></entry>
303 <entry></entry> 348 <entry></entry>
349 &dash-ent-16;
304 <entry>g<subscript>2</subscript></entry> 350 <entry>g<subscript>2</subscript></entry>
305 <entry>g<subscript>1</subscript></entry> 351 <entry>g<subscript>1</subscript></entry>
306 <entry>g<subscript>0</subscript></entry> 352 <entry>g<subscript>0</subscript></entry>
@@ -314,6 +360,7 @@
314 <entry>V4L2_MBUS_FMT_RGB565_2X8_LE</entry> 360 <entry>V4L2_MBUS_FMT_RGB565_2X8_LE</entry>
315 <entry>0x1008</entry> 361 <entry>0x1008</entry>
316 <entry></entry> 362 <entry></entry>
363 &dash-ent-16;
317 <entry>g<subscript>2</subscript></entry> 364 <entry>g<subscript>2</subscript></entry>
318 <entry>g<subscript>1</subscript></entry> 365 <entry>g<subscript>1</subscript></entry>
319 <entry>g<subscript>0</subscript></entry> 366 <entry>g<subscript>0</subscript></entry>
@@ -327,6 +374,27 @@
327 <entry></entry> 374 <entry></entry>
328 <entry></entry> 375 <entry></entry>
329 <entry></entry> 376 <entry></entry>
377 &dash-ent-16;
378 <entry>r<subscript>4</subscript></entry>
379 <entry>r<subscript>3</subscript></entry>
380 <entry>r<subscript>2</subscript></entry>
381 <entry>r<subscript>1</subscript></entry>
382 <entry>r<subscript>0</subscript></entry>
383 <entry>g<subscript>5</subscript></entry>
384 <entry>g<subscript>4</subscript></entry>
385 <entry>g<subscript>3</subscript></entry>
386 </row>
387 <row id="V4L2-MBUS-FMT-RGB666-1X18">
388 <entry>V4L2_MBUS_FMT_RGB666_1X18</entry>
389 <entry>0x1009</entry>
390 <entry></entry>
391 <entry>-</entry>
392 <entry>-</entry>
393 <entry>-</entry>
394 <entry>-</entry>
395 <entry>-</entry>
396 <entry>-</entry>
397 <entry>r<subscript>5</subscript></entry>
330 <entry>r<subscript>4</subscript></entry> 398 <entry>r<subscript>4</subscript></entry>
331 <entry>r<subscript>3</subscript></entry> 399 <entry>r<subscript>3</subscript></entry>
332 <entry>r<subscript>2</subscript></entry> 400 <entry>r<subscript>2</subscript></entry>
@@ -335,6 +403,124 @@
335 <entry>g<subscript>5</subscript></entry> 403 <entry>g<subscript>5</subscript></entry>
336 <entry>g<subscript>4</subscript></entry> 404 <entry>g<subscript>4</subscript></entry>
337 <entry>g<subscript>3</subscript></entry> 405 <entry>g<subscript>3</subscript></entry>
406 <entry>g<subscript>2</subscript></entry>
407 <entry>g<subscript>1</subscript></entry>
408 <entry>g<subscript>0</subscript></entry>
409 <entry>b<subscript>5</subscript></entry>
410 <entry>b<subscript>4</subscript></entry>
411 <entry>b<subscript>3</subscript></entry>
412 <entry>b<subscript>2</subscript></entry>
413 <entry>b<subscript>1</subscript></entry>
414 <entry>b<subscript>0</subscript></entry>
415 </row>
416 <row id="V4L2-MBUS-FMT-RGB888-1X24">
417 <entry>V4L2_MBUS_FMT_RGB888_1X24</entry>
418 <entry>0x100a</entry>
419 <entry></entry>
420 <entry>r<subscript>7</subscript></entry>
421 <entry>r<subscript>6</subscript></entry>
422 <entry>r<subscript>5</subscript></entry>
423 <entry>r<subscript>4</subscript></entry>
424 <entry>r<subscript>3</subscript></entry>
425 <entry>r<subscript>2</subscript></entry>
426 <entry>r<subscript>1</subscript></entry>
427 <entry>r<subscript>0</subscript></entry>
428 <entry>g<subscript>7</subscript></entry>
429 <entry>g<subscript>6</subscript></entry>
430 <entry>g<subscript>5</subscript></entry>
431 <entry>g<subscript>4</subscript></entry>
432 <entry>g<subscript>3</subscript></entry>
433 <entry>g<subscript>2</subscript></entry>
434 <entry>g<subscript>1</subscript></entry>
435 <entry>g<subscript>0</subscript></entry>
436 <entry>b<subscript>7</subscript></entry>
437 <entry>b<subscript>6</subscript></entry>
438 <entry>b<subscript>5</subscript></entry>
439 <entry>b<subscript>4</subscript></entry>
440 <entry>b<subscript>3</subscript></entry>
441 <entry>b<subscript>2</subscript></entry>
442 <entry>b<subscript>1</subscript></entry>
443 <entry>b<subscript>0</subscript></entry>
444 </row>
445 <row id="V4L2-MBUS-FMT-RGB888-2X12-BE">
446 <entry>V4L2_MBUS_FMT_RGB888_2X12_BE</entry>
447 <entry>0x100b</entry>
448 <entry></entry>
449 &dash-ent-10;
450 <entry>-</entry>
451 <entry>-</entry>
452 <entry>r<subscript>7</subscript></entry>
453 <entry>r<subscript>6</subscript></entry>
454 <entry>r<subscript>5</subscript></entry>
455 <entry>r<subscript>4</subscript></entry>
456 <entry>r<subscript>3</subscript></entry>
457 <entry>r<subscript>2</subscript></entry>
458 <entry>r<subscript>1</subscript></entry>
459 <entry>r<subscript>0</subscript></entry>
460 <entry>g<subscript>7</subscript></entry>
461 <entry>g<subscript>6</subscript></entry>
462 <entry>g<subscript>5</subscript></entry>
463 <entry>g<subscript>4</subscript></entry>
464 </row>
465 <row>
466 <entry></entry>
467 <entry></entry>
468 <entry></entry>
469 &dash-ent-10;
470 <entry>-</entry>
471 <entry>-</entry>
472 <entry>g<subscript>3</subscript></entry>
473 <entry>g<subscript>2</subscript></entry>
474 <entry>g<subscript>1</subscript></entry>
475 <entry>g<subscript>0</subscript></entry>
476 <entry>b<subscript>7</subscript></entry>
477 <entry>b<subscript>6</subscript></entry>
478 <entry>b<subscript>5</subscript></entry>
479 <entry>b<subscript>4</subscript></entry>
480 <entry>b<subscript>3</subscript></entry>
481 <entry>b<subscript>2</subscript></entry>
482 <entry>b<subscript>1</subscript></entry>
483 <entry>b<subscript>0</subscript></entry>
484 </row>
485 <row id="V4L2-MBUS-FMT-RGB888-2X12-LE">
486 <entry>V4L2_MBUS_FMT_RGB888_2X12_LE</entry>
487 <entry>0x100c</entry>
488 <entry></entry>
489 &dash-ent-10;
490 <entry>-</entry>
491 <entry>-</entry>
492 <entry>g<subscript>3</subscript></entry>
493 <entry>g<subscript>2</subscript></entry>
494 <entry>g<subscript>1</subscript></entry>
495 <entry>g<subscript>0</subscript></entry>
496 <entry>b<subscript>7</subscript></entry>
497 <entry>b<subscript>6</subscript></entry>
498 <entry>b<subscript>5</subscript></entry>
499 <entry>b<subscript>4</subscript></entry>
500 <entry>b<subscript>3</subscript></entry>
501 <entry>b<subscript>2</subscript></entry>
502 <entry>b<subscript>1</subscript></entry>
503 <entry>b<subscript>0</subscript></entry>
504 </row>
505 <row>
506 <entry></entry>
507 <entry></entry>
508 <entry></entry>
509 &dash-ent-10;
510 <entry>-</entry>
511 <entry>-</entry>
512 <entry>r<subscript>7</subscript></entry>
513 <entry>r<subscript>6</subscript></entry>
514 <entry>r<subscript>5</subscript></entry>
515 <entry>r<subscript>4</subscript></entry>
516 <entry>r<subscript>3</subscript></entry>
517 <entry>r<subscript>2</subscript></entry>
518 <entry>r<subscript>1</subscript></entry>
519 <entry>r<subscript>0</subscript></entry>
520 <entry>g<subscript>7</subscript></entry>
521 <entry>g<subscript>6</subscript></entry>
522 <entry>g<subscript>5</subscript></entry>
523 <entry>g<subscript>4</subscript></entry>
338 </row> 524 </row>
339 </tbody> 525 </tbody>
340 </tgroup> 526 </tgroup>
diff --git a/Documentation/DocBook/media/v4l/v4l2.xml b/Documentation/DocBook/media/v4l/v4l2.xml
index a3cce18384e9..bfc93cdcf696 100644
--- a/Documentation/DocBook/media/v4l/v4l2.xml
+++ b/Documentation/DocBook/media/v4l/v4l2.xml
@@ -124,6 +124,7 @@ Remote Controller chapter.</contrib>
124 <year>2010</year> 124 <year>2010</year>
125 <year>2011</year> 125 <year>2011</year>
126 <year>2012</year> 126 <year>2012</year>
127 <year>2013</year>
127 <holder>Bill Dirks, Michael H. Schimek, Hans Verkuil, Martin 128 <holder>Bill Dirks, Michael H. Schimek, Hans Verkuil, Martin
128Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab, 129Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab,
129 Pawel Osciak</holder> 130 Pawel Osciak</holder>
@@ -140,12 +141,22 @@ structs, ioctls) must be noted in more detail in the history chapter
140applications. --> 141applications. -->
141 142
142 <revision> 143 <revision>
144 <revnumber>3.10</revnumber>
145 <date>2013-03-25</date>
146 <authorinitials>hv</authorinitials>
147 <revremark>Remove obsolete and unused DV_PRESET ioctls:
148 VIDIOC_G_DV_PRESET, VIDIOC_S_DV_PRESET, VIDIOC_QUERY_DV_PRESET and
149 VIDIOC_ENUM_DV_PRESET. Remove the related v4l2_input/output capability
150 flags V4L2_IN_CAP_PRESETS and V4L2_OUT_CAP_PRESETS. Added VIDIOC_DBG_G_CHIP_INFO.
151 </revremark>
152 </revision>
153
154 <revision>
143 <revnumber>3.9</revnumber> 155 <revnumber>3.9</revnumber>
144 <date>2012-12-03</date> 156 <date>2012-12-03</date>
145 <authorinitials>sa, sn</authorinitials> 157 <authorinitials>sa, sn</authorinitials>
146 <revremark>Added timestamp types to v4l2_buffer. 158 <revremark>Added timestamp types to v4l2_buffer.
147 Added <constant>V4L2_EVENT_CTRL_CH_RANGE</constant> control 159 Added V4L2_EVENT_CTRL_CH_RANGE control event changes flag.
148 event changes flag, see <xref linkend="changes-flags"/>.
149 </revremark> 160 </revremark>
150 </revision> 161 </revision>
151 162
@@ -537,6 +548,7 @@ and discussions on the V4L mailing list.</revremark>
537 &sub-create-bufs; 548 &sub-create-bufs;
538 &sub-cropcap; 549 &sub-cropcap;
539 &sub-dbg-g-chip-ident; 550 &sub-dbg-g-chip-ident;
551 &sub-dbg-g-chip-info;
540 &sub-dbg-g-register; 552 &sub-dbg-g-register;
541 &sub-decoder-cmd; 553 &sub-decoder-cmd;
542 &sub-dqevent; 554 &sub-dqevent;
@@ -544,7 +556,6 @@ and discussions on the V4L mailing list.</revremark>
544 &sub-encoder-cmd; 556 &sub-encoder-cmd;
545 &sub-enumaudio; 557 &sub-enumaudio;
546 &sub-enumaudioout; 558 &sub-enumaudioout;
547 &sub-enum-dv-presets;
548 &sub-enum-dv-timings; 559 &sub-enum-dv-timings;
549 &sub-enum-fmt; 560 &sub-enum-fmt;
550 &sub-enum-framesizes; 561 &sub-enum-framesizes;
@@ -558,7 +569,6 @@ and discussions on the V4L mailing list.</revremark>
558 &sub-g-audioout; 569 &sub-g-audioout;
559 &sub-g-crop; 570 &sub-g-crop;
560 &sub-g-ctrl; 571 &sub-g-ctrl;
561 &sub-g-dv-preset;
562 &sub-g-dv-timings; 572 &sub-g-dv-timings;
563 &sub-g-enc-index; 573 &sub-g-enc-index;
564 &sub-g-ext-ctrls; 574 &sub-g-ext-ctrls;
@@ -582,7 +592,6 @@ and discussions on the V4L mailing list.</revremark>
582 &sub-querybuf; 592 &sub-querybuf;
583 &sub-querycap; 593 &sub-querycap;
584 &sub-queryctrl; 594 &sub-queryctrl;
585 &sub-query-dv-preset;
586 &sub-query-dv-timings; 595 &sub-query-dv-timings;
587 &sub-querystd; 596 &sub-querystd;
588 &sub-reqbufs; 597 &sub-reqbufs;
diff --git a/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-ident.xml b/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-ident.xml
index 4ecd966808de..921e18550d26 100644
--- a/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-ident.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-ident.xml
@@ -200,10 +200,10 @@ the values from <xref linkend="chip-ids" />.</entry>
200 &cs-def; 200 &cs-def;
201 <tbody valign="top"> 201 <tbody valign="top">
202 <row> 202 <row>
203 <entry><constant>V4L2_CHIP_MATCH_HOST</constant></entry> 203 <entry><constant>V4L2_CHIP_MATCH_BRIDGE</constant></entry>
204 <entry>0</entry> 204 <entry>0</entry>
205 <entry>Match the nth chip on the card, zero for the 205 <entry>Match the nth chip on the card, zero for the
206 host chip. Does not match &i2c; chips.</entry> 206 bridge chip. Does not match sub-devices.</entry>
207 </row> 207 </row>
208 <row> 208 <row>
209 <entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry> 209 <entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry>
@@ -220,6 +220,11 @@ the values from <xref linkend="chip-ids" />.</entry>
220 <entry>3</entry> 220 <entry>3</entry>
221 <entry>Match the nth anciliary AC97 chip.</entry> 221 <entry>Match the nth anciliary AC97 chip.</entry>
222 </row> 222 </row>
223 <row>
224 <entry><constant>V4L2_CHIP_MATCH_SUBDEV</constant></entry>
225 <entry>4</entry>
226 <entry>Match the nth sub-device. Can't be used with this ioctl.</entry>
227 </row>
223 </tbody> 228 </tbody>
224 </tgroup> 229 </tgroup>
225 </table> 230 </table>
diff --git a/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-info.xml b/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-info.xml
new file mode 100644
index 000000000000..e1cece6c5de1
--- /dev/null
+++ b/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-info.xml
@@ -0,0 +1,223 @@
1<refentry id="vidioc-dbg-g-chip-info">
2 <refmeta>
3 <refentrytitle>ioctl VIDIOC_DBG_G_CHIP_INFO</refentrytitle>
4 &manvol;
5 </refmeta>
6
7 <refnamediv>
8 <refname>VIDIOC_DBG_G_CHIP_INFO</refname>
9 <refpurpose>Identify the chips on a TV card</refpurpose>
10 </refnamediv>
11
12 <refsynopsisdiv>
13 <funcsynopsis>
14 <funcprototype>
15 <funcdef>int <function>ioctl</function></funcdef>
16 <paramdef>int <parameter>fd</parameter></paramdef>
17 <paramdef>int <parameter>request</parameter></paramdef>
18 <paramdef>struct v4l2_dbg_chip_info
19*<parameter>argp</parameter></paramdef>
20 </funcprototype>
21 </funcsynopsis>
22 </refsynopsisdiv>
23
24 <refsect1>
25 <title>Arguments</title>
26
27 <variablelist>
28 <varlistentry>
29 <term><parameter>fd</parameter></term>
30 <listitem>
31 <para>&fd;</para>
32 </listitem>
33 </varlistentry>
34 <varlistentry>
35 <term><parameter>request</parameter></term>
36 <listitem>
37 <para>VIDIOC_DBG_G_CHIP_INFO</para>
38 </listitem>
39 </varlistentry>
40 <varlistentry>
41 <term><parameter>argp</parameter></term>
42 <listitem>
43 <para></para>
44 </listitem>
45 </varlistentry>
46 </variablelist>
47 </refsect1>
48
49 <refsect1>
50 <title>Description</title>
51
52 <note>
53 <title>Experimental</title>
54
55 <para>This is an <link
56linkend="experimental">experimental</link> interface and may change in
57the future.</para>
58 </note>
59
60 <para>For driver debugging purposes this ioctl allows test
61applications to query the driver about the chips present on the TV
62card. Regular applications must not use it. When you found a chip
63specific bug, please contact the linux-media mailing list (&v4l-ml;)
64so it can be fixed.</para>
65
66 <para>Additionally the Linux kernel must be compiled with the
67<constant>CONFIG_VIDEO_ADV_DEBUG</constant> option to enable this ioctl.</para>
68
69 <para>To query the driver applications must initialize the
70<structfield>match.type</structfield> and
71<structfield>match.addr</structfield> or <structfield>match.name</structfield>
72fields of a &v4l2-dbg-chip-info;
73and call <constant>VIDIOC_DBG_G_CHIP_INFO</constant> with a pointer to
74this structure. On success the driver stores information about the
75selected chip in the <structfield>name</structfield> and
76<structfield>flags</structfield> fields. On failure the structure
77remains unchanged.</para>
78
79 <para>When <structfield>match.type</structfield> is
80<constant>V4L2_CHIP_MATCH_BRIDGE</constant>,
81<structfield>match.addr</structfield> selects the nth bridge 'chip'
82on the TV card. You can enumerate all chips by starting at zero and
83incrementing <structfield>match.addr</structfield> by one until
84<constant>VIDIOC_DBG_G_CHIP_INFO</constant> fails with an &EINVAL;.
85The number zero always selects the bridge chip itself, &eg; the chip
86connected to the PCI or USB bus. Non-zero numbers identify specific
87parts of the bridge chip such as an AC97 register block.</para>
88
89 <para>When <structfield>match.type</structfield> is
90<constant>V4L2_CHIP_MATCH_SUBDEV</constant>,
91<structfield>match.addr</structfield> selects the nth sub-device. This
92allows you to enumerate over all sub-devices.</para>
93
94 <para>On success, the <structfield>name</structfield> field will
95contain a chip name and the <structfield>flags</structfield> field will
96contain <constant>V4L2_CHIP_FL_READABLE</constant> if the driver supports
97reading registers from the device or <constant>V4L2_CHIP_FL_WRITABLE</constant>
98if the driver supports writing registers to the device.</para>
99
100 <para>We recommended the <application>v4l2-dbg</application>
101utility over calling this ioctl directly. It is available from the
102LinuxTV v4l-dvb repository; see <ulink
103url="http://linuxtv.org/repo/">http://linuxtv.org/repo/</ulink> for
104access instructions.</para>
105
106 <!-- Note for convenience vidioc-dbg-g-register.sgml
107 contains a duplicate of this table. -->
108 <table pgwide="1" frame="none" id="name-v4l2-dbg-match">
109 <title>struct <structname>v4l2_dbg_match</structname></title>
110 <tgroup cols="4">
111 &cs-ustr;
112 <tbody valign="top">
113 <row>
114 <entry>__u32</entry>
115 <entry><structfield>type</structfield></entry>
116 <entry>See <xref linkend="name-chip-match-types" /> for a list of
117possible types.</entry>
118 </row>
119 <row>
120 <entry>union</entry>
121 <entry>(anonymous)</entry>
122 </row>
123 <row>
124 <entry></entry>
125 <entry>__u32</entry>
126 <entry><structfield>addr</structfield></entry>
127 <entry>Match a chip by this number, interpreted according
128to the <structfield>type</structfield> field.</entry>
129 </row>
130 <row>
131 <entry></entry>
132 <entry>char</entry>
133 <entry><structfield>name[32]</structfield></entry>
134 <entry>Match a chip by this name, interpreted according
135to the <structfield>type</structfield> field.</entry>
136 </row>
137 </tbody>
138 </tgroup>
139 </table>
140
141 <table pgwide="1" frame="none" id="v4l2-dbg-chip-info">
142 <title>struct <structname>v4l2_dbg_chip_info</structname></title>
143 <tgroup cols="3">
144 &cs-str;
145 <tbody valign="top">
146 <row>
147 <entry>struct v4l2_dbg_match</entry>
148 <entry><structfield>match</structfield></entry>
149 <entry>How to match the chip, see <xref linkend="name-v4l2-dbg-match" />.</entry>
150 </row>
151 <row>
152 <entry>char</entry>
153 <entry><structfield>name[32]</structfield></entry>
154 <entry>The name of the chip.</entry>
155 </row>
156 <row>
157 <entry>__u32</entry>
158 <entry><structfield>flags</structfield></entry>
159 <entry>Set by the driver. If <constant>V4L2_CHIP_FL_READABLE</constant>
160is set, then the driver supports reading registers from the device. If
161<constant>V4L2_CHIP_FL_WRITABLE</constant> is set, then it supports writing registers.</entry>
162 </row>
163 <row>
164 <entry>__u32</entry>
165 <entry><structfield>reserved[8]</structfield></entry>
166 <entry>Reserved fields, both application and driver must set these to 0.</entry>
167 </row>
168 </tbody>
169 </tgroup>
170 </table>
171
172 <!-- Note for convenience vidioc-dbg-g-register.sgml
173 contains a duplicate of this table. -->
174 <table pgwide="1" frame="none" id="name-chip-match-types">
175 <title>Chip Match Types</title>
176 <tgroup cols="3">
177 &cs-def;
178 <tbody valign="top">
179 <row>
180 <entry><constant>V4L2_CHIP_MATCH_BRIDGE</constant></entry>
181 <entry>0</entry>
182 <entry>Match the nth chip on the card, zero for the
183 bridge chip. Does not match sub-devices.</entry>
184 </row>
185 <row>
186 <entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry>
187 <entry>1</entry>
188 <entry>Match an &i2c; chip by its driver name. Can't be used with this ioctl.</entry>
189 </row>
190 <row>
191 <entry><constant>V4L2_CHIP_MATCH_I2C_ADDR</constant></entry>
192 <entry>2</entry>
193 <entry>Match a chip by its 7 bit &i2c; bus address. Can't be used with this ioctl.</entry>
194 </row>
195 <row>
196 <entry><constant>V4L2_CHIP_MATCH_AC97</constant></entry>
197 <entry>3</entry>
198 <entry>Match the nth anciliary AC97 chip. Can't be used with this ioctl.</entry>
199 </row>
200 <row>
201 <entry><constant>V4L2_CHIP_MATCH_SUBDEV</constant></entry>
202 <entry>4</entry>
203 <entry>Match the nth sub-device.</entry>
204 </row>
205 </tbody>
206 </tgroup>
207 </table>
208 </refsect1>
209
210 <refsect1>
211 &return-value;
212
213 <variablelist>
214 <varlistentry>
215 <term><errorcode>EINVAL</errorcode></term>
216 <listitem>
217 <para>The <structfield>match_type</structfield> is invalid or
218no device could be matched.</para>
219 </listitem>
220 </varlistentry>
221 </variablelist>
222 </refsect1>
223</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-dbg-g-register.xml b/Documentation/DocBook/media/v4l/vidioc-dbg-g-register.xml
index a44aebc7997a..d13bac9e2445 100644
--- a/Documentation/DocBook/media/v4l/vidioc-dbg-g-register.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-dbg-g-register.xml
@@ -87,7 +87,7 @@ written into the register.</para>
87 87
88 <para>To read a register applications must initialize the 88 <para>To read a register applications must initialize the
89<structfield>match.type</structfield>, 89<structfield>match.type</structfield>,
90<structfield>match.chip</structfield> or <structfield>match.name</structfield> and 90<structfield>match.addr</structfield> or <structfield>match.name</structfield> and
91<structfield>reg</structfield> fields, and call 91<structfield>reg</structfield> fields, and call
92<constant>VIDIOC_DBG_G_REGISTER</constant> with a pointer to this 92<constant>VIDIOC_DBG_G_REGISTER</constant> with a pointer to this
93structure. On success the driver stores the register value in the 93structure. On success the driver stores the register value in the
@@ -95,11 +95,11 @@ structure. On success the driver stores the register value in the
95unchanged.</para> 95unchanged.</para>
96 96
97 <para>When <structfield>match.type</structfield> is 97 <para>When <structfield>match.type</structfield> is
98<constant>V4L2_CHIP_MATCH_HOST</constant>, 98<constant>V4L2_CHIP_MATCH_BRIDGE</constant>,
99<structfield>match.addr</structfield> selects the nth non-&i2c; chip 99<structfield>match.addr</structfield> selects the nth non-sub-device chip
100on the TV card. The number zero always selects the host chip, &eg; the 100on the TV card. The number zero always selects the host chip, &eg; the
101chip connected to the PCI or USB bus. You can find out which chips are 101chip connected to the PCI or USB bus. You can find out which chips are
102present with the &VIDIOC-DBG-G-CHIP-IDENT; ioctl.</para> 102present with the &VIDIOC-DBG-G-CHIP-INFO; ioctl.</para>
103 103
104 <para>When <structfield>match.type</structfield> is 104 <para>When <structfield>match.type</structfield> is
105<constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant>, 105<constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant>,
@@ -109,7 +109,7 @@ For instance
109supported by the saa7127 driver, regardless of its &i2c; bus address. 109supported by the saa7127 driver, regardless of its &i2c; bus address.
110When multiple chips supported by the same driver are present, the 110When multiple chips supported by the same driver are present, the
111effect of these ioctls is undefined. Again with the 111effect of these ioctls is undefined. Again with the
112&VIDIOC-DBG-G-CHIP-IDENT; ioctl you can find out which &i2c; chips are 112&VIDIOC-DBG-G-CHIP-INFO; ioctl you can find out which &i2c; chips are
113present.</para> 113present.</para>
114 114
115 <para>When <structfield>match.type</structfield> is 115 <para>When <structfield>match.type</structfield> is
@@ -122,19 +122,23 @@ bus address.</para>
122<structfield>match.addr</structfield> selects the nth AC97 chip 122<structfield>match.addr</structfield> selects the nth AC97 chip
123on the TV card.</para> 123on the TV card.</para>
124 124
125 <para>When <structfield>match.type</structfield> is
126<constant>V4L2_CHIP_MATCH_SUBDEV</constant>,
127<structfield>match.addr</structfield> selects the nth sub-device.</para>
128
125 <note> 129 <note>
126 <title>Success not guaranteed</title> 130 <title>Success not guaranteed</title>
127 131
128 <para>Due to a flaw in the Linux &i2c; bus driver these ioctls may 132 <para>Due to a flaw in the Linux &i2c; bus driver these ioctls may
129return successfully without actually reading or writing a register. To 133return successfully without actually reading or writing a register. To
130catch the most likely failure we recommend a &VIDIOC-DBG-G-CHIP-IDENT; 134catch the most likely failure we recommend a &VIDIOC-DBG-G-CHIP-INFO;
131call confirming the presence of the selected &i2c; chip.</para> 135call confirming the presence of the selected &i2c; chip.</para>
132 </note> 136 </note>
133 137
134 <para>These ioctls are optional, not all drivers may support them. 138 <para>These ioctls are optional, not all drivers may support them.
135However when a driver supports these ioctls it must also support 139However when a driver supports these ioctls it must also support
136&VIDIOC-DBG-G-CHIP-IDENT;. Conversely it may support 140&VIDIOC-DBG-G-CHIP-INFO;. Conversely it may support
137<constant>VIDIOC_DBG_G_CHIP_IDENT</constant> but not these ioctls.</para> 141<constant>VIDIOC_DBG_G_CHIP_INFO</constant> but not these ioctls.</para>
138 142
139 <para><constant>VIDIOC_DBG_G_REGISTER</constant> and 143 <para><constant>VIDIOC_DBG_G_REGISTER</constant> and
140<constant>VIDIOC_DBG_S_REGISTER</constant> were introduced in Linux 144<constant>VIDIOC_DBG_S_REGISTER</constant> were introduced in Linux
@@ -217,10 +221,10 @@ register.</entry>
217 &cs-def; 221 &cs-def;
218 <tbody valign="top"> 222 <tbody valign="top">
219 <row> 223 <row>
220 <entry><constant>V4L2_CHIP_MATCH_HOST</constant></entry> 224 <entry><constant>V4L2_CHIP_MATCH_BRIDGE</constant></entry>
221 <entry>0</entry> 225 <entry>0</entry>
222 <entry>Match the nth chip on the card, zero for the 226 <entry>Match the nth chip on the card, zero for the
223 host chip. Does not match &i2c; chips.</entry> 227 bridge chip. Does not match sub-devices.</entry>
224 </row> 228 </row>
225 <row> 229 <row>
226 <entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry> 230 <entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry>
@@ -237,6 +241,11 @@ register.</entry>
237 <entry>3</entry> 241 <entry>3</entry>
238 <entry>Match the nth anciliary AC97 chip.</entry> 242 <entry>Match the nth anciliary AC97 chip.</entry>
239 </row> 243 </row>
244 <row>
245 <entry><constant>V4L2_CHIP_MATCH_SUBDEV</constant></entry>
246 <entry>4</entry>
247 <entry>Match the nth sub-device.</entry>
248 </row>
240 </tbody> 249 </tbody>
241 </tgroup> 250 </tgroup>
242 </table> 251 </table>
diff --git a/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml b/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml
deleted file mode 100644
index fced5fb0dbf0..000000000000
--- a/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml
+++ /dev/null
@@ -1,240 +0,0 @@
1<refentry id="vidioc-enum-dv-presets">
2 <refmeta>
3 <refentrytitle>ioctl VIDIOC_ENUM_DV_PRESETS</refentrytitle>
4 &manvol;
5 </refmeta>
6
7 <refnamediv>
8 <refname>VIDIOC_ENUM_DV_PRESETS</refname>
9 <refpurpose>Enumerate supported Digital Video presets</refpurpose>
10 </refnamediv>
11
12 <refsynopsisdiv>
13 <funcsynopsis>
14 <funcprototype>
15 <funcdef>int <function>ioctl</function></funcdef>
16 <paramdef>int <parameter>fd</parameter></paramdef>
17 <paramdef>int <parameter>request</parameter></paramdef>
18 <paramdef>struct v4l2_dv_enum_preset *<parameter>argp</parameter></paramdef>
19 </funcprototype>
20 </funcsynopsis>
21 </refsynopsisdiv>
22
23 <refsect1>
24 <title>Arguments</title>
25
26 <variablelist>
27 <varlistentry>
28 <term><parameter>fd</parameter></term>
29 <listitem>
30 <para>&fd;</para>
31 </listitem>
32 </varlistentry>
33 <varlistentry>
34 <term><parameter>request</parameter></term>
35 <listitem>
36 <para>VIDIOC_ENUM_DV_PRESETS</para>
37 </listitem>
38 </varlistentry>
39 <varlistentry>
40 <term><parameter>argp</parameter></term>
41 <listitem>
42 <para></para>
43 </listitem>
44 </varlistentry>
45 </variablelist>
46 </refsect1>
47
48 <refsect1>
49 <title>Description</title>
50
51 <para>This ioctl is <emphasis role="bold">deprecated</emphasis>.
52 New drivers and applications should use &VIDIOC-ENUM-DV-TIMINGS; instead.
53 </para>
54
55 <para>To query the attributes of a DV preset, applications initialize the
56<structfield>index</structfield> field and zero the reserved array of &v4l2-dv-enum-preset;
57and call the <constant>VIDIOC_ENUM_DV_PRESETS</constant> ioctl with a pointer to this
58structure. Drivers fill the rest of the structure or return an
59&EINVAL; when the index is out of bounds. To enumerate all DV Presets supported,
60applications shall begin at index zero, incrementing by one until the
61driver returns <errorcode>EINVAL</errorcode>. Drivers may enumerate a
62different set of DV presets after switching the video input or
63output.</para>
64
65 <table pgwide="1" frame="none" id="v4l2-dv-enum-preset">
66 <title>struct <structname>v4l2_dv_enum_presets</structname></title>
67 <tgroup cols="3">
68 &cs-str;
69 <tbody valign="top">
70 <row>
71 <entry>__u32</entry>
72 <entry><structfield>index</structfield></entry>
73 <entry>Number of the DV preset, set by the
74application.</entry>
75 </row>
76 <row>
77 <entry>__u32</entry>
78 <entry><structfield>preset</structfield></entry>
79 <entry>This field identifies one of the DV preset values listed in <xref linkend="v4l2-dv-presets-vals"/>.</entry>
80 </row>
81 <row>
82 <entry>__u8</entry>
83 <entry><structfield>name</structfield>[24]</entry>
84 <entry>Name of the preset, a NUL-terminated ASCII string, for example: "720P-60", "1080I-60". This information is
85intended for the user.</entry>
86 </row>
87 <row>
88 <entry>__u32</entry>
89 <entry><structfield>width</structfield></entry>
90 <entry>Width of the active video in pixels for the DV preset.</entry>
91 </row>
92 <row>
93 <entry>__u32</entry>
94 <entry><structfield>height</structfield></entry>
95 <entry>Height of the active video in lines for the DV preset.</entry>
96 </row>
97 <row>
98 <entry>__u32</entry>
99 <entry><structfield>reserved</structfield>[4]</entry>
100 <entry>Reserved for future extensions. Drivers must set the array to zero.</entry>
101 </row>
102 </tbody>
103 </tgroup>
104 </table>
105
106 <table pgwide="1" frame="none" id="v4l2-dv-presets-vals">
107 <title>struct <structname>DV Presets</structname></title>
108 <tgroup cols="3">
109 &cs-str;
110 <tbody valign="top">
111 <row>
112 <entry>Preset</entry>
113 <entry>Preset value</entry>
114 <entry>Description</entry>
115 </row>
116 <row>
117 <entry></entry>
118 <entry></entry>
119 <entry></entry>
120 </row>
121 <row>
122 <entry>V4L2_DV_INVALID</entry>
123 <entry>0</entry>
124 <entry>Invalid preset value.</entry>
125 </row>
126 <row>
127 <entry>V4L2_DV_480P59_94</entry>
128 <entry>1</entry>
129 <entry>720x480 progressive video at 59.94 fps as per BT.1362.</entry>
130 </row>
131 <row>
132 <entry>V4L2_DV_576P50</entry>
133 <entry>2</entry>
134 <entry>720x576 progressive video at 50 fps as per BT.1362.</entry>
135 </row>
136 <row>
137 <entry>V4L2_DV_720P24</entry>
138 <entry>3</entry>
139 <entry>1280x720 progressive video at 24 fps as per SMPTE 296M.</entry>
140 </row>
141 <row>
142 <entry>V4L2_DV_720P25</entry>
143 <entry>4</entry>
144 <entry>1280x720 progressive video at 25 fps as per SMPTE 296M.</entry>
145 </row>
146 <row>
147 <entry>V4L2_DV_720P30</entry>
148 <entry>5</entry>
149 <entry>1280x720 progressive video at 30 fps as per SMPTE 296M.</entry>
150 </row>
151 <row>
152 <entry>V4L2_DV_720P50</entry>
153 <entry>6</entry>
154 <entry>1280x720 progressive video at 50 fps as per SMPTE 296M.</entry>
155 </row>
156 <row>
157 <entry>V4L2_DV_720P59_94</entry>
158 <entry>7</entry>
159 <entry>1280x720 progressive video at 59.94 fps as per SMPTE 274M.</entry>
160 </row>
161 <row>
162 <entry>V4L2_DV_720P60</entry>
163 <entry>8</entry>
164 <entry>1280x720 progressive video at 60 fps as per SMPTE 274M/296M.</entry>
165 </row>
166 <row>
167 <entry>V4L2_DV_1080I29_97</entry>
168 <entry>9</entry>
169 <entry>1920x1080 interlaced video at 29.97 fps as per BT.1120/SMPTE 274M.</entry>
170 </row>
171 <row>
172 <entry>V4L2_DV_1080I30</entry>
173 <entry>10</entry>
174 <entry>1920x1080 interlaced video at 30 fps as per BT.1120/SMPTE 274M.</entry>
175 </row>
176 <row>
177 <entry>V4L2_DV_1080I25</entry>
178 <entry>11</entry>
179 <entry>1920x1080 interlaced video at 25 fps as per BT.1120.</entry>
180 </row>
181 <row>
182 <entry>V4L2_DV_1080I50</entry>
183 <entry>12</entry>
184 <entry>1920x1080 interlaced video at 50 fps as per SMPTE 296M.</entry>
185 </row>
186 <row>
187 <entry>V4L2_DV_1080I60</entry>
188 <entry>13</entry>
189 <entry>1920x1080 interlaced video at 60 fps as per SMPTE 296M.</entry>
190 </row>
191 <row>
192 <entry>V4L2_DV_1080P24</entry>
193 <entry>14</entry>
194 <entry>1920x1080 progressive video at 24 fps as per SMPTE 296M.</entry>
195 </row>
196 <row>
197 <entry>V4L2_DV_1080P25</entry>
198 <entry>15</entry>
199 <entry>1920x1080 progressive video at 25 fps as per SMPTE 296M.</entry>
200 </row>
201 <row>
202 <entry>V4L2_DV_1080P30</entry>
203 <entry>16</entry>
204 <entry>1920x1080 progressive video at 30 fps as per SMPTE 296M.</entry>
205 </row>
206 <row>
207 <entry>V4L2_DV_1080P50</entry>
208 <entry>17</entry>
209 <entry>1920x1080 progressive video at 50 fps as per BT.1120.</entry>
210 </row>
211 <row>
212 <entry>V4L2_DV_1080P60</entry>
213 <entry>18</entry>
214 <entry>1920x1080 progressive video at 60 fps as per BT.1120.</entry>
215 </row>
216 </tbody>
217 </tgroup>
218 </table>
219 </refsect1>
220
221 <refsect1>
222 &return-value;
223
224 <variablelist>
225 <varlistentry>
226 <term><errorcode>EINVAL</errorcode></term>
227 <listitem>
228 <para>The &v4l2-dv-enum-preset; <structfield>index</structfield>
229is out of bounds.</para>
230 </listitem>
231 </varlistentry>
232 <varlistentry>
233 <term><errorcode>ENODATA</errorcode></term>
234 <listitem>
235 <para>Digital video presets are not supported for this input or output.</para>
236 </listitem>
237 </varlistentry>
238 </variablelist>
239 </refsect1>
240</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-enuminput.xml b/Documentation/DocBook/media/v4l/vidioc-enuminput.xml
index 3c9a81305ad4..493a39a8ef21 100644
--- a/Documentation/DocBook/media/v4l/vidioc-enuminput.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-enuminput.xml
@@ -278,11 +278,6 @@ input/output interface to linux-media@vger.kernel.org on 19 Oct 2009.
278 &cs-def; 278 &cs-def;
279 <tbody valign="top"> 279 <tbody valign="top">
280 <row> 280 <row>
281 <entry><constant>V4L2_IN_CAP_PRESETS</constant></entry>
282 <entry>0x00000001</entry>
283 <entry>This input supports setting DV presets by using VIDIOC_S_DV_PRESET.</entry>
284 </row>
285 <row>
286 <entry><constant>V4L2_IN_CAP_DV_TIMINGS</constant></entry> 281 <entry><constant>V4L2_IN_CAP_DV_TIMINGS</constant></entry>
287 <entry>0x00000002</entry> 282 <entry>0x00000002</entry>
288 <entry>This input supports setting video timings by using VIDIOC_S_DV_TIMINGS.</entry> 283 <entry>This input supports setting video timings by using VIDIOC_S_DV_TIMINGS.</entry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml b/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml
index f4ab0798545d..2654e097df39 100644
--- a/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml
@@ -163,11 +163,6 @@ input/output interface to linux-media@vger.kernel.org on 19 Oct 2009.
163 &cs-def; 163 &cs-def;
164 <tbody valign="top"> 164 <tbody valign="top">
165 <row> 165 <row>
166 <entry><constant>V4L2_OUT_CAP_PRESETS</constant></entry>
167 <entry>0x00000001</entry>
168 <entry>This output supports setting DV presets by using VIDIOC_S_DV_PRESET.</entry>
169 </row>
170 <row>
171 <entry><constant>V4L2_OUT_CAP_DV_TIMINGS</constant></entry> 166 <entry><constant>V4L2_OUT_CAP_DV_TIMINGS</constant></entry>
172 <entry>0x00000002</entry> 167 <entry>0x00000002</entry>
173 <entry>This output supports setting video timings by using VIDIOC_S_DV_TIMINGS.</entry> 168 <entry>This output supports setting video timings by using VIDIOC_S_DV_TIMINGS.</entry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml b/Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml
deleted file mode 100644
index b9ea37634f6c..000000000000
--- a/Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml
+++ /dev/null
@@ -1,113 +0,0 @@
1<refentry id="vidioc-g-dv-preset">
2 <refmeta>
3 <refentrytitle>ioctl VIDIOC_G_DV_PRESET, VIDIOC_S_DV_PRESET</refentrytitle>
4 &manvol;
5 </refmeta>
6
7 <refnamediv>
8 <refname>VIDIOC_G_DV_PRESET</refname>
9 <refname>VIDIOC_S_DV_PRESET</refname>
10 <refpurpose>Query or select the DV preset of the current input or output</refpurpose>
11 </refnamediv>
12
13 <refsynopsisdiv>
14 <funcsynopsis>
15 <funcprototype>
16 <funcdef>int <function>ioctl</function></funcdef>
17 <paramdef>int <parameter>fd</parameter></paramdef>
18 <paramdef>int <parameter>request</parameter></paramdef>
19 <paramdef>struct v4l2_dv_preset *<parameter>argp</parameter></paramdef>
20 </funcprototype>
21 </funcsynopsis>
22 </refsynopsisdiv>
23
24 <refsect1>
25 <title>Arguments</title>
26
27 <variablelist>
28 <varlistentry>
29 <term><parameter>fd</parameter></term>
30 <listitem>
31 <para>&fd;</para>
32 </listitem>
33 </varlistentry>
34 <varlistentry>
35 <term><parameter>request</parameter></term>
36 <listitem>
37 <para>VIDIOC_G_DV_PRESET, VIDIOC_S_DV_PRESET</para>
38 </listitem>
39 </varlistentry>
40 <varlistentry>
41 <term><parameter>argp</parameter></term>
42 <listitem>
43 <para></para>
44 </listitem>
45 </varlistentry>
46 </variablelist>
47 </refsect1>
48
49 <refsect1>
50 <title>Description</title>
51
52 <para>These ioctls are <emphasis role="bold">deprecated</emphasis>.
53 New drivers and applications should use &VIDIOC-G-DV-TIMINGS; and &VIDIOC-S-DV-TIMINGS;
54 instead.
55 </para>
56
57 <para>To query and select the current DV preset, applications
58use the <constant>VIDIOC_G_DV_PRESET</constant> and <constant>VIDIOC_S_DV_PRESET</constant>
59ioctls which take a pointer to a &v4l2-dv-preset; type as argument.
60Applications must zero the reserved array in &v4l2-dv-preset;.
61<constant>VIDIOC_G_DV_PRESET</constant> returns a dv preset in the field
62<structfield>preset</structfield> of &v4l2-dv-preset;.</para>
63
64 <para><constant>VIDIOC_S_DV_PRESET</constant> accepts a pointer to a &v4l2-dv-preset;
65that has the preset value to be set. Applications must zero the reserved array in &v4l2-dv-preset;.
66If the preset is not supported, it returns an &EINVAL; </para>
67 </refsect1>
68
69 <refsect1>
70 &return-value;
71
72 <variablelist>
73 <varlistentry>
74 <term><errorcode>EINVAL</errorcode></term>
75 <listitem>
76 <para>This ioctl is not supported, or the
77<constant>VIDIOC_S_DV_PRESET</constant>,<constant>VIDIOC_S_DV_PRESET</constant> parameter was unsuitable.</para>
78 </listitem>
79 </varlistentry>
80 <varlistentry>
81 <term><errorcode>ENODATA</errorcode></term>
82 <listitem>
83 <para>Digital video presets are not supported for this input or output.</para>
84 </listitem>
85 </varlistentry>
86 <varlistentry>
87 <term><errorcode>EBUSY</errorcode></term>
88 <listitem>
89 <para>The device is busy and therefore can not change the preset.</para>
90 </listitem>
91 </varlistentry>
92 </variablelist>
93
94 <table pgwide="1" frame="none" id="v4l2-dv-preset">
95 <title>struct <structname>v4l2_dv_preset</structname></title>
96 <tgroup cols="3">
97 &cs-str;
98 <tbody valign="top">
99 <row>
100 <entry>__u32</entry>
101 <entry><structfield>preset</structfield></entry>
102 <entry>Preset value to represent the digital video timings</entry>
103 </row>
104 <row>
105 <entry>__u32</entry>
106 <entry><structfield>reserved[4]</structfield></entry>
107 <entry>Reserved fields for future use</entry>
108 </row>
109 </tbody>
110 </tgroup>
111 </table>
112 </refsect1>
113</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml b/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml
index 4e16112df992..b3bb9575b2e0 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml
@@ -319,6 +319,15 @@ These controls are described in <xref
319 processing controls. These controls are described in <xref 319 processing controls. These controls are described in <xref
320 linkend="image-process-controls" />.</entry> 320 linkend="image-process-controls" />.</entry>
321 </row> 321 </row>
322
323 <row>
324 <entry><constant>V4L2_CTRL_CLASS_FM_RX</constant></entry>
325 <entry>0xa10000</entry>
326 <entry>The class containing FM Receiver (FM RX) controls.
327These controls are described in <xref
328 linkend="fm-rx-controls" />.</entry>
329 </row>
330
322 </tbody> 331 </tbody>
323 </tgroup> 332 </tgroup>
324 </table> 333 </table>
diff --git a/Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml b/Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml
deleted file mode 100644
index 68b49d09e245..000000000000
--- a/Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml
+++ /dev/null
@@ -1,78 +0,0 @@
1<refentry id="vidioc-query-dv-preset">
2 <refmeta>
3 <refentrytitle>ioctl VIDIOC_QUERY_DV_PRESET</refentrytitle>
4 &manvol;
5 </refmeta>
6
7 <refnamediv>
8 <refname>VIDIOC_QUERY_DV_PRESET</refname>
9 <refpurpose>Sense the DV preset received by the current
10input</refpurpose>
11 </refnamediv>
12
13 <refsynopsisdiv>
14 <funcsynopsis>
15 <funcprototype>
16 <funcdef>int <function>ioctl</function></funcdef>
17 <paramdef>int <parameter>fd</parameter></paramdef>
18 <paramdef>int <parameter>request</parameter></paramdef>
19 <paramdef>struct v4l2_dv_preset *<parameter>argp</parameter></paramdef>
20 </funcprototype>
21 </funcsynopsis>
22 </refsynopsisdiv>
23
24 <refsect1>
25 <title>Arguments</title>
26
27 <variablelist>
28 <varlistentry>
29 <term><parameter>fd</parameter></term>
30 <listitem>
31 <para>&fd;</para>
32 </listitem>
33 </varlistentry>
34 <varlistentry>
35 <term><parameter>request</parameter></term>
36 <listitem>
37 <para>VIDIOC_QUERY_DV_PRESET</para>
38 </listitem>
39 </varlistentry>
40 <varlistentry>
41 <term><parameter>argp</parameter></term>
42 <listitem>
43 <para></para>
44 </listitem>
45 </varlistentry>
46 </variablelist>
47 </refsect1>
48
49 <refsect1>
50 <title>Description</title>
51
52 <para>This ioctl is <emphasis role="bold">deprecated</emphasis>.
53 New drivers and applications should use &VIDIOC-QUERY-DV-TIMINGS; instead.
54 </para>
55
56 <para>The hardware may be able to detect the current DV preset
57automatically, similar to sensing the video standard. To do so, applications
58call <constant> VIDIOC_QUERY_DV_PRESET</constant> with a pointer to a
59&v4l2-dv-preset; type. Once the hardware detects a preset, that preset is
60returned in the preset field of &v4l2-dv-preset;. If the preset could not be
61detected because there was no signal, or the signal was unreliable, or the
62signal did not map to a supported preset, then the value V4L2_DV_INVALID is
63returned.</para>
64 </refsect1>
65
66 <refsect1>
67 &return-value;
68
69 <variablelist>
70 <varlistentry>
71 <term><errorcode>ENODATA</errorcode></term>
72 <listitem>
73 <para>Digital video presets are not supported for this input or output.</para>
74 </listitem>
75 </varlistentry>
76 </variablelist>
77 </refsect1>
78</refentry>
diff --git a/Documentation/DocBook/media_api.tmpl b/Documentation/DocBook/media_api.tmpl
index 1f6593deb995..6a8b7158697f 100644
--- a/Documentation/DocBook/media_api.tmpl
+++ b/Documentation/DocBook/media_api.tmpl
@@ -23,6 +23,7 @@
23<!-- LinuxTV v4l-dvb repository. --> 23<!-- LinuxTV v4l-dvb repository. -->
24<!ENTITY v4l-dvb "<ulink url='http://linuxtv.org/repo/'>http://linuxtv.org/repo/</ulink>"> 24<!ENTITY v4l-dvb "<ulink url='http://linuxtv.org/repo/'>http://linuxtv.org/repo/</ulink>">
25<!ENTITY dash-ent-10 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> 25<!ENTITY dash-ent-10 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
26<!ENTITY dash-ent-16 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
26]> 27]>
27 28
28<book id="media_api"> 29<book id="media_api">
diff --git a/Documentation/devicetree/bindings/media/exynos-fimc-lite.txt b/Documentation/devicetree/bindings/media/exynos-fimc-lite.txt
new file mode 100644
index 000000000000..3f62adfb3e0b
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/exynos-fimc-lite.txt
@@ -0,0 +1,14 @@
1Exynos4x12/Exynos5 SoC series camera host interface (FIMC-LITE)
2
3Required properties:
4
5- compatible : should be "samsung,exynos4212-fimc" for Exynos4212 and
6 Exynos4412 SoCs;
7- reg : physical base address and size of the device memory mapped
8 registers;
9- interrupts : should contain FIMC-LITE interrupt;
10- clocks : FIMC LITE gate clock should be specified in this property.
11- clock-names : should contain "flite" entry.
12
13Each FIMC device should have an alias in the aliases node, in the form of
14fimc-lite<n>, where <n> is an integer specifying the IP block instance.
diff --git a/Documentation/devicetree/bindings/media/exynos4-fimc-is.txt b/Documentation/devicetree/bindings/media/exynos4-fimc-is.txt
new file mode 100644
index 000000000000..55c9ad6f9599
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/exynos4-fimc-is.txt
@@ -0,0 +1,49 @@
1Exynos4x12 SoC series Imaging Subsystem (FIMC-IS)
2
3The FIMC-IS is a subsystem for processing image signal from an image sensor.
4The Exynos4x12 SoC series FIMC-IS V1.5 comprises of a dedicated ARM Cortex-A5
5processor, ISP, DRC and FD IP blocks and peripheral devices such as UART, I2C
6and SPI bus controllers, PWM and ADC.
7
8fimc-is node
9------------
10
11Required properties:
12- compatible : should be "samsung,exynos4212-fimc-is" for Exynos4212 and
13 Exynos4412 SoCs;
14- reg : physical base address and length of the registers set;
15- interrupts : must contain two FIMC-IS interrupts, in order: ISP0, ISP1;
16- clocks : list of clock specifiers, corresponding to entries in
17 clock-names property;
18- clock-names : must contain "ppmuispx", "ppmuispx", "lite0", "lite1"
19 "mpll", "sysreg", "isp", "drc", "fd", "mcuisp", "uart",
20 "ispdiv0", "ispdiv1", "mcuispdiv0", "mcuispdiv1", "aclk200",
21 "div_aclk200", "aclk400mcuisp", "div_aclk400mcuisp" entries,
22 matching entries in the clocks property.
23pmu subnode
24-----------
25
26Required properties:
27 - reg : must contain PMU physical base address and size of the register set.
28
29The following are the FIMC-IS peripheral device nodes and can be specified
30either standalone or as the fimc-is node child nodes.
31
32i2c-isp (ISP I2C bus controller) nodes
33------------------------------------------
34
35Required properties:
36
37- compatible : should be "samsung,exynos4212-i2c-isp" for Exynos4212 and
38 Exynos4412 SoCs;
39- reg : physical base address and length of the registers set;
40- clocks : must contain gate clock specifier for this controller;
41- clock-names : must contain "i2c_isp" entry.
42
43For the above nodes it is required to specify a pinctrl state named "default",
44according to the pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt.
45
46Device tree nodes of the image sensors' controlled directly by the FIMC-IS
47firmware must be child nodes of their corresponding ISP I2C bus controller node.
48The data link of these image sensors must be specified using the common video
49interfaces bindings, defined in video-interfaces.txt.
diff --git a/Documentation/devicetree/bindings/media/samsung-fimc.txt b/Documentation/devicetree/bindings/media/samsung-fimc.txt
new file mode 100644
index 000000000000..51c776b7f7a3
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/samsung-fimc.txt
@@ -0,0 +1,197 @@
1Samsung S5P/EXYNOS SoC Camera Subsystem (FIMC)
2----------------------------------------------
3
4The S5P/Exynos SoC Camera subsystem comprises of multiple sub-devices
5represented by separate device tree nodes. Currently this includes: FIMC (in
6the S5P SoCs series known as CAMIF), MIPI CSIS, FIMC-LITE and FIMC-IS (ISP).
7
8The sub-subdevices are defined as child nodes of the common 'camera' node which
9also includes common properties of the whole subsystem not really specific to
10any single sub-device, like common camera port pins or the CAMCLK clock outputs
11for external image sensors attached to an SoC.
12
13Common 'camera' node
14--------------------
15
16Required properties:
17
18- compatible : must be "samsung,fimc", "simple-bus"
19- clocks : list of clock specifiers, corresponding to entries in
20 the clock-names property;
21- clock-names : must contain "sclk_cam0", "sclk_cam1", "pxl_async0",
22 "pxl_async1" entries, matching entries in the clocks property.
23
24The pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt must be used
25to define a required pinctrl state named "default" and optional pinctrl states:
26"idle", "active-a", active-b". These optional states can be used to switch the
27camera port pinmux at runtime. The "idle" state should configure both the camera
28ports A and B into high impedance state, especially the CAMCLK clock output
29should be inactive. For the "active-a" state the camera port A must be activated
30and the port B deactivated and for the state "active-b" it should be the other
31way around.
32
33The 'camera' node must include at least one 'fimc' child node.
34
35'fimc' device nodes
36-------------------
37
38Required properties:
39
40- compatible: "samsung,s5pv210-fimc" for S5PV210, "samsung,exynos4210-fimc"
41 for Exynos4210 and "samsung,exynos4212-fimc" for Exynos4x12 SoCs;
42- reg: physical base address and length of the registers set for the device;
43- interrupts: should contain FIMC interrupt;
44- clocks: list of clock specifiers, must contain an entry for each required
45 entry in clock-names;
46- clock-names: must contain "fimc", "sclk_fimc" entries.
47- samsung,pix-limits: an array of maximum supported image sizes in pixels, for
48 details refer to Table 2-1 in the S5PV210 SoC User Manual; The meaning of
49 each cell is as follows:
50 0 - scaler input horizontal size,
51 1 - input horizontal size for the scaler bypassed,
52 2 - REAL_WIDTH without input rotation,
53 3 - REAL_HEIGHT with input rotation,
54- samsung,sysreg: a phandle to the SYSREG node.
55
56Each FIMC device should have an alias in the aliases node, in the form of
57fimc<n>, where <n> is an integer specifying the IP block instance.
58
59Optional properties:
60
61- clock-frequency: maximum FIMC local clock (LCLK) frequency;
62- samsung,min-pix-sizes: an array specyfing minimum image size in pixels at
63 the FIMC input and output DMA, in the first and second cell respectively.
64 Default value when this property is not present is <16 16>;
65- samsung,min-pix-alignment: minimum supported image height alignment (first
66 cell) and the horizontal image offset (second cell). The values are in pixels
67 and default to <2 1> when this property is not present;
68- samsung,mainscaler-ext: a boolean property indicating whether the FIMC IP
69 supports extended image size and has CIEXTEN register;
70- samsung,rotators: a bitmask specifying whether this IP has the input and
71 the output rotator. Bits 4 and 0 correspond to input and output rotator
72 respectively. If a rotator is present its corresponding bit should be set.
73 Default value when this property is not specified is 0x11.
74- samsung,cam-if: a bolean property indicating whether the IP block includes
75 the camera input interface.
76- samsung,isp-wb: this property must be present if the IP block has the ISP
77 writeback input.
78- samsung,lcd-wb: this property must be present if the IP block has the LCD
79 writeback input.
80
81
82'parallel-ports' node
83---------------------
84
85This node should contain child 'port' nodes specifying active parallel video
86input ports. It includes camera A and camera B inputs. 'reg' property in the
87port nodes specifies data input - 0, 1 indicates input A, B respectively.
88
89Optional properties
90
91- samsung,camclk-out : specifies clock output for remote sensor,
92 0 - CAM_A_CLKOUT, 1 - CAM_B_CLKOUT;
93
94Image sensor nodes
95------------------
96
97The sensor device nodes should be added to their control bus controller (e.g.
98I2C0) nodes and linked to a port node in the csis or the parallel-ports node,
99using the common video interfaces bindings, defined in video-interfaces.txt.
100The implementation of this bindings requires clock-frequency property to be
101present in the sensor device nodes.
102
103Example:
104
105 aliases {
106 fimc0 = &fimc_0;
107 };
108
109 /* Parallel bus IF sensor */
110 i2c_0: i2c@13860000 {
111 s5k6aa: sensor@3c {
112 compatible = "samsung,s5k6aafx";
113 reg = <0x3c>;
114 vddio-supply = <...>;
115
116 clock-frequency = <24000000>;
117 clocks = <...>;
118 clock-names = "mclk";
119
120 port {
121 s5k6aa_ep: endpoint {
122 remote-endpoint = <&fimc0_ep>;
123 bus-width = <8>;
124 hsync-active = <0>;
125 vsync-active = <1>;
126 pclk-sample = <1>;
127 };
128 };
129 };
130 };
131
132 /* MIPI CSI-2 bus IF sensor */
133 s5c73m3: sensor@0x1a {
134 compatible = "samsung,s5c73m3";
135 reg = <0x1a>;
136 vddio-supply = <...>;
137
138 clock-frequency = <24000000>;
139 clocks = <...>;
140 clock-names = "mclk";
141
142 port {
143 s5c73m3_1: endpoint {
144 data-lanes = <1 2 3 4>;
145 remote-endpoint = <&csis0_ep>;
146 };
147 };
148 };
149
150 camera {
151 compatible = "samsung,fimc", "simple-bus";
152 #address-cells = <1>;
153 #size-cells = <1>;
154 status = "okay";
155
156 pinctrl-names = "default";
157 pinctrl-0 = <&cam_port_a_clk_active>;
158
159 /* parallel camera ports */
160 parallel-ports {
161 /* camera A input */
162 port@0 {
163 reg = <0>;
164 fimc0_ep: endpoint {
165 remote-endpoint = <&s5k6aa_ep>;
166 bus-width = <8>;
167 hsync-active = <0>;
168 vsync-active = <1>;
169 pclk-sample = <1>;
170 };
171 };
172 };
173
174 fimc_0: fimc@11800000 {
175 compatible = "samsung,exynos4210-fimc";
176 reg = <0x11800000 0x1000>;
177 interrupts = <0 85 0>;
178 status = "okay";
179 };
180
181 csis_0: csis@11880000 {
182 compatible = "samsung,exynos4210-csis";
183 reg = <0x11880000 0x1000>;
184 interrupts = <0 78 0>;
185 /* camera C input */
186 port@3 {
187 reg = <3>;
188 csis0_ep: endpoint {
189 remote-endpoint = <&s5c73m3_ep>;
190 data-lanes = <1 2 3 4>;
191 samsung,csis-hs-settle = <12>;
192 };
193 };
194 };
195 };
196
197The MIPI-CSIS device binding is defined in samsung-mipi-csis.txt.
diff --git a/Documentation/devicetree/bindings/media/samsung-mipi-csis.txt b/Documentation/devicetree/bindings/media/samsung-mipi-csis.txt
new file mode 100644
index 000000000000..5f8e28e2484f
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/samsung-mipi-csis.txt
@@ -0,0 +1,81 @@
1Samsung S5P/EXYNOS SoC series MIPI CSI-2 receiver (MIPI CSIS)
2-------------------------------------------------------------
3
4Required properties:
5
6- compatible : "samsung,s5pv210-csis" for S5PV210 (S5PC110),
7 "samsung,exynos4210-csis" for Exynos4210 (S5PC210),
8 "samsung,exynos4212-csis" for Exynos4212/Exynos4412
9 SoC series;
10- reg : offset and length of the register set for the device;
11- interrupts : should contain MIPI CSIS interrupt; the format of the
12 interrupt specifier depends on the interrupt controller;
13- bus-width : maximum number of data lanes supported (SoC specific);
14- vddio-supply : MIPI CSIS I/O and PLL voltage supply (e.g. 1.8V);
15- vddcore-supply : MIPI CSIS Core voltage supply (e.g. 1.1V);
16- clocks : list of clock specifiers, corresponding to entries in
17 clock-names property;
18- clock-names : must contain "csis", "sclk_csis" entries, matching entries
19 in the clocks property.
20
21Optional properties:
22
23- clock-frequency : The IP's main (system bus) clock frequency in Hz, default
24 value when this property is not specified is 166 MHz;
25- samsung,csis-wclk : CSI-2 wrapper clock selection. If this property is present
26 external clock from CMU will be used, or the bus clock if
27 if it's not specified.
28
29The device node should contain one 'port' child node with one child 'endpoint'
30node, according to the bindings defined in Documentation/devicetree/bindings/
31media/video-interfaces.txt. The following are properties specific to those nodes.
32
33port node
34---------
35
36- reg : (required) must be 3 for camera C input (CSIS0) or 4 for
37 camera D input (CSIS1);
38
39endpoint node
40-------------
41
42- data-lanes : (required) an array specifying active physical MIPI-CSI2
43 data input lanes and their mapping to logical lanes; the
44 array's content is unused, only its length is meaningful;
45
46- samsung,csis-hs-settle : (optional) differential receiver (HS-RX) settle time;
47
48
49Example:
50
51 reg0: regulator@0 {
52 };
53
54 reg1: regulator@1 {
55 };
56
57/* SoC properties */
58
59 csis_0: csis@11880000 {
60 compatible = "samsung,exynos4210-csis";
61 reg = <0x11880000 0x1000>;
62 interrupts = <0 78 0>;
63 #address-cells = <1>;
64 #size-cells = <0>;
65 };
66
67/* Board properties */
68
69 csis_0: csis@11880000 {
70 clock-frequency = <166000000>;
71 vddio-supply = <&reg0>;
72 vddcore-supply = <&reg1>;
73 port {
74 reg = <3>; /* 3 - CSIS0, 4 - CSIS1 */
75 csis0_ep: endpoint {
76 remote-endpoint = <...>;
77 data-lanes = <1>, <2>;
78 samsung,csis-hs-settle = <12>;
79 };
80 };
81 };
diff --git a/Documentation/devicetree/bindings/media/video-interfaces.txt b/Documentation/devicetree/bindings/media/video-interfaces.txt
new file mode 100644
index 000000000000..e022d2dc4962
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/video-interfaces.txt
@@ -0,0 +1,228 @@
1Common bindings for video receiver and transmitter interfaces
2
3General concept
4---------------
5
6Video data pipelines usually consist of external devices, e.g. camera sensors,
7controlled over an I2C, SPI or UART bus, and SoC internal IP blocks, including
8video DMA engines and video data processors.
9
10SoC internal blocks are described by DT nodes, placed similarly to other SoC
11blocks. External devices are represented as child nodes of their respective
12bus controller nodes, e.g. I2C.
13
14Data interfaces on all video devices are described by their child 'port' nodes.
15Configuration of a port depends on other devices participating in the data
16transfer and is described by 'endpoint' subnodes.
17
18device {
19 ...
20 ports {
21 #address-cells = <1>;
22 #size-cells = <0>;
23
24 port@0 {
25 ...
26 endpoint@0 { ... };
27 endpoint@1 { ... };
28 };
29 port@1 { ... };
30 };
31};
32
33If a port can be configured to work with more than one remote device on the same
34bus, an 'endpoint' child node must be provided for each of them. If more than
35one port is present in a device node or there is more than one endpoint at a
36port, or port node needs to be associated with a selected hardware interface,
37a common scheme using '#address-cells', '#size-cells' and 'reg' properties is
38used.
39
40All 'port' nodes can be grouped under optional 'ports' node, which allows to
41specify #address-cells, #size-cells properties independently for the 'port'
42and 'endpoint' nodes and any child device nodes a device might have.
43
44Two 'endpoint' nodes are linked with each other through their 'remote-endpoint'
45phandles. An endpoint subnode of a device contains all properties needed for
46configuration of this device for data exchange with other device. In most
47cases properties at the peer 'endpoint' nodes will be identical, however they
48might need to be different when there is any signal modifications on the bus
49between two devices, e.g. there are logic signal inverters on the lines.
50
51It is allowed for multiple endpoints at a port to be active simultaneously,
52where supported by a device. For example, in case where a data interface of
53a device is partitioned into multiple data busses, e.g. 16-bit input port
54divided into two separate ITU-R BT.656 8-bit busses. In such case bus-width
55and data-shift properties can be used to assign physical data lines to each
56endpoint node (logical bus).
57
58
59Required properties
60-------------------
61
62If there is more than one 'port' or more than one 'endpoint' node or 'reg'
63property is present in port and/or endpoint nodes the following properties
64are required in a relevant parent node:
65
66 - #address-cells : number of cells required to define port/endpoint
67 identifier, should be 1.
68 - #size-cells : should be zero.
69
70Optional endpoint properties
71----------------------------
72
73- remote-endpoint: phandle to an 'endpoint' subnode of a remote device node.
74- slave-mode: a boolean property indicating that the link is run in slave mode.
75 The default when this property is not specified is master mode. In the slave
76 mode horizontal and vertical synchronization signals are provided to the
77 slave device (data source) by the master device (data sink). In the master
78 mode the data source device is also the source of the synchronization signals.
79- bus-width: number of data lines actively used, valid for the parallel busses.
80- data-shift: on the parallel data busses, if bus-width is used to specify the
81 number of data lines, data-shift can be used to specify which data lines are
82 used, e.g. "bus-width=<8>; data-shift=<2>;" means, that lines 9:2 are used.
83- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
84- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
85 Note, that if HSYNC and VSYNC polarities are not specified, embedded
86 synchronization may be required, where supported.
87- data-active: similar to HSYNC and VSYNC, specifies data line polarity.
88- field-even-active: field signal level during the even field data transmission.
89- pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock
90 signal.
91- data-lanes: an array of physical data lane indexes. Position of an entry
92 determines the logical lane number, while the value of an entry indicates
93 physical lane, e.g. for 2-lane MIPI CSI-2 bus we could have
94 "data-lanes = <1 2>;", assuming the clock lane is on hardware lane 0.
95 This property is valid for serial busses only (e.g. MIPI CSI-2).
96- clock-lanes: an array of physical clock lane indexes. Position of an entry
97 determines the logical lane number, while the value of an entry indicates
98 physical lane, e.g. for a MIPI CSI-2 bus we could have "clock-lanes = <0>;",
99 which places the clock lane on hardware lane 0. This property is valid for
100 serial busses only (e.g. MIPI CSI-2). Note that for the MIPI CSI-2 bus this
101 array contains only one entry.
102- clock-noncontinuous: a boolean property to allow MIPI CSI-2 non-continuous
103 clock mode.
104
105
106Example
107-------
108
109The example snippet below describes two data pipelines. ov772x and imx074 are
110camera sensors with a parallel and serial (MIPI CSI-2) video bus respectively.
111Both sensors are on the I2C control bus corresponding to the i2c0 controller
112node. ov772x sensor is linked directly to the ceu0 video host interface.
113imx074 is linked to ceu0 through the MIPI CSI-2 receiver (csi2). ceu0 has a
114(single) DMA engine writing captured data to memory. ceu0 node has a single
115'port' node which may indicate that at any time only one of the following data
116pipelines can be active: ov772x -> ceu0 or imx074 -> csi2 -> ceu0.
117
118 ceu0: ceu@0xfe910000 {
119 compatible = "renesas,sh-mobile-ceu";
120 reg = <0xfe910000 0xa0>;
121 interrupts = <0x880>;
122
123 mclk: master_clock {
124 compatible = "renesas,ceu-clock";
125 #clock-cells = <1>;
126 clock-frequency = <50000000>; /* Max clock frequency */
127 clock-output-names = "mclk";
128 };
129
130 port {
131 #address-cells = <1>;
132 #size-cells = <0>;
133
134 /* Parallel bus endpoint */
135 ceu0_1: endpoint@1 {
136 reg = <1>; /* Local endpoint # */
137 remote = <&ov772x_1_1>; /* Remote phandle */
138 bus-width = <8>; /* Used data lines */
139 data-shift = <2>; /* Lines 9:2 are used */
140
141 /* If hsync-active/vsync-active are missing,
142 embedded BT.656 sync is used */
143 hsync-active = <0>; /* Active low */
144 vsync-active = <0>; /* Active low */
145 data-active = <1>; /* Active high */
146 pclk-sample = <1>; /* Rising */
147 };
148
149 /* MIPI CSI-2 bus endpoint */
150 ceu0_0: endpoint@0 {
151 reg = <0>;
152 remote = <&csi2_2>;
153 };
154 };
155 };
156
157 i2c0: i2c@0xfff20000 {
158 ...
159 ov772x_1: camera@0x21 {
160 compatible = "omnivision,ov772x";
161 reg = <0x21>;
162 vddio-supply = <&regulator1>;
163 vddcore-supply = <&regulator2>;
164
165 clock-frequency = <20000000>;
166 clocks = <&mclk 0>;
167 clock-names = "xclk";
168
169 port {
170 /* With 1 endpoint per port no need for addresses. */
171 ov772x_1_1: endpoint {
172 bus-width = <8>;
173 remote-endpoint = <&ceu0_1>;
174 hsync-active = <1>;
175 vsync-active = <0>; /* Who came up with an
176 inverter here ?... */
177 data-active = <1>;
178 pclk-sample = <1>;
179 };
180 };
181 };
182
183 imx074: camera@0x1a {
184 compatible = "sony,imx074";
185 reg = <0x1a>;
186 vddio-supply = <&regulator1>;
187 vddcore-supply = <&regulator2>;
188
189 clock-frequency = <30000000>; /* Shared clock with ov772x_1 */
190 clocks = <&mclk 0>;
191 clock-names = "sysclk"; /* Assuming this is the
192 name in the datasheet */
193 port {
194 imx074_1: endpoint {
195 clock-lanes = <0>;
196 data-lanes = <1 2>;
197 remote-endpoint = <&csi2_1>;
198 };
199 };
200 };
201 };
202
203 csi2: csi2@0xffc90000 {
204 compatible = "renesas,sh-mobile-csi2";
205 reg = <0xffc90000 0x1000>;
206 interrupts = <0x17a0>;
207 #address-cells = <1>;
208 #size-cells = <0>;
209
210 port@1 {
211 compatible = "renesas,csi2c"; /* One of CSI2I and CSI2C. */
212 reg = <1>; /* CSI-2 PHY #1 of 2: PHY_S,
213 PHY_M has port address 0,
214 is unused. */
215 csi2_1: endpoint {
216 clock-lanes = <0>;
217 data-lanes = <2 1>;
218 remote-endpoint = <&imx074_1>;
219 };
220 };
221 port@2 {
222 reg = <2>; /* port 2: link to the CEU */
223
224 csi2_2: endpoint {
225 remote-endpoint = <&ceu0_0>;
226 };
227 };
228 };
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx
index 3f12865b2a88..e81864405102 100644
--- a/Documentation/video4linux/CARDLIST.em28xx
+++ b/Documentation/video4linux/CARDLIST.em28xx
@@ -76,7 +76,7 @@
76 76 -> KWorld PlusTV 340U or UB435-Q (ATSC) (em2870) [1b80:a340] 76 76 -> KWorld PlusTV 340U or UB435-Q (ATSC) (em2870) [1b80:a340]
77 77 -> EM2874 Leadership ISDBT (em2874) 77 77 -> EM2874 Leadership ISDBT (em2874)
78 78 -> PCTV nanoStick T2 290e (em28174) 78 78 -> PCTV nanoStick T2 290e (em28174)
79 79 -> Terratec Cinergy H5 (em2884) [0ccd:10a2,0ccd:10ad] 79 79 -> Terratec Cinergy H5 (em2884) [0ccd:10a2,0ccd:10ad,0ccd:10b6]
80 80 -> PCTV DVB-S2 Stick (460e) (em28174) 80 80 -> PCTV DVB-S2 Stick (460e) (em28174)
81 81 -> Hauppauge WinTV HVR 930C (em2884) [2040:1605] 81 81 -> Hauppauge WinTV HVR 930C (em2884) [2040:1605]
82 82 -> Terratec Cinergy HTC Stick (em2884) [0ccd:00b2] 82 82 -> Terratec Cinergy HTC Stick (em2884) [0ccd:00b2]
@@ -85,3 +85,4 @@
85 85 -> PCTV QuatroStick (510e) (em2884) [2304:0242] 85 85 -> PCTV QuatroStick (510e) (em2884) [2304:0242]
86 86 -> PCTV QuatroStick nano (520e) (em2884) [2013:0251] 86 86 -> PCTV QuatroStick nano (520e) (em2884) [2013:0251]
87 87 -> Terratec Cinergy HTC USB XS (em2884) [0ccd:008e,0ccd:00ac] 87 87 -> Terratec Cinergy HTC USB XS (em2884) [0ccd:008e,0ccd:00ac]
88 88 -> C3 Tech Digital Duo HDTV/SDTV USB (em2884) [1b80:e755]
diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner
index c83f6e418879..5b83a3ff15c2 100644
--- a/Documentation/video4linux/CARDLIST.tuner
+++ b/Documentation/video4linux/CARDLIST.tuner
@@ -86,3 +86,6 @@ tuner=85 - Philips FQ1236 MK5
86tuner=86 - Tena TNF5337 MFD 86tuner=86 - Tena TNF5337 MFD
87tuner=87 - Xceive 4000 tuner 87tuner=87 - Xceive 4000 tuner
88tuner=88 - Xceive 5000C tuner 88tuner=88 - Xceive 5000C tuner
89tuner=89 - Sony PAL+SECAM (BTF-PG472Z)
90tuner=90 - Sony NTSC-M-JP (BTF-PK467Z)
91tuner=91 - Sony NTSC-M (BTF-PB463Z)
diff --git a/Documentation/video4linux/si476x.txt b/Documentation/video4linux/si476x.txt
new file mode 100644
index 000000000000..d1a08db2cbd9
--- /dev/null
+++ b/Documentation/video4linux/si476x.txt
@@ -0,0 +1,187 @@
1SI476x Driver Readme
2------------------------------------------------
3 Copyright (C) 2013 Andrey Smirnov <andrew.smirnov@gmail.com>
4
5TODO for the driver
6------------------------------
7
8- According to the SiLabs' datasheet it is possible to update the
9 firmware of the radio chip in the run-time, thus bringing it to the
10 most recent version. Unfortunately I couldn't find any mentioning of
11 the said firmware update for the old chips that I tested the driver
12 against, so for chips like that the driver only exposes the old
13 functionality.
14
15
16Parameters exposed over debugfs
17-------------------------------
18SI476x allow user to get multiple characteristics that can be very
19useful for EoL testing/RF performance estimation, parameters that have
20very little to do with V4L2 subsystem. Such parameters are exposed via
21debugfs and can be accessed via regular file I/O operations.
22
23The drivers exposes following files:
24
25* /sys/kernel/debug/<device-name>/acf
26 This file contains ACF(Automatically Controlled Features) status
27 information. The contents of the file is binary data of the
28 following layout:
29
30 Offset | Name | Description
31 ====================================================================
32 0x00 | blend_int | Flag, set when stereo separation has
33 | | crossed below the blend threshold
34 --------------------------------------------------------------------
35 0x01 | hblend_int | Flag, set when HiBlend cutoff
36 | | frequency is lower than threshold
37 --------------------------------------------------------------------
38 0x02 | hicut_int | Flag, set when HiCut cutoff
39 | | frequency is lower than threshold
40 --------------------------------------------------------------------
41 0x03 | chbw_int | Flag, set when channel filter
42 | | bandwidth is less than threshold
43 --------------------------------------------------------------------
44 0x04 | softmute_int | Flag indicating that softmute
45 | | attenuation has increased above
46 | | softmute threshold
47 --------------------------------------------------------------------
48 0x05 | smute | 0 - Audio is not soft muted
49 | | 1 - Audio is soft muted
50 --------------------------------------------------------------------
51 0x06 | smattn | Soft mute attenuation level in dB
52 --------------------------------------------------------------------
53 0x07 | chbw | Channel filter bandwidth in kHz
54 --------------------------------------------------------------------
55 0x08 | hicut | HiCut cutoff frequency in units of
56 | | 100Hz
57 --------------------------------------------------------------------
58 0x09 | hiblend | HiBlend cutoff frequency in units
59 | | of 100 Hz
60 --------------------------------------------------------------------
61 0x10 | pilot | 0 - Stereo pilot is not present
62 | | 1 - Stereo pilot is present
63 --------------------------------------------------------------------
64 0x11 | stblend | Stereo blend in %
65 --------------------------------------------------------------------
66
67
68* /sys/kernel/debug/<device-name>/rds_blckcnt
69 This file contains statistics about RDS receptions. It's binary data
70 has the following layout:
71
72 Offset | Name | Description
73 ====================================================================
74 0x00 | expected | Number of expected RDS blocks
75 --------------------------------------------------------------------
76 0x02 | received | Number of received RDS blocks
77 --------------------------------------------------------------------
78 0x04 | uncorrectable | Number of uncorrectable RDS blocks
79 --------------------------------------------------------------------
80
81* /sys/kernel/debug/<device-name>/agc
82 This file contains information about parameters pertaining to
83 AGC(Automatic Gain Control)
84
85 The layout is:
86 Offset | Name | Description
87 ====================================================================
88 0x00 | mxhi | 0 - FM Mixer PD high threshold is
89 | | not tripped
90 | | 1 - FM Mixer PD high threshold is
91 | | tripped
92 --------------------------------------------------------------------
93 0x01 | mxlo | ditto for FM Mixer PD low
94 --------------------------------------------------------------------
95 0x02 | lnahi | ditto for FM LNA PD high
96 --------------------------------------------------------------------
97 0x03 | lnalo | ditto for FM LNA PD low
98 --------------------------------------------------------------------
99 0x04 | fmagc1 | FMAGC1 attenuator resistance
100 | | (see datasheet for more detail)
101 --------------------------------------------------------------------
102 0x05 | fmagc2 | ditto for FMAGC2
103 --------------------------------------------------------------------
104 0x06 | pgagain | PGA gain in dB
105 --------------------------------------------------------------------
106 0x07 | fmwblang | FM/WB LNA Gain in dB
107 --------------------------------------------------------------------
108
109* /sys/kernel/debug/<device-name>/rsq
110 This file contains information about parameters pertaining to
111 RSQ(Received Signal Quality)
112
113 The layout is:
114 Offset | Name | Description
115 ====================================================================
116 0x00 | multhint | 0 - multipath value has not crossed
117 | | the Multipath high threshold
118 | | 1 - multipath value has crossed
119 | | the Multipath high threshold
120 --------------------------------------------------------------------
121 0x01 | multlint | ditto for Multipath low threshold
122 --------------------------------------------------------------------
123 0x02 | snrhint | 0 - received signal's SNR has not
124 | | crossed high threshold
125 | | 1 - received signal's SNR has
126 | | crossed high threshold
127 --------------------------------------------------------------------
128 0x03 | snrlint | ditto for low threshold
129 --------------------------------------------------------------------
130 0x04 | rssihint | ditto for RSSI high threshold
131 --------------------------------------------------------------------
132 0x05 | rssilint | ditto for RSSI low threshold
133 --------------------------------------------------------------------
134 0x06 | bltf | Flag indicating if seek command
135 | | reached/wrapped seek band limit
136 --------------------------------------------------------------------
137 0x07 | snr_ready | Indicates that SNR metrics is ready
138 --------------------------------------------------------------------
139 0x08 | rssiready | ditto for RSSI metrics
140 --------------------------------------------------------------------
141 0x09 | injside | 0 - Low-side injection is being used
142 | | 1 - High-side injection is used
143 --------------------------------------------------------------------
144 0x10 | afcrl | Flag indicating if AFC rails
145 --------------------------------------------------------------------
146 0x11 | valid | Flag indicating if channel is valid
147 --------------------------------------------------------------------
148 0x12 | readfreq | Current tuned frequency
149 --------------------------------------------------------------------
150 0x14 | freqoff | Singed frequency offset in units of
151 | | 2ppm
152 --------------------------------------------------------------------
153 0x15 | rssi | Signed value of RSSI in dBuV
154 --------------------------------------------------------------------
155 0x16 | snr | Signed RF SNR in dB
156 --------------------------------------------------------------------
157 0x17 | issi | Signed Image Strength Signal
158 | | indicator
159 --------------------------------------------------------------------
160 0x18 | lassi | Signed Low side adjacent Channel
161 | | Strength indicator
162 --------------------------------------------------------------------
163 0x19 | hassi | ditto fpr High side
164 --------------------------------------------------------------------
165 0x20 | mult | Multipath indicator
166 --------------------------------------------------------------------
167 0x21 | dev | Frequency deviation
168 --------------------------------------------------------------------
169 0x24 | assi | Adjascent channel SSI
170 --------------------------------------------------------------------
171 0x25 | usn | Ultrasonic noise indicator
172 --------------------------------------------------------------------
173 0x26 | pilotdev | Pilot deviation in units of 100 Hz
174 --------------------------------------------------------------------
175 0x27 | rdsdev | ditto for RDS
176 --------------------------------------------------------------------
177 0x28 | assidev | ditto for ASSI
178 --------------------------------------------------------------------
179 0x29 | strongdev | Frequency deviation
180 --------------------------------------------------------------------
181 0x30 | rdspi | RDS PI code
182 --------------------------------------------------------------------
183
184* /sys/kernel/debug/<device-name>/rsq_primary
185 This file contains information about parameters pertaining to
186 RSQ(Received Signal Quality) for primary tuner only. Layout is as
187 the one above.