Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
[pandora-kernel.git] / Documentation / DocBook / v4l / vidioc-g-dv-timings.xml
1 <refentry id="vidioc-g-dv-timings">
2   <refmeta>
3     <refentrytitle>ioctl VIDIOC_G_DV_TIMINGS, VIDIOC_S_DV_TIMINGS</refentrytitle>
4     &manvol;
5   </refmeta>
6
7   <refnamediv>
8     <refname>VIDIOC_G_DV_TIMINGS</refname>
9     <refname>VIDIOC_S_DV_TIMINGS</refname>
10     <refpurpose>Get or set custom DV timings for 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>&v4l2-dv-timings;
20 *<parameter>argp</parameter></paramdef>
21       </funcprototype>
22     </funcsynopsis>
23   </refsynopsisdiv>
24
25   <refsect1>
26     <title>Arguments</title>
27
28     <variablelist>
29       <varlistentry>
30         <term><parameter>fd</parameter></term>
31         <listitem>
32           <para>&fd;</para>
33         </listitem>
34       </varlistentry>
35       <varlistentry>
36         <term><parameter>request</parameter></term>
37         <listitem>
38           <para>VIDIOC_G_DV_TIMINGS, VIDIOC_S_DV_TIMINGS</para>
39         </listitem>
40       </varlistentry>
41       <varlistentry>
42         <term><parameter>argp</parameter></term>
43         <listitem>
44           <para></para>
45         </listitem>
46       </varlistentry>
47     </variablelist>
48   </refsect1>
49
50   <refsect1>
51     <title>Description</title>
52     <para>To set custom DV timings for the input or output, applications use the
53 <constant>VIDIOC_S_DV_TIMINGS</constant> ioctl and to get the current custom timings,
54 applications use the <constant>VIDIOC_G_DV_TIMINGS</constant> ioctl. The detailed timing
55 information is filled in using the structure &v4l2-dv-timings;. These ioctls take
56 a pointer to the &v4l2-dv-timings; structure as argument. If the ioctl is not supported
57 or the timing values are not correct, the driver returns &EINVAL;.</para>
58   </refsect1>
59
60   <refsect1>
61     &return-value;
62
63     <variablelist>
64       <varlistentry>
65         <term><errorcode>EINVAL</errorcode></term>
66         <listitem>
67           <para>This ioctl is not supported, or the
68 <constant>VIDIOC_S_DV_TIMINGS</constant> parameter was unsuitable.</para>
69         </listitem>
70       </varlistentry>
71       <varlistentry>
72         <term><errorcode>EBUSY</errorcode></term>
73         <listitem>
74           <para>The device is busy and therefore can not change the timings.</para>
75         </listitem>
76       </varlistentry>
77     </variablelist>
78
79     <table pgwide="1" frame="none" id="v4l2-bt-timings">
80       <title>struct <structname>v4l2_bt_timings</structname></title>
81       <tgroup cols="3">
82         &cs-str;
83         <tbody valign="top">
84           <row>
85             <entry>__u32</entry>
86             <entry><structfield>width</structfield></entry>
87             <entry>Width of the active video in pixels</entry>
88           </row>
89           <row>
90             <entry>__u32</entry>
91             <entry><structfield>height</structfield></entry>
92             <entry>Height of the active video in lines</entry>
93           </row>
94           <row>
95             <entry>__u32</entry>
96             <entry><structfield>interlaced</structfield></entry>
97             <entry>Progressive (0) or interlaced (1)</entry>
98           </row>
99           <row>
100             <entry>__u32</entry>
101             <entry><structfield>polarities</structfield></entry>
102             <entry>This is a bit mask that defines polarities of sync signals.
103 bit 0 (V4L2_DV_VSYNC_POS_POL) is for vertical sync polarity and bit 1 (V4L2_DV_HSYNC_POS_POL) is for horizontal sync polarity. If the bit is set
104 (1) it is positive polarity and if is cleared (0), it is negative polarity.</entry>
105           </row>
106           <row>
107             <entry>__u64</entry>
108             <entry><structfield>pixelclock</structfield></entry>
109             <entry>Pixel clock in Hz. Ex. 74.25MHz->74250000</entry>
110           </row>
111           <row>
112             <entry>__u32</entry>
113             <entry><structfield>hfrontporch</structfield></entry>
114             <entry>Horizontal front porch in pixels</entry>
115           </row>
116           <row>
117             <entry>__u32</entry>
118             <entry><structfield>hsync</structfield></entry>
119             <entry>Horizontal sync length in pixels</entry>
120           </row>
121           <row>
122             <entry>__u32</entry>
123             <entry><structfield>hbackporch</structfield></entry>
124             <entry>Horizontal back porch in pixels</entry>
125           </row>
126           <row>
127             <entry>__u32</entry>
128             <entry><structfield>vfrontporch</structfield></entry>
129             <entry>Vertical front porch in lines</entry>
130           </row>
131           <row>
132             <entry>__u32</entry>
133             <entry><structfield>vsync</structfield></entry>
134             <entry>Vertical sync length in lines</entry>
135           </row>
136           <row>
137             <entry>__u32</entry>
138             <entry><structfield>vbackporch</structfield></entry>
139             <entry>Vertical back porch in lines</entry>
140           </row>
141           <row>
142             <entry>__u32</entry>
143             <entry><structfield>il_vfrontporch</structfield></entry>
144             <entry>Vertical front porch in lines for bottom field of interlaced field formats</entry>
145           </row>
146           <row>
147             <entry>__u32</entry>
148             <entry><structfield>il_vsync</structfield></entry>
149             <entry>Vertical sync length in lines for bottom field of interlaced field formats</entry>
150           </row>
151           <row>
152             <entry>__u32</entry>
153             <entry><structfield>il_vbackporch</structfield></entry>
154             <entry>Vertical back porch in lines for bottom field of interlaced field formats</entry>
155           </row>
156         </tbody>
157       </tgroup>
158     </table>
159
160     <table pgwide="1" frame="none" id="v4l2-dv-timings">
161       <title>struct <structname>v4l2_dv_timings</structname></title>
162       <tgroup cols="4">
163         &cs-str;
164         <tbody valign="top">
165           <row>
166             <entry>__u32</entry>
167             <entry><structfield>type</structfield></entry>
168             <entry></entry>
169             <entry>Type of DV timings as listed in <xref linkend="dv-timing-types"/>.</entry>
170           </row>
171           <row>
172             <entry>union</entry>
173             <entry><structfield></structfield></entry>
174             <entry></entry>
175           </row>
176           <row>
177             <entry></entry>
178             <entry>&v4l2-bt-timings;</entry>
179             <entry><structfield>bt</structfield></entry>
180             <entry>Timings defined by BT.656/1120 specifications</entry>
181           </row>
182           <row>
183             <entry></entry>
184             <entry>__u32</entry>
185             <entry><structfield>reserved</structfield>[32]</entry>
186             <entry></entry>
187           </row>
188         </tbody>
189       </tgroup>
190     </table>
191
192     <table pgwide="1" frame="none" id="dv-timing-types">
193       <title>DV Timing types</title>
194       <tgroup cols="3">
195         &cs-str;
196         <tbody valign="top">
197           <row>
198             <entry>Timing type</entry>
199             <entry>value</entry>
200             <entry>Description</entry>
201           </row>
202           <row>
203             <entry></entry>
204             <entry></entry>
205             <entry></entry>
206           </row>
207           <row>
208             <entry>V4L2_DV_BT_656_1120</entry>
209             <entry>0</entry>
210             <entry>BT.656/1120 timings</entry>
211           </row>
212         </tbody>
213       </tgroup>
214     </table>
215   </refsect1>
216 </refentry>
217
218 <!--
219 Local Variables:
220 mode: sgml
221 sgml-parent-document: "v4l2.sgml"
222 indent-tabs-mode: nil
223 End:
224 -->