Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linus
[sfrench/cifs-2.6.git] / Documentation / media / uapi / dvb / fe-get-info.rst
1 .. -*- coding: utf-8; mode: rst -*-
2
3 .. _FE_GET_INFO:
4
5 *****************
6 ioctl FE_GET_INFO
7 *****************
8
9 Name
10 ====
11
12 FE_GET_INFO - Query DVB frontend capabilities and returns information about the - front-end. This call only requires read-only access to the device
13
14
15 Synopsis
16 ========
17
18 .. cpp:function:: int ioctl( int fd, int request, struct dvb_frontend_info *argp )
19
20
21 Arguments
22 =========
23
24 ``fd``
25     File descriptor returned by :ref:`open() <frontend_f_open>`.
26
27 ``request``
28     FE_GET_INFO
29
30 ``argp``
31     pointer to struct struct
32     :ref:`dvb_frontend_info <dvb-frontend-info>`
33
34
35 Description
36 ===========
37
38 All DVB frontend devices support the ``FE_GET_INFO`` ioctl. It is used
39 to identify kernel devices compatible with this specification and to
40 obtain information about driver and hardware capabilities. The ioctl
41 takes a pointer to dvb_frontend_info which is filled by the driver.
42 When the driver is not compatible with this specification the ioctl
43 returns an error.
44
45 .. _dvb-frontend-info:
46
47 struct dvb_frontend_info
48 ========================
49
50 .. flat-table:: struct dvb_frontend_info
51     :header-rows:  0
52     :stub-columns: 0
53     :widths:       1 1 2
54
55
56     -  .. row 1
57
58        -  char
59
60        -  name[128]
61
62        -  Name of the frontend
63
64     -  .. row 2
65
66        -  fe_type_t
67
68        -  type
69
70        -  **DEPRECATED**. DVBv3 type. Should not be used on modern programs,
71           as a frontend may have more than one type. So, the DVBv5 API
72           should be used instead to enumerate and select the frontend type.
73
74     -  .. row 3
75
76        -  uint32_t
77
78        -  frequency_min
79
80        -  Minimal frequency supported by the frontend
81
82     -  .. row 4
83
84        -  uint32_t
85
86        -  frequency_max
87
88        -  Maximal frequency supported by the frontend
89
90     -  .. row 5
91
92        -  uint32_t
93
94        -  frequency_stepsize
95
96        -  Frequency step - all frequencies are multiple of this value
97
98     -  .. row 6
99
100        -  uint32_t
101
102        -  frequency_tolerance
103
104        -  Tolerance of the frequency
105
106     -  .. row 7
107
108        -  uint32_t
109
110        -  symbol_rate_min
111
112        -  Minimal symbol rate (for Cable/Satellite systems), in bauds
113
114     -  .. row 8
115
116        -  uint32_t
117
118        -  symbol_rate_max
119
120        -  Maximal symbol rate (for Cable/Satellite systems), in bauds
121
122     -  .. row 9
123
124        -  uint32_t
125
126        -  symbol_rate_tolerance
127
128        -  Maximal symbol rate tolerance, in ppm
129
130     -  .. row 10
131
132        -  uint32_t
133
134        -  notifier_delay
135
136        -  **DEPRECATED**. Not used by any driver.
137
138     -  .. row 11
139
140        -  enum :ref:`fe_caps <fe-caps>`
141
142        -  caps
143
144        -  Capabilities supported by the frontend
145
146
147 .. note:: The frequencies are specified in Hz for Terrestrial and Cable
148    systems. They're specified in kHz for Satellite systems
149
150
151 .. _fe-caps-t:
152
153 frontend capabilities
154 =====================
155
156 Capabilities describe what a frontend can do. Some capabilities are
157 supported only on some specific frontend types.
158
159
160 .. _fe-caps:
161
162 .. flat-table:: enum fe_caps
163     :header-rows:  1
164     :stub-columns: 0
165
166
167     -  .. row 1
168
169        -  ID
170
171        -  Description
172
173     -  .. row 2
174
175        -  .. _FE-IS-STUPID:
176
177           ``FE_IS_STUPID``
178
179        -  There's something wrong at the frontend, and it can't report its
180           capabilities
181
182     -  .. row 3
183
184        -  .. _FE-CAN-INVERSION-AUTO:
185
186           ``FE_CAN_INVERSION_AUTO``
187
188        -  The frontend is capable of auto-detecting inversion
189
190     -  .. row 4
191
192        -  .. _FE-CAN-FEC-1-2:
193
194           ``FE_CAN_FEC_1_2``
195
196        -  The frontend supports FEC 1/2
197
198     -  .. row 5
199
200        -  .. _FE-CAN-FEC-2-3:
201
202           ``FE_CAN_FEC_2_3``
203
204        -  The frontend supports FEC 2/3
205
206     -  .. row 6
207
208        -  .. _FE-CAN-FEC-3-4:
209
210           ``FE_CAN_FEC_3_4``
211
212        -  The frontend supports FEC 3/4
213
214     -  .. row 7
215
216        -  .. _FE-CAN-FEC-4-5:
217
218           ``FE_CAN_FEC_4_5``
219
220        -  The frontend supports FEC 4/5
221
222     -  .. row 8
223
224        -  .. _FE-CAN-FEC-5-6:
225
226           ``FE_CAN_FEC_5_6``
227
228        -  The frontend supports FEC 5/6
229
230     -  .. row 9
231
232        -  .. _FE-CAN-FEC-6-7:
233
234           ``FE_CAN_FEC_6_7``
235
236        -  The frontend supports FEC 6/7
237
238     -  .. row 10
239
240        -  .. _FE-CAN-FEC-7-8:
241
242           ``FE_CAN_FEC_7_8``
243
244        -  The frontend supports FEC 7/8
245
246     -  .. row 11
247
248        -  .. _FE-CAN-FEC-8-9:
249
250           ``FE_CAN_FEC_8_9``
251
252        -  The frontend supports FEC 8/9
253
254     -  .. row 12
255
256        -  .. _FE-CAN-FEC-AUTO:
257
258           ``FE_CAN_FEC_AUTO``
259
260        -  The frontend can autodetect FEC.
261
262     -  .. row 13
263
264        -  .. _FE-CAN-QPSK:
265
266           ``FE_CAN_QPSK``
267
268        -  The frontend supports QPSK modulation
269
270     -  .. row 14
271
272        -  .. _FE-CAN-QAM-16:
273
274           ``FE_CAN_QAM_16``
275
276        -  The frontend supports 16-QAM modulation
277
278     -  .. row 15
279
280        -  .. _FE-CAN-QAM-32:
281
282           ``FE_CAN_QAM_32``
283
284        -  The frontend supports 32-QAM modulation
285
286     -  .. row 16
287
288        -  .. _FE-CAN-QAM-64:
289
290           ``FE_CAN_QAM_64``
291
292        -  The frontend supports 64-QAM modulation
293
294     -  .. row 17
295
296        -  .. _FE-CAN-QAM-128:
297
298           ``FE_CAN_QAM_128``
299
300        -  The frontend supports 128-QAM modulation
301
302     -  .. row 18
303
304        -  .. _FE-CAN-QAM-256:
305
306           ``FE_CAN_QAM_256``
307
308        -  The frontend supports 256-QAM modulation
309
310     -  .. row 19
311
312        -  .. _FE-CAN-QAM-AUTO:
313
314           ``FE_CAN_QAM_AUTO``
315
316        -  The frontend can autodetect modulation
317
318     -  .. row 20
319
320        -  .. _FE-CAN-TRANSMISSION-MODE-AUTO:
321
322           ``FE_CAN_TRANSMISSION_MODE_AUTO``
323
324        -  The frontend can autodetect the transmission mode
325
326     -  .. row 21
327
328        -  .. _FE-CAN-BANDWIDTH-AUTO:
329
330           ``FE_CAN_BANDWIDTH_AUTO``
331
332        -  The frontend can autodetect the bandwidth
333
334     -  .. row 22
335
336        -  .. _FE-CAN-GUARD-INTERVAL-AUTO:
337
338           ``FE_CAN_GUARD_INTERVAL_AUTO``
339
340        -  The frontend can autodetect the guard interval
341
342     -  .. row 23
343
344        -  .. _FE-CAN-HIERARCHY-AUTO:
345
346           ``FE_CAN_HIERARCHY_AUTO``
347
348        -  The frontend can autodetect hierarch
349
350     -  .. row 24
351
352        -  .. _FE-CAN-8VSB:
353
354           ``FE_CAN_8VSB``
355
356        -  The frontend supports 8-VSB modulation
357
358     -  .. row 25
359
360        -  .. _FE-CAN-16VSB:
361
362           ``FE_CAN_16VSB``
363
364        -  The frontend supports 16-VSB modulation
365
366     -  .. row 26
367
368        -  .. _FE-HAS-EXTENDED-CAPS:
369
370           ``FE_HAS_EXTENDED_CAPS``
371
372        -  Currently, unused
373
374     -  .. row 27
375
376        -  .. _FE-CAN-MULTISTREAM:
377
378           ``FE_CAN_MULTISTREAM``
379
380        -  The frontend supports multistream filtering
381
382     -  .. row 28
383
384        -  .. _FE-CAN-TURBO-FEC:
385
386           ``FE_CAN_TURBO_FEC``
387
388        -  The frontend supports turbo FEC modulation
389
390     -  .. row 29
391
392        -  .. _FE-CAN-2G-MODULATION:
393
394           ``FE_CAN_2G_MODULATION``
395
396        -  The frontend supports "2nd generation modulation" (DVB-S2/T2)>
397
398     -  .. row 30
399
400        -  .. _FE-NEEDS-BENDING:
401
402           ``FE_NEEDS_BENDING``
403
404        -  Not supported anymore, don't use it
405
406     -  .. row 31
407
408        -  .. _FE-CAN-RECOVER:
409
410           ``FE_CAN_RECOVER``
411
412        -  The frontend can recover from a cable unplug automatically
413
414     -  .. row 32
415
416        -  .. _FE-CAN-MUTE-TS:
417
418           ``FE_CAN_MUTE_TS``
419
420        -  The frontend can stop spurious TS data output
421
422
423 Return Value
424 ============
425
426 On success 0 is returned, on error -1 and the ``errno`` variable is set
427 appropriately. The generic error codes are described at the
428 :ref:`Generic Error Codes <gen-errors>` chapter.