[media] docs-rst: Convert DVB uAPI to use C function references
[linux-2.6-block.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 .. c:function:: int ioctl( int fd, FE_GET_INFO, struct dvb_frontend_info *argp )
19     :name: FE_GET_INFO
20
21
22 Arguments
23 =========
24
25 ``fd``
26     File descriptor returned by :ref:`open() <frontend_f_open>`.
27
28 ``argp``
29     pointer to struct struct
30     :ref:`dvb_frontend_info <dvb-frontend-info>`
31
32
33 Description
34 ===========
35
36 All DVB frontend devices support the ``FE_GET_INFO`` ioctl. It is used
37 to identify kernel devices compatible with this specification and to
38 obtain information about driver and hardware capabilities. The ioctl
39 takes a pointer to dvb_frontend_info which is filled by the driver.
40 When the driver is not compatible with this specification the ioctl
41 returns an error.
42
43 .. _dvb-frontend-info:
44
45 struct dvb_frontend_info
46 ========================
47
48 .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
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::
148
149    The frequencies are specified in Hz for Terrestrial and Cable
150    systems. They're specified in kHz for Satellite systems
151
152
153 .. _fe-caps-t:
154
155 frontend capabilities
156 =====================
157
158 Capabilities describe what a frontend can do. Some capabilities are
159 supported only on some specific frontend types.
160
161 .. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
162
163 .. _fe-caps:
164
165 .. flat-table:: enum fe_caps
166     :header-rows:  1
167     :stub-columns: 0
168
169
170     -  .. row 1
171
172        -  ID
173
174        -  Description
175
176     -  .. row 2
177
178        -  .. _FE-IS-STUPID:
179
180           ``FE_IS_STUPID``
181
182        -  There's something wrong at the frontend, and it can't report its
183           capabilities
184
185     -  .. row 3
186
187        -  .. _FE-CAN-INVERSION-AUTO:
188
189           ``FE_CAN_INVERSION_AUTO``
190
191        -  The frontend is capable of auto-detecting inversion
192
193     -  .. row 4
194
195        -  .. _FE-CAN-FEC-1-2:
196
197           ``FE_CAN_FEC_1_2``
198
199        -  The frontend supports FEC 1/2
200
201     -  .. row 5
202
203        -  .. _FE-CAN-FEC-2-3:
204
205           ``FE_CAN_FEC_2_3``
206
207        -  The frontend supports FEC 2/3
208
209     -  .. row 6
210
211        -  .. _FE-CAN-FEC-3-4:
212
213           ``FE_CAN_FEC_3_4``
214
215        -  The frontend supports FEC 3/4
216
217     -  .. row 7
218
219        -  .. _FE-CAN-FEC-4-5:
220
221           ``FE_CAN_FEC_4_5``
222
223        -  The frontend supports FEC 4/5
224
225     -  .. row 8
226
227        -  .. _FE-CAN-FEC-5-6:
228
229           ``FE_CAN_FEC_5_6``
230
231        -  The frontend supports FEC 5/6
232
233     -  .. row 9
234
235        -  .. _FE-CAN-FEC-6-7:
236
237           ``FE_CAN_FEC_6_7``
238
239        -  The frontend supports FEC 6/7
240
241     -  .. row 10
242
243        -  .. _FE-CAN-FEC-7-8:
244
245           ``FE_CAN_FEC_7_8``
246
247        -  The frontend supports FEC 7/8
248
249     -  .. row 11
250
251        -  .. _FE-CAN-FEC-8-9:
252
253           ``FE_CAN_FEC_8_9``
254
255        -  The frontend supports FEC 8/9
256
257     -  .. row 12
258
259        -  .. _FE-CAN-FEC-AUTO:
260
261           ``FE_CAN_FEC_AUTO``
262
263        -  The frontend can autodetect FEC.
264
265     -  .. row 13
266
267        -  .. _FE-CAN-QPSK:
268
269           ``FE_CAN_QPSK``
270
271        -  The frontend supports QPSK modulation
272
273     -  .. row 14
274
275        -  .. _FE-CAN-QAM-16:
276
277           ``FE_CAN_QAM_16``
278
279        -  The frontend supports 16-QAM modulation
280
281     -  .. row 15
282
283        -  .. _FE-CAN-QAM-32:
284
285           ``FE_CAN_QAM_32``
286
287        -  The frontend supports 32-QAM modulation
288
289     -  .. row 16
290
291        -  .. _FE-CAN-QAM-64:
292
293           ``FE_CAN_QAM_64``
294
295        -  The frontend supports 64-QAM modulation
296
297     -  .. row 17
298
299        -  .. _FE-CAN-QAM-128:
300
301           ``FE_CAN_QAM_128``
302
303        -  The frontend supports 128-QAM modulation
304
305     -  .. row 18
306
307        -  .. _FE-CAN-QAM-256:
308
309           ``FE_CAN_QAM_256``
310
311        -  The frontend supports 256-QAM modulation
312
313     -  .. row 19
314
315        -  .. _FE-CAN-QAM-AUTO:
316
317           ``FE_CAN_QAM_AUTO``
318
319        -  The frontend can autodetect modulation
320
321     -  .. row 20
322
323        -  .. _FE-CAN-TRANSMISSION-MODE-AUTO:
324
325           ``FE_CAN_TRANSMISSION_MODE_AUTO``
326
327        -  The frontend can autodetect the transmission mode
328
329     -  .. row 21
330
331        -  .. _FE-CAN-BANDWIDTH-AUTO:
332
333           ``FE_CAN_BANDWIDTH_AUTO``
334
335        -  The frontend can autodetect the bandwidth
336
337     -  .. row 22
338
339        -  .. _FE-CAN-GUARD-INTERVAL-AUTO:
340
341           ``FE_CAN_GUARD_INTERVAL_AUTO``
342
343        -  The frontend can autodetect the guard interval
344
345     -  .. row 23
346
347        -  .. _FE-CAN-HIERARCHY-AUTO:
348
349           ``FE_CAN_HIERARCHY_AUTO``
350
351        -  The frontend can autodetect hierarch
352
353     -  .. row 24
354
355        -  .. _FE-CAN-8VSB:
356
357           ``FE_CAN_8VSB``
358
359        -  The frontend supports 8-VSB modulation
360
361     -  .. row 25
362
363        -  .. _FE-CAN-16VSB:
364
365           ``FE_CAN_16VSB``
366
367        -  The frontend supports 16-VSB modulation
368
369     -  .. row 26
370
371        -  .. _FE-HAS-EXTENDED-CAPS:
372
373           ``FE_HAS_EXTENDED_CAPS``
374
375        -  Currently, unused
376
377     -  .. row 27
378
379        -  .. _FE-CAN-MULTISTREAM:
380
381           ``FE_CAN_MULTISTREAM``
382
383        -  The frontend supports multistream filtering
384
385     -  .. row 28
386
387        -  .. _FE-CAN-TURBO-FEC:
388
389           ``FE_CAN_TURBO_FEC``
390
391        -  The frontend supports turbo FEC modulation
392
393     -  .. row 29
394
395        -  .. _FE-CAN-2G-MODULATION:
396
397           ``FE_CAN_2G_MODULATION``
398
399        -  The frontend supports "2nd generation modulation" (DVB-S2/T2)>
400
401     -  .. row 30
402
403        -  .. _FE-NEEDS-BENDING:
404
405           ``FE_NEEDS_BENDING``
406
407        -  Not supported anymore, don't use it
408
409     -  .. row 31
410
411        -  .. _FE-CAN-RECOVER:
412
413           ``FE_CAN_RECOVER``
414
415        -  The frontend can recover from a cable unplug automatically
416
417     -  .. row 32
418
419        -  .. _FE-CAN-MUTE-TS:
420
421           ``FE_CAN_MUTE_TS``
422
423        -  The frontend can stop spurious TS data output
424
425
426 Return Value
427 ============
428
429 On success 0 is returned, on error -1 and the ``errno`` variable is set
430 appropriately. The generic error codes are described at the
431 :ref:`Generic Error Codes <gen-errors>` chapter.