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