Linux 4.8.3
[linux/fpc-iii.git] / Documentation / media / uapi / dvb / fe-get-info.rst
blobbb6c32e47ce8052a524acd4fb036534687ebcb21
1 .. -*- coding: utf-8; mode: rst -*-
3 .. _FE_GET_INFO:
5 *****************
6 ioctl FE_GET_INFO
7 *****************
9 Name
10 ====
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
15 Synopsis
16 ========
18 .. cpp:function:: int ioctl( int fd, int request, struct dvb_frontend_info *argp )
21 Arguments
22 =========
24 ``fd``
25     File descriptor returned by :ref:`open() <frontend_f_open>`.
27 ``request``
28     FE_GET_INFO
30 ``argp``
31     pointer to struct struct
32     :ref:`dvb_frontend_info <dvb-frontend-info>`
35 Description
36 ===========
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.
45 .. _dvb-frontend-info:
47 struct dvb_frontend_info
48 ========================
50 .. flat-table:: struct dvb_frontend_info
51     :header-rows:  0
52     :stub-columns: 0
53     :widths:       1 1 2
56     -  .. row 1
58        -  char
60        -  name[128]
62        -  Name of the frontend
64     -  .. row 2
66        -  fe_type_t
68        -  type
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.
74     -  .. row 3
76        -  uint32_t
78        -  frequency_min
80        -  Minimal frequency supported by the frontend
82     -  .. row 4
84        -  uint32_t
86        -  frequency_max
88        -  Maximal frequency supported by the frontend
90     -  .. row 5
92        -  uint32_t
94        -  frequency_stepsize
96        -  Frequency step - all frequencies are multiple of this value
98     -  .. row 6
100        -  uint32_t
102        -  frequency_tolerance
104        -  Tolerance of the frequency
106     -  .. row 7
108        -  uint32_t
110        -  symbol_rate_min
112        -  Minimal symbol rate (for Cable/Satellite systems), in bauds
114     -  .. row 8
116        -  uint32_t
118        -  symbol_rate_max
120        -  Maximal symbol rate (for Cable/Satellite systems), in bauds
122     -  .. row 9
124        -  uint32_t
126        -  symbol_rate_tolerance
128        -  Maximal symbol rate tolerance, in ppm
130     -  .. row 10
132        -  uint32_t
134        -  notifier_delay
136        -  **DEPRECATED**. Not used by any driver.
138     -  .. row 11
140        -  enum :ref:`fe_caps <fe-caps>`
142        -  caps
144        -  Capabilities supported by the frontend
147 .. note:: The frequencies are specified in Hz for Terrestrial and Cable
148    systems. They're specified in kHz for Satellite systems
151 .. _fe-caps-t:
153 frontend capabilities
154 =====================
156 Capabilities describe what a frontend can do. Some capabilities are
157 supported only on some specific frontend types.
160 .. _fe-caps:
162 .. flat-table:: enum fe_caps
163     :header-rows:  1
164     :stub-columns: 0
167     -  .. row 1
169        -  ID
171        -  Description
173     -  .. row 2
175        -  .. _FE-IS-STUPID:
177           ``FE_IS_STUPID``
179        -  There's something wrong at the frontend, and it can't report its
180           capabilities
182     -  .. row 3
184        -  .. _FE-CAN-INVERSION-AUTO:
186           ``FE_CAN_INVERSION_AUTO``
188        -  The frontend is capable of auto-detecting inversion
190     -  .. row 4
192        -  .. _FE-CAN-FEC-1-2:
194           ``FE_CAN_FEC_1_2``
196        -  The frontend supports FEC 1/2
198     -  .. row 5
200        -  .. _FE-CAN-FEC-2-3:
202           ``FE_CAN_FEC_2_3``
204        -  The frontend supports FEC 2/3
206     -  .. row 6
208        -  .. _FE-CAN-FEC-3-4:
210           ``FE_CAN_FEC_3_4``
212        -  The frontend supports FEC 3/4
214     -  .. row 7
216        -  .. _FE-CAN-FEC-4-5:
218           ``FE_CAN_FEC_4_5``
220        -  The frontend supports FEC 4/5
222     -  .. row 8
224        -  .. _FE-CAN-FEC-5-6:
226           ``FE_CAN_FEC_5_6``
228        -  The frontend supports FEC 5/6
230     -  .. row 9
232        -  .. _FE-CAN-FEC-6-7:
234           ``FE_CAN_FEC_6_7``
236        -  The frontend supports FEC 6/7
238     -  .. row 10
240        -  .. _FE-CAN-FEC-7-8:
242           ``FE_CAN_FEC_7_8``
244        -  The frontend supports FEC 7/8
246     -  .. row 11
248        -  .. _FE-CAN-FEC-8-9:
250           ``FE_CAN_FEC_8_9``
252        -  The frontend supports FEC 8/9
254     -  .. row 12
256        -  .. _FE-CAN-FEC-AUTO:
258           ``FE_CAN_FEC_AUTO``
260        -  The frontend can autodetect FEC.
262     -  .. row 13
264        -  .. _FE-CAN-QPSK:
266           ``FE_CAN_QPSK``
268        -  The frontend supports QPSK modulation
270     -  .. row 14
272        -  .. _FE-CAN-QAM-16:
274           ``FE_CAN_QAM_16``
276        -  The frontend supports 16-QAM modulation
278     -  .. row 15
280        -  .. _FE-CAN-QAM-32:
282           ``FE_CAN_QAM_32``
284        -  The frontend supports 32-QAM modulation
286     -  .. row 16
288        -  .. _FE-CAN-QAM-64:
290           ``FE_CAN_QAM_64``
292        -  The frontend supports 64-QAM modulation
294     -  .. row 17
296        -  .. _FE-CAN-QAM-128:
298           ``FE_CAN_QAM_128``
300        -  The frontend supports 128-QAM modulation
302     -  .. row 18
304        -  .. _FE-CAN-QAM-256:
306           ``FE_CAN_QAM_256``
308        -  The frontend supports 256-QAM modulation
310     -  .. row 19
312        -  .. _FE-CAN-QAM-AUTO:
314           ``FE_CAN_QAM_AUTO``
316        -  The frontend can autodetect modulation
318     -  .. row 20
320        -  .. _FE-CAN-TRANSMISSION-MODE-AUTO:
322           ``FE_CAN_TRANSMISSION_MODE_AUTO``
324        -  The frontend can autodetect the transmission mode
326     -  .. row 21
328        -  .. _FE-CAN-BANDWIDTH-AUTO:
330           ``FE_CAN_BANDWIDTH_AUTO``
332        -  The frontend can autodetect the bandwidth
334     -  .. row 22
336        -  .. _FE-CAN-GUARD-INTERVAL-AUTO:
338           ``FE_CAN_GUARD_INTERVAL_AUTO``
340        -  The frontend can autodetect the guard interval
342     -  .. row 23
344        -  .. _FE-CAN-HIERARCHY-AUTO:
346           ``FE_CAN_HIERARCHY_AUTO``
348        -  The frontend can autodetect hierarch
350     -  .. row 24
352        -  .. _FE-CAN-8VSB:
354           ``FE_CAN_8VSB``
356        -  The frontend supports 8-VSB modulation
358     -  .. row 25
360        -  .. _FE-CAN-16VSB:
362           ``FE_CAN_16VSB``
364        -  The frontend supports 16-VSB modulation
366     -  .. row 26
368        -  .. _FE-HAS-EXTENDED-CAPS:
370           ``FE_HAS_EXTENDED_CAPS``
372        -  Currently, unused
374     -  .. row 27
376        -  .. _FE-CAN-MULTISTREAM:
378           ``FE_CAN_MULTISTREAM``
380        -  The frontend supports multistream filtering
382     -  .. row 28
384        -  .. _FE-CAN-TURBO-FEC:
386           ``FE_CAN_TURBO_FEC``
388        -  The frontend supports turbo FEC modulation
390     -  .. row 29
392        -  .. _FE-CAN-2G-MODULATION:
394           ``FE_CAN_2G_MODULATION``
396        -  The frontend supports "2nd generation modulation" (DVB-S2/T2)>
398     -  .. row 30
400        -  .. _FE-NEEDS-BENDING:
402           ``FE_NEEDS_BENDING``
404        -  Not supported anymore, don't use it
406     -  .. row 31
408        -  .. _FE-CAN-RECOVER:
410           ``FE_CAN_RECOVER``
412        -  The frontend can recover from a cable unplug automatically
414     -  .. row 32
416        -  .. _FE-CAN-MUTE-TS:
418           ``FE_CAN_MUTE_TS``
420        -  The frontend can stop spurious TS data output
423 Return Value
424 ============
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.