Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linus
[cascardo/linux.git] / Documentation / media / uapi / v4l / vidioc-dv-timings-cap.rst
1 .. -*- coding: utf-8; mode: rst -*-
2
3 .. _VIDIOC_DV_TIMINGS_CAP:
4
5 *********************************************************
6 ioctl VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP
7 *********************************************************
8
9 Name
10 ====
11
12 VIDIOC_DV_TIMINGS_CAP - VIDIOC_SUBDEV_DV_TIMINGS_CAP - The capabilities of the Digital Video receiver/transmitter
13
14
15 Synopsis
16 ========
17
18 .. cpp:function:: int ioctl( int fd, int request, struct v4l2_dv_timings_cap *argp )
19
20
21 Arguments
22 =========
23
24 ``fd``
25     File descriptor returned by :ref:`open() <func-open>`.
26
27 ``request``
28     VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP
29
30 ``argp``
31
32
33 Description
34 ===========
35
36 To query the capabilities of the DV receiver/transmitter applications
37 initialize the ``pad`` field to 0, zero the reserved array of struct
38 :ref:`v4l2_dv_timings_cap <v4l2-dv-timings-cap>` and call the
39 ``VIDIOC_DV_TIMINGS_CAP`` ioctl on a video node and the driver will fill
40 in the structure.
41
42 .. note:: Drivers may return different values after
43    switching the video input or output.
44
45 When implemented by the driver DV capabilities of subdevices can be
46 queried by calling the ``VIDIOC_SUBDEV_DV_TIMINGS_CAP`` ioctl directly
47 on a subdevice node. The capabilities are specific to inputs (for DV
48 receivers) or outputs (for DV transmitters), applications must specify
49 the desired pad number in the struct
50 :ref:`v4l2_dv_timings_cap <v4l2-dv-timings-cap>` ``pad`` field and
51 zero the ``reserved`` array. Attempts to query capabilities on a pad
52 that doesn't support them will return an ``EINVAL`` error code.
53
54
55 .. _v4l2-bt-timings-cap:
56
57 .. flat-table:: struct v4l2_bt_timings_cap
58     :header-rows:  0
59     :stub-columns: 0
60     :widths:       1 1 2
61
62
63     -  .. row 1
64
65        -  __u32
66
67        -  ``min_width``
68
69        -  Minimum width of the active video in pixels.
70
71     -  .. row 2
72
73        -  __u32
74
75        -  ``max_width``
76
77        -  Maximum width of the active video in pixels.
78
79     -  .. row 3
80
81        -  __u32
82
83        -  ``min_height``
84
85        -  Minimum height of the active video in lines.
86
87     -  .. row 4
88
89        -  __u32
90
91        -  ``max_height``
92
93        -  Maximum height of the active video in lines.
94
95     -  .. row 5
96
97        -  __u64
98
99        -  ``min_pixelclock``
100
101        -  Minimum pixelclock frequency in Hz.
102
103     -  .. row 6
104
105        -  __u64
106
107        -  ``max_pixelclock``
108
109        -  Maximum pixelclock frequency in Hz.
110
111     -  .. row 7
112
113        -  __u32
114
115        -  ``standards``
116
117        -  The video standard(s) supported by the hardware. See
118           :ref:`dv-bt-standards` for a list of standards.
119
120     -  .. row 8
121
122        -  __u32
123
124        -  ``capabilities``
125
126        -  Several flags giving more information about the capabilities. See
127           :ref:`dv-bt-cap-capabilities` for a description of the flags.
128
129     -  .. row 9
130
131        -  __u32
132
133        -  ``reserved``\ [16]
134
135        -  Reserved for future extensions. Drivers must set the array to
136           zero.
137
138
139
140 .. _v4l2-dv-timings-cap:
141
142 .. flat-table:: struct v4l2_dv_timings_cap
143     :header-rows:  0
144     :stub-columns: 0
145     :widths:       1 1 2 1
146
147
148     -  .. row 1
149
150        -  __u32
151
152        -  ``type``
153
154        -  Type of DV timings as listed in :ref:`dv-timing-types`.
155
156     -  .. row 2
157
158        -  __u32
159
160        -  ``pad``
161
162        -  Pad number as reported by the media controller API. This field is
163           only used when operating on a subdevice node. When operating on a
164           video node applications must set this field to zero.
165
166     -  .. row 3
167
168        -  __u32
169
170        -  ``reserved``\ [2]
171
172        -  Reserved for future extensions. Drivers and applications must set
173           the array to zero.
174
175     -  .. row 4
176
177        -  union
178
179        -
180        -
181
182     -  .. row 5
183
184        -
185        -  struct :ref:`v4l2_bt_timings_cap <v4l2-bt-timings-cap>`
186
187        -  ``bt``
188
189        -  BT.656/1120 timings capabilities of the hardware.
190
191     -  .. row 6
192
193        -
194        -  __u32
195
196        -  ``raw_data``\ [32]
197
198        -
199
200
201
202 .. _dv-bt-cap-capabilities:
203
204 .. flat-table:: DV BT Timing capabilities
205     :header-rows:  0
206     :stub-columns: 0
207
208
209     -  .. row 1
210
211        -  Flag
212
213        -  Description
214
215     -  .. row 2
216
217        -
218        -
219
220     -  .. row 3
221
222        -  ``V4L2_DV_BT_CAP_INTERLACED``
223
224        -  Interlaced formats are supported.
225
226     -  .. row 4
227
228        -  ``V4L2_DV_BT_CAP_PROGRESSIVE``
229
230        -  Progressive formats are supported.
231
232     -  .. row 5
233
234        -  ``V4L2_DV_BT_CAP_REDUCED_BLANKING``
235
236        -  CVT/GTF specific: the timings can make use of reduced blanking
237           (CVT) or the 'Secondary GTF' curve (GTF).
238
239     -  .. row 6
240
241        -  ``V4L2_DV_BT_CAP_CUSTOM``
242
243        -  Can support non-standard timings, i.e. timings not belonging to
244           the standards set in the ``standards`` field.
245
246
247 Return Value
248 ============
249
250 On success 0 is returned, on error -1 and the ``errno`` variable is set
251 appropriately. The generic error codes are described at the
252 :ref:`Generic Error Codes <gen-errors>` chapter.