aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2012-07-05 05:54:38 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-07-30 19:23:07 -0400
commit50121317c2035c017d62c8ec24f84b91ef8d4de2 (patch)
treebf5628bd8f41fff750ccd174a0ef54c7b4d310cb
parent82b655bfc32b793344ef0ddd46df8af8b98b55c7 (diff)
[media] v4l2 spec: add VIDIOC_ENUM_FREQ_BANDS documentation
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--Documentation/DocBook/media/v4l/compat.xml12
-rw-r--r--Documentation/DocBook/media/v4l/v4l2.xml6
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-enum-freq-bands.xml179
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-frequency.xml7
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-tuner.xml26
5 files changed, 221 insertions, 9 deletions
diff --git a/Documentation/DocBook/media/v4l/compat.xml b/Documentation/DocBook/media/v4l/compat.xml
index c9c7d1ca8d6..faa0fd14666 100644
--- a/Documentation/DocBook/media/v4l/compat.xml
+++ b/Documentation/DocBook/media/v4l/compat.xml
@@ -2480,6 +2480,15 @@ that used it. It was originally scheduled for removal in 2.6.35.
2480 </orderedlist> 2480 </orderedlist>
2481 </section> 2481 </section>
2482 2482
2483 <section>
2484 <title>V4L2 in Linux 3.6</title>
2485 <orderedlist>
2486 <listitem>
2487 <para>Added support for frequency band enumerations: &VIDIOC-ENUM-FREQ-BANDS;.</para>
2488 </listitem>
2489 </orderedlist>
2490 </section>
2491
2483 <section id="other"> 2492 <section id="other">
2484 <title>Relation of V4L2 to other Linux multimedia APIs</title> 2493 <title>Relation of V4L2 to other Linux multimedia APIs</title>
2485 2494
@@ -2609,6 +2618,9 @@ ioctls.</para>
2609 <para><link linkend="v4l2-auto-focus-area"><constant> 2618 <para><link linkend="v4l2-auto-focus-area"><constant>
2610 V4L2_CID_AUTO_FOCUS_AREA</constant></link> control.</para> 2619 V4L2_CID_AUTO_FOCUS_AREA</constant></link> control.</para>
2611 </listitem> 2620 </listitem>
2621 <listitem>
2622 <para>Support for frequency band enumeration: &VIDIOC-ENUM-FREQ-BANDS; ioctl.</para>
2623 </listitem>
2612 </itemizedlist> 2624 </itemizedlist>
2613 </section> 2625 </section>
2614 2626
diff --git a/Documentation/DocBook/media/v4l/v4l2.xml b/Documentation/DocBook/media/v4l/v4l2.xml
index 36bafc48e03..eee6908c749 100644
--- a/Documentation/DocBook/media/v4l/v4l2.xml
+++ b/Documentation/DocBook/media/v4l/v4l2.xml
@@ -140,6 +140,11 @@ structs, ioctls) must be noted in more detail in the history chapter
140applications. --> 140applications. -->
141 141
142 <revision> 142 <revision>
143 <revnumber>3.6</revnumber>
144 <date>2012-07-02</date>
145 <authorinitials>hv</authorinitials>
146 <revremark>Added VIDIOC_ENUM_FREQ_BANDS.
147 </revremark>
143 <revnumber>3.5</revnumber> 148 <revnumber>3.5</revnumber>
144 <date>2012-05-07</date> 149 <date>2012-05-07</date>
145 <authorinitials>sa, sn</authorinitials> 150 <authorinitials>sa, sn</authorinitials>
@@ -534,6 +539,7 @@ and discussions on the V4L mailing list.</revremark>
534 &sub-enum-fmt; 539 &sub-enum-fmt;
535 &sub-enum-framesizes; 540 &sub-enum-framesizes;
536 &sub-enum-frameintervals; 541 &sub-enum-frameintervals;
542 &sub-enum-freq-bands;
537 &sub-enuminput; 543 &sub-enuminput;
538 &sub-enumoutput; 544 &sub-enumoutput;
539 &sub-enumstd; 545 &sub-enumstd;
diff --git a/Documentation/DocBook/media/v4l/vidioc-enum-freq-bands.xml b/Documentation/DocBook/media/v4l/vidioc-enum-freq-bands.xml
new file mode 100644
index 00000000000..6541ba0175e
--- /dev/null
+++ b/Documentation/DocBook/media/v4l/vidioc-enum-freq-bands.xml
@@ -0,0 +1,179 @@
1<refentry id="vidioc-enum-freq-bands">
2 <refmeta>
3 <refentrytitle>ioctl VIDIOC_ENUM_FREQ_BANDS</refentrytitle>
4 &manvol;
5 </refmeta>
6
7 <refnamediv>
8 <refname>VIDIOC_ENUM_FREQ_BANDS</refname>
9 <refpurpose>Enumerate supported frequency bands</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_frequency_band
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_ENUM_FREQ_BANDS</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 <para>This is an <link linkend="experimental"> experimental </link>
55 interface and may change in the future.</para>
56 </note>
57
58 <para>Enumerates the frequency bands that a tuner or modulator supports.
59To do this applications initialize the <structfield>tuner</structfield>,
60<structfield>type</structfield> and <structfield>index</structfield> fields,
61and zero out the <structfield>reserved</structfield> array of a &v4l2-frequency-band; and
62call the <constant>VIDIOC_ENUM_FREQ_BANDS</constant> ioctl with a pointer
63to this structure.</para>
64
65 <para>This ioctl is supported if the <constant>V4L2_TUNER_CAP_FREQ_BANDS</constant> capability
66 of the corresponding tuner/modulator is set.</para>
67
68 <table pgwide="1" frame="none" id="v4l2-frequency-band">
69 <title>struct <structname>v4l2_frequency_band</structname></title>
70 <tgroup cols="3">
71 &cs-str;
72 <tbody valign="top">
73 <row>
74 <entry>__u32</entry>
75 <entry><structfield>tuner</structfield></entry>
76 <entry>The tuner or modulator index number. This is the
77same value as in the &v4l2-input; <structfield>tuner</structfield>
78field and the &v4l2-tuner; <structfield>index</structfield> field, or
79the &v4l2-output; <structfield>modulator</structfield> field and the
80&v4l2-modulator; <structfield>index</structfield> field.</entry>
81 </row>
82 <row>
83 <entry>__u32</entry>
84 <entry><structfield>type</structfield></entry>
85 <entry>The tuner type. This is the same value as in the
86&v4l2-tuner; <structfield>type</structfield> field. The type must be set
87to <constant>V4L2_TUNER_RADIO</constant> for <filename>/dev/radioX</filename>
88device nodes, and to <constant>V4L2_TUNER_ANALOG_TV</constant>
89for all others. Set this field to <constant>V4L2_TUNER_RADIO</constant> for
90modulators (currently only radio modulators are supported).
91See <xref linkend="v4l2-tuner-type" /></entry>
92 </row>
93 <row>
94 <entry>__u32</entry>
95 <entry><structfield>index</structfield></entry>
96 <entry>Identifies the frequency band, set by the application.</entry>
97 </row>
98 <row>
99 <entry>__u32</entry>
100 <entry><structfield>capability</structfield></entry>
101 <entry spanname="hspan">The tuner/modulator capability flags for
102this frequency band, see <xref linkend="tuner-capability" />. The <constant>V4L2_TUNER_CAP_LOW</constant>
103capability must be the same for all frequency bands of the selected tuner/modulator.
104So either all bands have that capability set, or none of them have that capability.</entry>
105 </row>
106 <row>
107 <entry>__u32</entry>
108 <entry><structfield>rangelow</structfield></entry>
109 <entry spanname="hspan">The lowest tunable frequency in
110units of 62.5 kHz, or if the <structfield>capability</structfield>
111flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5
112Hz, for this frequency band.</entry>
113 </row>
114 <row>
115 <entry>__u32</entry>
116 <entry><structfield>rangehigh</structfield></entry>
117 <entry spanname="hspan">The highest tunable frequency in
118units of 62.5 kHz, or if the <structfield>capability</structfield>
119flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5
120Hz, for this frequency band.</entry>
121 </row>
122 <row>
123 <entry>__u32</entry>
124 <entry><structfield>modulation</structfield></entry>
125 <entry spanname="hspan">The supported modulation systems of this frequency band.
126 See <xref linkend="band-modulation" />. Note that currently only one
127 modulation system per frequency band is supported. More work will need to
128 be done if multiple modulation systems are possible. Contact the
129 linux-media mailing list (&v4l-ml;) if you need that functionality.</entry>
130 </row>
131 <row>
132 <entry>__u32</entry>
133 <entry><structfield>reserved</structfield>[9]</entry>
134 <entry>Reserved for future extensions. Applications and drivers
135 must set the array to zero.</entry>
136 </row>
137 </tbody>
138 </tgroup>
139 </table>
140
141 <table pgwide="1" frame="none" id="band-modulation">
142 <title>Band Modulation Systems</title>
143 <tgroup cols="3">
144 &cs-def;
145 <tbody valign="top">
146 <row>
147 <entry><constant>V4L2_BAND_MODULATION_VSB</constant></entry>
148 <entry>0x02</entry>
149 <entry>Vestigial Sideband modulation, used for analog TV.</entry>
150 </row>
151 <row>
152 <entry><constant>V4L2_BAND_MODULATION_FM</constant></entry>
153 <entry>0x04</entry>
154 <entry>Frequency Modulation, commonly used for analog radio.</entry>
155 </row>
156 <row>
157 <entry><constant>V4L2_BAND_MODULATION_AM</constant></entry>
158 <entry>0x08</entry>
159 <entry>Amplitude Modulation, commonly used for analog radio.</entry>
160 </row>
161 </tbody>
162 </tgroup>
163 </table>
164 </refsect1>
165
166 <refsect1>
167 &return-value;
168
169 <variablelist>
170 <varlistentry>
171 <term><errorcode>EINVAL</errorcode></term>
172 <listitem>
173 <para>The <structfield>tuner</structfield> or <structfield>index</structfield>
174is out of bounds or the <structfield>type</structfield> field is wrong.</para>
175 </listitem>
176 </varlistentry>
177 </variablelist>
178 </refsect1>
179</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-frequency.xml b/Documentation/DocBook/media/v4l/vidioc-g-frequency.xml
index 40e58a42eb2..c7a1c462e72 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-frequency.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-frequency.xml
@@ -98,11 +98,12 @@ the &v4l2-output; <structfield>modulator</structfield> field and the
98 <entry>__u32</entry> 98 <entry>__u32</entry>
99 <entry><structfield>type</structfield></entry> 99 <entry><structfield>type</structfield></entry>
100 <entry>The tuner type. This is the same value as in the 100 <entry>The tuner type. This is the same value as in the
101&v4l2-tuner; <structfield>type</structfield> field. See The type must be set 101&v4l2-tuner; <structfield>type</structfield> field. The type must be set
102to <constant>V4L2_TUNER_RADIO</constant> for <filename>/dev/radioX</filename> 102to <constant>V4L2_TUNER_RADIO</constant> for <filename>/dev/radioX</filename>
103device nodes, and to <constant>V4L2_TUNER_ANALOG_TV</constant> 103device nodes, and to <constant>V4L2_TUNER_ANALOG_TV</constant>
104for all others. The field is not applicable to modulators, &ie; ignored 104for all others. Set this field to <constant>V4L2_TUNER_RADIO</constant> for
105by drivers. See <xref linkend="v4l2-tuner-type" /></entry> 105modulators (currently only radio modulators are supported).
106See <xref linkend="v4l2-tuner-type" /></entry>
106 </row> 107 </row>
107 <row> 108 <row>
108 <entry>__u32</entry> 109 <entry>__u32</entry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-tuner.xml b/Documentation/DocBook/media/v4l/vidioc-g-tuner.xml
index 95d5371c170..72039512790 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-tuner.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-tuner.xml
@@ -119,10 +119,14 @@ field is not quite clear.--></para></entry>
119<xref linkend="tuner-capability" />. Audio flags indicate the ability 119<xref linkend="tuner-capability" />. Audio flags indicate the ability
120to decode audio subprograms. They will <emphasis>not</emphasis> 120to decode audio subprograms. They will <emphasis>not</emphasis>
121change, for example with the current video standard.</para><para>When 121change, for example with the current video standard.</para><para>When
122the structure refers to a radio tuner only the 122the structure refers to a radio tuner the
123<constant>V4L2_TUNER_CAP_LOW</constant>, 123<constant>V4L2_TUNER_CAP_LANG1</constant>,
124<constant>V4L2_TUNER_CAP_STEREO</constant> and 124<constant>V4L2_TUNER_CAP_LANG2</constant> and
125<constant>V4L2_TUNER_CAP_RDS</constant> flags can be set.</para></entry> 125<constant>V4L2_TUNER_CAP_NORM</constant> flags can't be used.</para>
126<para>If multiple frequency bands are supported, then
127<structfield>capability</structfield> is the union of all
128<structfield>capability></structfield> fields of each &v4l2-frequency-band;.
129</para></entry>
126 </row> 130 </row>
127 <row> 131 <row>
128 <entry>__u32</entry> 132 <entry>__u32</entry>
@@ -130,7 +134,9 @@ the structure refers to a radio tuner only the
130 <entry spanname="hspan">The lowest tunable frequency in 134 <entry spanname="hspan">The lowest tunable frequency in
131units of 62.5 kHz, or if the <structfield>capability</structfield> 135units of 62.5 kHz, or if the <structfield>capability</structfield>
132flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5 136flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5
133Hz.</entry> 137Hz. If multiple frequency bands are supported, then
138<structfield>rangelow</structfield> is the lowest frequency
139of all the frequency bands.</entry>
134 </row> 140 </row>
135 <row> 141 <row>
136 <entry>__u32</entry> 142 <entry>__u32</entry>
@@ -138,7 +144,9 @@ Hz.</entry>
138 <entry spanname="hspan">The highest tunable frequency in 144 <entry spanname="hspan">The highest tunable frequency in
139units of 62.5 kHz, or if the <structfield>capability</structfield> 145units of 62.5 kHz, or if the <structfield>capability</structfield>
140flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5 146flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5
141Hz.</entry> 147Hz. If multiple frequency bands are supported, then
148<structfield>rangehigh</structfield> is the highest frequency
149of all the frequency bands.</entry>
142 </row> 150 </row>
143 <row> 151 <row>
144 <entry>__u32</entry> 152 <entry>__u32</entry>
@@ -340,6 +348,12 @@ radio tuners.</entry>
340 <entry>0x0200</entry> 348 <entry>0x0200</entry>
341 <entry>The RDS data is parsed by the hardware and set via controls.</entry> 349 <entry>The RDS data is parsed by the hardware and set via controls.</entry>
342 </row> 350 </row>
351 <row>
352 <entry><constant>V4L2_TUNER_CAP_FREQ_BANDS</constant></entry>
353 <entry>0x0400</entry>
354 <entry>The &VIDIOC-ENUM-FREQ-BANDS; ioctl can be used to enumerate
355 the available frequency bands.</entry>
356 </row>
343 </tbody> 357 </tbody>
344 </tgroup> 358 </tgroup>
345 </table> 359 </table>