Commit | Line | Data |
---|---|---|
5377d91f MH |
1 | .. -*- coding: utf-8; mode: rst -*- |
2 | ||
3 | .. _FE_GET_INFO: | |
4 | ||
5 | ***************** | |
6 | ioctl FE_GET_INFO | |
7 | ***************** | |
8 | ||
9 | *man FE_GET_INFO(2)* | |
10 | ||
11 | Query DVB frontend capabilities and returns information about the | |
12 | front-end. This call only requires read-only access to the device | |
13 | ||
14 | ||
15 | Synopsis | |
16 | ======== | |
17 | ||
b7e67f6c | 18 | .. cpp:function:: int ioctl( int fd, int request, struct dvb_frontend_info *argp ) |
5377d91f MH |
19 | |
20 | Arguments | |
21 | ========= | |
22 | ||
23 | ``fd`` | |
24 | File descriptor returned by :ref:`open() <frontend_f_open>`. | |
25 | ||
26 | ``request`` | |
27 | FE_GET_INFO | |
28 | ||
29 | ``argp`` | |
30 | pointer to struct struct | |
31 | :ref:`dvb_frontend_info <dvb-frontend-info>` | |
32 | ||
33 | ||
34 | Description | |
35 | =========== | |
36 | ||
37 | All DVB frontend devices support the ``FE_GET_INFO`` ioctl. It is used | |
38 | to identify kernel devices compatible with this specification and to | |
39 | obtain information about driver and hardware capabilities. The ioctl | |
40 | takes a pointer to dvb_frontend_info which is filled by the driver. | |
41 | When the driver is not compatible with this specification the ioctl | |
42 | returns an error. | |
43 | ||
44 | RETURN VALUE | |
45 | ||
46 | On success 0 is returned, on error -1 and the ``errno`` variable is set | |
47 | appropriately. The generic error codes are described at the | |
48 | :ref:`Generic Error Codes <gen-errors>` chapter. | |
49 | ||
50 | ||
51 | .. _dvb-frontend-info: | |
52 | ||
53 | .. flat-table:: struct dvb_frontend_info | |
54 | :header-rows: 0 | |
55 | :stub-columns: 0 | |
56 | :widths: 1 1 2 | |
57 | ||
58 | ||
59 | - .. row 1 | |
60 | ||
61 | - char | |
62 | ||
63 | - name[128] | |
64 | ||
65 | - Name of the frontend | |
66 | ||
67 | - .. row 2 | |
68 | ||
69 | - fe_type_t | |
70 | ||
71 | - type | |
72 | ||
73 | - **DEPRECATED**. DVBv3 type. Should not be used on modern programs, | |
74 | as a frontend may have more than one type. So, the DVBv5 API | |
75 | should be used instead to enumerate and select the frontend type. | |
76 | ||
77 | - .. row 3 | |
78 | ||
79 | - uint32_t | |
80 | ||
81 | - frequency_min | |
82 | ||
83 | - Minimal frequency supported by the frontend | |
84 | ||
85 | - .. row 4 | |
86 | ||
87 | - uint32_t | |
88 | ||
89 | - frequency_max | |
90 | ||
91 | - Maximal frequency supported by the frontend | |
92 | ||
93 | - .. row 5 | |
94 | ||
95 | - uint32_t | |
96 | ||
97 | - frequency_stepsize | |
98 | ||
99 | - Frequency step - all frequencies are multiple of this value | |
100 | ||
101 | - .. row 6 | |
102 | ||
103 | - uint32_t | |
104 | ||
105 | - frequency_tolerance | |
106 | ||
107 | - Tolerance of the frequency | |
108 | ||
109 | - .. row 7 | |
110 | ||
111 | - uint32_t | |
112 | ||
113 | - symbol_rate_min | |
114 | ||
115 | - Minimal symbol rate (for Cable/Satellite systems), in bauds | |
116 | ||
117 | - .. row 8 | |
118 | ||
119 | - uint32_t | |
120 | ||
121 | - symbol_rate_max | |
122 | ||
123 | - Maximal symbol rate (for Cable/Satellite systems), in bauds | |
124 | ||
125 | - .. row 9 | |
126 | ||
127 | - uint32_t | |
128 | ||
129 | - symbol_rate_tolerance | |
130 | ||
131 | - Maximal symbol rate tolerance, in ppm | |
132 | ||
133 | - .. row 10 | |
134 | ||
135 | - uint32_t | |
136 | ||
137 | - notifier_delay | |
138 | ||
139 | - **DEPRECATED**. Not used by any driver. | |
140 | ||
141 | - .. row 11 | |
142 | ||
143 | - enum :ref:`fe_caps <fe-caps>` | |
144 | ||
145 | - caps | |
146 | ||
147 | - Capabilities supported by the frontend | |
148 | ||
149 | ||
150 | NOTE: The frequencies are specified in Hz for Terrestrial and Cable | |
151 | systems. They're specified in kHz for Satellite systems | |
152 | ||
153 | ||
154 | .. _fe-caps-t: | |
155 | ||
156 | frontend capabilities | |
157 | ===================== | |
158 | ||
159 | Capabilities describe what a frontend can do. Some capabilities are | |
160 | supported only on some specific frontend types. | |
161 | ||
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 |