Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux...
[sfrench/cifs-2.6.git] / Documentation / DocBook / media / v4l / vidioc-enum-dv-timings.xml
1 <refentry id="vidioc-enum-dv-timings">
2   <refmeta>
3     <refentrytitle>ioctl VIDIOC_ENUM_DV_TIMINGS, VIDIOC_SUBDEV_ENUM_DV_TIMINGS</refentrytitle>
4     &manvol;
5   </refmeta>
6
7   <refnamediv>
8     <refname>VIDIOC_ENUM_DV_TIMINGS</refname>
9     <refname>VIDIOC_SUBDEV_ENUM_DV_TIMINGS</refname>
10     <refpurpose>Enumerate supported Digital Video timings</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_enum_dv_timings *<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_DV_TIMINGS, VIDIOC_SUBDEV_ENUM_DV_TIMINGS</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>While some DV receivers or transmitters support a wide range of timings, others
59 support only a limited number of timings. With this ioctl applications can enumerate a list
60 of known supported timings. Call &VIDIOC-DV-TIMINGS-CAP; to check if it also supports other
61 standards or even custom timings that are not in this list.</para>
62
63     <para>To query the available timings, applications initialize the
64 <structfield>index</structfield> field and zero the reserved array of &v4l2-enum-dv-timings;
65 and call the <constant>VIDIOC_ENUM_DV_TIMINGS</constant> ioctl on a video node with a
66 pointer to this structure. Drivers fill the rest of the structure or return an
67 &EINVAL; when the index is out of bounds. To enumerate all supported DV timings,
68 applications shall begin at index zero, incrementing by one until the
69 driver returns <errorcode>EINVAL</errorcode>. Note that drivers may enumerate a
70 different set of DV timings after switching the video input or
71 output.</para>
72
73     <para>When implemented by the driver DV timings of subdevices can be queried
74 by calling the <constant>VIDIOC_SUBDEV_ENUM_DV_TIMINGS</constant> ioctl directly
75 on a subdevice node. The DV timings are specific to inputs (for DV receivers) or
76 outputs (for DV transmitters), applications must specify the desired pad number
77 in the &v4l2-enum-dv-timings; <structfield>pad</structfield> field. Attempts to
78 enumerate timings on a pad that doesn't support them will return an &EINVAL;.</para>
79
80     <table pgwide="1" frame="none" id="v4l2-enum-dv-timings">
81       <title>struct <structname>v4l2_enum_dv_timings</structname></title>
82       <tgroup cols="3">
83         &cs-str;
84         <tbody valign="top">
85           <row>
86             <entry>__u32</entry>
87             <entry><structfield>index</structfield></entry>
88             <entry>Number of the DV timings, set by the
89 application.</entry>
90           </row>
91           <row>
92             <entry>__u32</entry>
93             <entry><structfield>pad</structfield></entry>
94             <entry>Pad number as reported by the media controller API. This field
95             is only used when operating on a subdevice node. When operating on a
96             video node applications must set this field to zero.</entry>
97           </row>
98           <row>
99             <entry>__u32</entry>
100             <entry><structfield>reserved</structfield>[2]</entry>
101             <entry>Reserved for future extensions. Drivers and applications must
102             set the array to zero.</entry>
103           </row>
104           <row>
105             <entry>&v4l2-dv-timings;</entry>
106             <entry><structfield>timings</structfield></entry>
107             <entry>The timings.</entry>
108           </row>
109         </tbody>
110       </tgroup>
111     </table>
112   </refsect1>
113
114   <refsect1>
115     &return-value;
116
117     <variablelist>
118       <varlistentry>
119         <term><errorcode>EINVAL</errorcode></term>
120         <listitem>
121           <para>The &v4l2-enum-dv-timings; <structfield>index</structfield>
122 is out of bounds or the <structfield>pad</structfield> number is invalid.</para>
123         </listitem>
124       </varlistentry>
125       <varlistentry>
126         <term><errorcode>ENODATA</errorcode></term>
127         <listitem>
128           <para>Digital video presets are not supported for this input or output.</para>
129         </listitem>
130       </varlistentry>
131     </variablelist>
132   </refsect1>
133 </refentry>
134
135 <!--
136 Local Variables:
137 mode: sgml
138 sgml-parent-document: "v4l2.sgml"
139 indent-tabs-mode: nil
140 End:
141 -->