xtensa: disable MMU initialization option on MMUv2 cores
[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     <para>While some DV receivers or transmitters support a wide range of timings, others
53 support only a limited number of timings. With this ioctl applications can enumerate a list
54 of known supported timings. Call &VIDIOC-DV-TIMINGS-CAP; to check if it also supports other
55 standards or even custom timings that are not in this list.</para>
56
57     <para>To query the available timings, applications initialize the
58 <structfield>index</structfield> field, set the <structfield>pad</structfield> field to 0,
59 zero the reserved array of &v4l2-enum-dv-timings; and call the
60 <constant>VIDIOC_ENUM_DV_TIMINGS</constant> ioctl on a video node with a
61 pointer to this structure. Drivers fill the rest of the structure or return an
62 &EINVAL; when the index is out of bounds. To enumerate all supported DV timings,
63 applications shall begin at index zero, incrementing by one until the
64 driver returns <errorcode>EINVAL</errorcode>. Note that drivers may enumerate a
65 different set of DV timings after switching the video input or
66 output.</para>
67
68     <para>When implemented by the driver DV timings of subdevices can be queried
69 by calling the <constant>VIDIOC_SUBDEV_ENUM_DV_TIMINGS</constant> ioctl directly
70 on a subdevice node. The DV timings are specific to inputs (for DV receivers) or
71 outputs (for DV transmitters), applications must specify the desired pad number
72 in the &v4l2-enum-dv-timings; <structfield>pad</structfield> field. Attempts to
73 enumerate timings on a pad that doesn't support them will return an &EINVAL;.</para>
74
75     <table pgwide="1" frame="none" id="v4l2-enum-dv-timings">
76       <title>struct <structname>v4l2_enum_dv_timings</structname></title>
77       <tgroup cols="3">
78         &cs-str;
79         <tbody valign="top">
80           <row>
81             <entry>__u32</entry>
82             <entry><structfield>index</structfield></entry>
83             <entry>Number of the DV timings, set by the
84 application.</entry>
85           </row>
86           <row>
87             <entry>__u32</entry>
88             <entry><structfield>pad</structfield></entry>
89             <entry>Pad number as reported by the media controller API. This field
90             is only used when operating on a subdevice node. When operating on a
91             video node applications must set this field to zero.</entry>
92           </row>
93           <row>
94             <entry>__u32</entry>
95             <entry><structfield>reserved</structfield>[2]</entry>
96             <entry>Reserved for future extensions. Drivers and applications must
97             set the array to zero.</entry>
98           </row>
99           <row>
100             <entry>&v4l2-dv-timings;</entry>
101             <entry><structfield>timings</structfield></entry>
102             <entry>The timings.</entry>
103           </row>
104         </tbody>
105       </tgroup>
106     </table>
107   </refsect1>
108
109   <refsect1>
110     &return-value;
111
112     <variablelist>
113       <varlistentry>
114         <term><errorcode>EINVAL</errorcode></term>
115         <listitem>
116           <para>The &v4l2-enum-dv-timings; <structfield>index</structfield>
117 is out of bounds or the <structfield>pad</structfield> number is invalid.</para>
118         </listitem>
119       </varlistentry>
120       <varlistentry>
121         <term><errorcode>ENODATA</errorcode></term>
122         <listitem>
123           <para>Digital video presets are not supported for this input or output.</para>
124         </listitem>
125       </varlistentry>
126     </variablelist>
127   </refsect1>
128 </refentry>