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