Linux 4.11-rc6
[linux/fpc-iii.git] / Documentation / media / uapi / dvb / fe-get-info.rst
blobe3d64b251f61f4365587ad2526c9b15309a2549f
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 .. c:function:: int ioctl( int fd, FE_GET_INFO, struct dvb_frontend_info *argp )
19     :name: FE_GET_INFO
22 Arguments
23 =========
25 ``fd``
26     File descriptor returned by :ref:`open() <frontend_f_open>`.
28 ``argp``
29     pointer to struct struct
30     :c:type:`dvb_frontend_info`
33 Description
34 ===========
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.
43 .. c:type:: dvb_frontend_info
45 .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
47 .. flat-table:: struct dvb_frontend_info
48     :header-rows:  0
49     :stub-columns: 0
50     :widths:       1 1 2
53     -  .. row 1
55        -  char
57        -  name[128]
59        -  Name of the frontend
61     -  .. row 2
63        -  fe_type_t
65        -  type
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.
71     -  .. row 3
73        -  uint32_t
75        -  frequency_min
77        -  Minimal frequency supported by the frontend
79     -  .. row 4
81        -  uint32_t
83        -  frequency_max
85        -  Maximal frequency supported by the frontend
87     -  .. row 5
89        -  uint32_t
91        -  frequency_stepsize
93        -  Frequency step - all frequencies are multiple of this value
95     -  .. row 6
97        -  uint32_t
99        -  frequency_tolerance
101        -  Tolerance of the frequency
103     -  .. row 7
105        -  uint32_t
107        -  symbol_rate_min
109        -  Minimal symbol rate (for Cable/Satellite systems), in bauds
111     -  .. row 8
113        -  uint32_t
115        -  symbol_rate_max
117        -  Maximal symbol rate (for Cable/Satellite systems), in bauds
119     -  .. row 9
121        -  uint32_t
123        -  symbol_rate_tolerance
125        -  Maximal symbol rate tolerance, in ppm
127     -  .. row 10
129        -  uint32_t
131        -  notifier_delay
133        -  **DEPRECATED**. Not used by any driver.
135     -  .. row 11
137        -  enum :c:type:`fe_caps`
139        -  caps
141        -  Capabilities supported by the frontend
144 .. note::
146    The frequencies are specified in Hz for Terrestrial and Cable
147    systems. They're specified in kHz for Satellite systems
150 frontend capabilities
151 =====================
153 Capabilities describe what a frontend can do. Some capabilities are
154 supported only on some specific frontend types.
156 .. c:type:: fe_caps
158 .. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
160 .. flat-table:: enum fe_caps
161     :header-rows:  1
162     :stub-columns: 0
165     -  .. row 1
167        -  ID
169        -  Description
171     -  .. row 2
173        -  .. _FE-IS-STUPID:
175           ``FE_IS_STUPID``
177        -  There's something wrong at the frontend, and it can't report its
178           capabilities
180     -  .. row 3
182        -  .. _FE-CAN-INVERSION-AUTO:
184           ``FE_CAN_INVERSION_AUTO``
186        -  The frontend is capable of auto-detecting inversion
188     -  .. row 4
190        -  .. _FE-CAN-FEC-1-2:
192           ``FE_CAN_FEC_1_2``
194        -  The frontend supports FEC 1/2
196     -  .. row 5
198        -  .. _FE-CAN-FEC-2-3:
200           ``FE_CAN_FEC_2_3``
202        -  The frontend supports FEC 2/3
204     -  .. row 6
206        -  .. _FE-CAN-FEC-3-4:
208           ``FE_CAN_FEC_3_4``
210        -  The frontend supports FEC 3/4
212     -  .. row 7
214        -  .. _FE-CAN-FEC-4-5:
216           ``FE_CAN_FEC_4_5``
218        -  The frontend supports FEC 4/5
220     -  .. row 8
222        -  .. _FE-CAN-FEC-5-6:
224           ``FE_CAN_FEC_5_6``
226        -  The frontend supports FEC 5/6
228     -  .. row 9
230        -  .. _FE-CAN-FEC-6-7:
232           ``FE_CAN_FEC_6_7``
234        -  The frontend supports FEC 6/7
236     -  .. row 10
238        -  .. _FE-CAN-FEC-7-8:
240           ``FE_CAN_FEC_7_8``
242        -  The frontend supports FEC 7/8
244     -  .. row 11
246        -  .. _FE-CAN-FEC-8-9:
248           ``FE_CAN_FEC_8_9``
250        -  The frontend supports FEC 8/9
252     -  .. row 12
254        -  .. _FE-CAN-FEC-AUTO:
256           ``FE_CAN_FEC_AUTO``
258        -  The frontend can autodetect FEC.
260     -  .. row 13
262        -  .. _FE-CAN-QPSK:
264           ``FE_CAN_QPSK``
266        -  The frontend supports QPSK modulation
268     -  .. row 14
270        -  .. _FE-CAN-QAM-16:
272           ``FE_CAN_QAM_16``
274        -  The frontend supports 16-QAM modulation
276     -  .. row 15
278        -  .. _FE-CAN-QAM-32:
280           ``FE_CAN_QAM_32``
282        -  The frontend supports 32-QAM modulation
284     -  .. row 16
286        -  .. _FE-CAN-QAM-64:
288           ``FE_CAN_QAM_64``
290        -  The frontend supports 64-QAM modulation
292     -  .. row 17
294        -  .. _FE-CAN-QAM-128:
296           ``FE_CAN_QAM_128``
298        -  The frontend supports 128-QAM modulation
300     -  .. row 18
302        -  .. _FE-CAN-QAM-256:
304           ``FE_CAN_QAM_256``
306        -  The frontend supports 256-QAM modulation
308     -  .. row 19
310        -  .. _FE-CAN-QAM-AUTO:
312           ``FE_CAN_QAM_AUTO``
314        -  The frontend can autodetect modulation
316     -  .. row 20
318        -  .. _FE-CAN-TRANSMISSION-MODE-AUTO:
320           ``FE_CAN_TRANSMISSION_MODE_AUTO``
322        -  The frontend can autodetect the transmission mode
324     -  .. row 21
326        -  .. _FE-CAN-BANDWIDTH-AUTO:
328           ``FE_CAN_BANDWIDTH_AUTO``
330        -  The frontend can autodetect the bandwidth
332     -  .. row 22
334        -  .. _FE-CAN-GUARD-INTERVAL-AUTO:
336           ``FE_CAN_GUARD_INTERVAL_AUTO``
338        -  The frontend can autodetect the guard interval
340     -  .. row 23
342        -  .. _FE-CAN-HIERARCHY-AUTO:
344           ``FE_CAN_HIERARCHY_AUTO``
346        -  The frontend can autodetect hierarch
348     -  .. row 24
350        -  .. _FE-CAN-8VSB:
352           ``FE_CAN_8VSB``
354        -  The frontend supports 8-VSB modulation
356     -  .. row 25
358        -  .. _FE-CAN-16VSB:
360           ``FE_CAN_16VSB``
362        -  The frontend supports 16-VSB modulation
364     -  .. row 26
366        -  .. _FE-HAS-EXTENDED-CAPS:
368           ``FE_HAS_EXTENDED_CAPS``
370        -  Currently, unused
372     -  .. row 27
374        -  .. _FE-CAN-MULTISTREAM:
376           ``FE_CAN_MULTISTREAM``
378        -  The frontend supports multistream filtering
380     -  .. row 28
382        -  .. _FE-CAN-TURBO-FEC:
384           ``FE_CAN_TURBO_FEC``
386        -  The frontend supports turbo FEC modulation
388     -  .. row 29
390        -  .. _FE-CAN-2G-MODULATION:
392           ``FE_CAN_2G_MODULATION``
394        -  The frontend supports "2nd generation modulation" (DVB-S2/T2)>
396     -  .. row 30
398        -  .. _FE-NEEDS-BENDING:
400           ``FE_NEEDS_BENDING``
402        -  Not supported anymore, don't use it
404     -  .. row 31
406        -  .. _FE-CAN-RECOVER:
408           ``FE_CAN_RECOVER``
410        -  The frontend can recover from a cable unplug automatically
412     -  .. row 32
414        -  .. _FE-CAN-MUTE-TS:
416           ``FE_CAN_MUTE_TS``
418        -  The frontend can stop spurious TS data output
421 Return Value
422 ============
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.