blob: 1ab2e1af81f1d710a4208dad7a748df029400d5e [file] [log] [blame]
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001<title>DVB Frontend API</title>
2
3<para>The DVB frontend device controls the tuner and DVB demodulator
4hardware. It can be accessed through <emphasis
5role="tt">/dev/dvb/adapter0/frontend0</emphasis>. Data types and and
6ioctl definitions can be accessed by including <emphasis
7role="tt">linux/dvb/frontend.h</emphasis> in your application.</para>
8
9<para>DVB frontends come in three varieties: DVB-S (satellite), DVB-C
10(cable) and DVB-T (terrestrial). Transmission via the internet (DVB-IP)
11is not yet handled by this API but a future extension is possible. For
12DVB-S the frontend device also supports satellite equipment control
13(SEC) via DiSEqC and V-SEC protocols. The DiSEqC (digital SEC)
Mauro Carvalho Chehab62b122a2009-09-15 21:03:45 -030014specification is available from
15<ulink url="http://www.eutelsat.com/satellites/4_5_5.html">Eutelsat</ulink>.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -030016
17<para>Note that the DVB API may also be used for MPEG decoder-only PCI
18cards, in which case there exists no frontend device.</para>
19
20<section id="frontend_types">
21<title>Frontend Data Types</title>
22
Mauro Carvalho Chehabd5dc2de2011-06-07 16:17:00 -030023<section id="fe-type-t">
24<title>Frontend type</title>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -030025
Mauro Carvalho Chehab0969ec12011-06-07 17:02:37 -030026<para>For historical reasons, frontend types are named by the type of modulation used in
Mauro Carvalho Chehabd5dc2de2011-06-07 16:17:00 -030027transmission. The fontend types are given by fe_type_t type, defined as:</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -030028
Mauro Carvalho Chehabd5dc2de2011-06-07 16:17:00 -030029<table pgwide="1" frame="none" id="fe-type">
30<title>Frontend types</title>
Mauro Carvalho Chehab0969ec12011-06-07 17:02:37 -030031<tgroup cols="3">
Mauro Carvalho Chehabd5dc2de2011-06-07 16:17:00 -030032 &cs-def;
33 <thead>
34 <row>
35 <entry>fe_type</entry>
36 <entry>Description</entry>
Mauro Carvalho Chehab0969ec12011-06-07 17:02:37 -030037 <entry><link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> equivalent type</entry>
Mauro Carvalho Chehabd5dc2de2011-06-07 16:17:00 -030038 </row>
39 </thead>
40 <tbody valign="top">
41 <row>
42 <entry id="FE_QPSK"><constant>FE_QPSK</constant></entry>
43 <entry>For DVB-S standard</entry>
Mauro Carvalho Chehab0969ec12011-06-07 17:02:37 -030044 <entry><constant>SYS_DVBS</constant></entry>
Mauro Carvalho Chehabd5dc2de2011-06-07 16:17:00 -030045 </row>
46 <row>
47 <entry id="FE_QAM"><constant>FE_QAM</constant></entry>
Mauro Carvalho Chehab669a4ba2011-12-17 20:36:56 -030048 <entry>For DVB-C annex A standard</entry>
49 <entry><constant>SYS_DVBC_ANNEX_A</constant></entry>
Mauro Carvalho Chehabd5dc2de2011-06-07 16:17:00 -030050 </row>
51 <row>
52 <entry id="FE_OFDM"><constant>FE_OFDM</constant></entry>
Mauro Carvalho Chehab0969ec12011-06-07 17:02:37 -030053 <entry>For DVB-T standard</entry>
54 <entry><constant>SYS_DVBT</constant></entry>
Mauro Carvalho Chehabd5dc2de2011-06-07 16:17:00 -030055 </row>
56 <row>
57 <entry id="FE_ATSC"><constant>FE_ATSC</constant></entry>
Mauro Carvalho Chehab0969ec12011-06-07 17:02:37 -030058 <entry>For ATSC standard (terrestrial) or for DVB-C Annex B (cable) used in US.</entry>
59 <entry><constant>SYS_ATSC</constant> (terrestrial) or <constant>SYS_DVBC_ANNEX_B</constant> (cable)</entry>
Mauro Carvalho Chehabd5dc2de2011-06-07 16:17:00 -030060 </row>
61</tbody></tgroup></table>
62
63<para>Newer formats like DVB-S2, ISDB-T, ISDB-S and DVB-T2 are not described at the above, as they're
Mauro Carvalho Chehab0969ec12011-06-07 17:02:37 -030064supported via the new <link linkend="FE_GET_SET_PROPERTY">FE_GET_PROPERTY/FE_GET_SET_PROPERTY</link> ioctl's, using the <link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> parameter.
Mauro Carvalho Chehabd5dc2de2011-06-07 16:17:00 -030065</para>
Mauro Carvalho Chehabcd7d4942012-01-01 16:11:17 -030066
67<para>The usage of this field is deprecated, as it doesn't report all supported standards, and
68will provide an incomplete information for frontends that support multiple delivery systems.
Hans Verkuil510f0a02012-08-09 06:41:43 -030069Please use <link linkend="DTV-ENUM-DELSYS">DTV_ENUM_DELSYS</link> instead.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -030070</section>
71
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -030072<section id="fe-caps-t">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -030073<title>frontend capabilities</title>
74
75<para>Capabilities describe what a frontend can do. Some capabilities can only be supported for
76a specific frontend type.</para>
77<programlisting>
78 typedef enum fe_caps {
79 FE_IS_STUPID = 0,
80 FE_CAN_INVERSION_AUTO = 0x1,
81 FE_CAN_FEC_1_2 = 0x2,
82 FE_CAN_FEC_2_3 = 0x4,
83 FE_CAN_FEC_3_4 = 0x8,
84 FE_CAN_FEC_4_5 = 0x10,
85 FE_CAN_FEC_5_6 = 0x20,
86 FE_CAN_FEC_6_7 = 0x40,
87 FE_CAN_FEC_7_8 = 0x80,
88 FE_CAN_FEC_8_9 = 0x100,
89 FE_CAN_FEC_AUTO = 0x200,
90 FE_CAN_QPSK = 0x400,
91 FE_CAN_QAM_16 = 0x800,
92 FE_CAN_QAM_32 = 0x1000,
93 FE_CAN_QAM_64 = 0x2000,
94 FE_CAN_QAM_128 = 0x4000,
95 FE_CAN_QAM_256 = 0x8000,
96 FE_CAN_QAM_AUTO = 0x10000,
97 FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000,
98 FE_CAN_BANDWIDTH_AUTO = 0x40000,
99 FE_CAN_GUARD_INTERVAL_AUTO = 0x80000,
100 FE_CAN_HIERARCHY_AUTO = 0x100000,
Mauro Carvalho Chehab8d3557e2010-07-03 17:39:17 -0300101 FE_CAN_8VSB = 0x200000,
102 FE_CAN_16VSB = 0x400000,
103 FE_HAS_EXTENDED_CAPS = 0x800000,
104 FE_CAN_TURBO_FEC = 0x8000000,
105 FE_CAN_2G_MODULATION = 0x10000000,
106 FE_NEEDS_BENDING = 0x20000000,
107 FE_CAN_RECOVER = 0x40000000,
108 FE_CAN_MUTE_TS = 0x80000000
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300109 } fe_caps_t;
110</programlisting>
111</section>
112
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300113<section id="dvb-frontend-info">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300114<title>frontend information</title>
115
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300116<para>Information about the frontend ca be queried with
117 <link linkend="FE_GET_INFO">FE_GET_INFO</link>.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300118
119<programlisting>
120 struct dvb_frontend_info {
121 char name[128];
122 fe_type_t type;
123 uint32_t frequency_min;
124 uint32_t frequency_max;
125 uint32_t frequency_stepsize;
126 uint32_t frequency_tolerance;
127 uint32_t symbol_rate_min;
128 uint32_t symbol_rate_max;
129 uint32_t symbol_rate_tolerance; /&#x22C6; ppm &#x22C6;/
130 uint32_t notifier_delay; /&#x22C6; ms &#x22C6;/
131 fe_caps_t caps;
132 };
133</programlisting>
134</section>
135
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300136<section id="dvb-diseqc-master-cmd">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300137<title>diseqc master command</title>
138
139<para>A message sent from the frontend to DiSEqC capable equipment.</para>
140<programlisting>
141 struct dvb_diseqc_master_cmd {
142 uint8_t msg [6]; /&#x22C6; { framing, address, command, data[3] } &#x22C6;/
143 uint8_t msg_len; /&#x22C6; valid values are 3...6 &#x22C6;/
144 };
145</programlisting>
146</section>
Mauro Carvalho Chehab3272c3e2011-06-07 21:40:22 -0300147<section role="subsection" id="dvb-diseqc-slave-reply">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300148<title>diseqc slave reply</title>
149
150<para>A reply to the frontend from DiSEqC 2.0 capable equipment.</para>
151<programlisting>
152 struct dvb_diseqc_slave_reply {
153 uint8_t msg [4]; /&#x22C6; { framing, data [3] } &#x22C6;/
154 uint8_t msg_len; /&#x22C6; valid values are 0...4, 0 means no msg &#x22C6;/
155 int timeout; /&#x22C6; return from ioctl after timeout ms with &#x22C6;/
156 }; /&#x22C6; errorcode when no message was received &#x22C6;/
157</programlisting>
158</section>
159
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300160<section id="fe-sec-voltage-t">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300161<title>diseqc slave reply</title>
162<para>The voltage is usually used with non-DiSEqC capable LNBs to switch the polarzation
163(horizontal/vertical). When using DiSEqC epuipment this voltage has to be switched
164consistently to the DiSEqC commands as described in the DiSEqC spec.</para>
165<programlisting>
166 typedef enum fe_sec_voltage {
167 SEC_VOLTAGE_13,
168 SEC_VOLTAGE_18
169 } fe_sec_voltage_t;
170</programlisting>
171</section>
172
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300173<section id="fe-sec-tone-mode-t">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300174<title>SEC continuous tone</title>
175
Lucas De Marchi25985ed2011-03-30 22:57:33 -0300176<para>The continuous 22KHz tone is usually used with non-DiSEqC capable LNBs to switch the
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300177high/low band of a dual-band LNB. When using DiSEqC epuipment this voltage has to
178be switched consistently to the DiSEqC commands as described in the DiSEqC
179spec.</para>
180<programlisting>
181 typedef enum fe_sec_tone_mode {
182 SEC_TONE_ON,
183 SEC_TONE_OFF
184 } fe_sec_tone_mode_t;
185</programlisting>
186</section>
187
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300188<section id="fe-sec-mini-cmd-t">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300189<title>SEC tone burst</title>
190
191<para>The 22KHz tone burst is usually used with non-DiSEqC capable switches to select
192between two connected LNBs/satellites. When using DiSEqC epuipment this voltage has to
193be switched consistently to the DiSEqC commands as described in the DiSEqC
194spec.</para>
195<programlisting>
196 typedef enum fe_sec_mini_cmd {
197 SEC_MINI_A,
198 SEC_MINI_B
199 } fe_sec_mini_cmd_t;
200</programlisting>
201
202<para></para>
203</section>
204
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300205<section id="fe-status-t">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300206<title>frontend status</title>
207<para>Several functions of the frontend device use the fe_status data type defined
208by</para>
209<programlisting>
Mauro Carvalho Chehab0d27bbf2012-08-13 17:03:12 -0300210typedef enum fe_status {
211 FE_HAS_SIGNAL = 0x01,
212 FE_HAS_CARRIER = 0x02,
213 FE_HAS_VITERBI = 0x04,
214 FE_HAS_SYNC = 0x08,
215 FE_HAS_LOCK = 0x10,
216 FE_TIMEDOUT = 0x20,
217 FE_REINIT = 0x40,
218} fe_status_t;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300219</programlisting>
Mauro Carvalho Chehab0d27bbf2012-08-13 17:03:12 -0300220<para>to indicate the current state and/or state changes of the frontend hardware:
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300221</para>
222
Mauro Carvalho Chehab0d27bbf2012-08-13 17:03:12 -0300223<informaltable><tgroup cols="2"><tbody>
224<row>
225<entry align="char">FE_HAS_SIGNAL</entry>
226<entry align="char">The frontend has found something above the noise level</entry>
227</row><row>
228<entry align="char">FE_HAS_CARRIER</entry>
229<entry align="char">The frontend has found a DVB signal</entry>
230</row><row>
231<entry align="char">FE_HAS_VITERBI</entry>
232<entry align="char">The frontend FEC code is stable</entry>
233</row><row>
234<entry align="char">FE_HAS_SYNC</entry>
235<entry align="char">Syncronization bytes was found</entry>
236</row><row>
237<entry align="char">FE_HAS_LOCK</entry>
238<entry align="char">The DVB were locked and everything is working</entry>
239</row><row>
240<entry align="char">FE_TIMEDOUT</entry>
241<entry align="char">no lock within the last about 2 seconds</entry>
242</row><row>
243<entry align="char">FE_REINIT</entry>
244<entry align="char">The frontend was reinitialized, application is
245recommended to reset DiSEqC, tone and parameters</entry>
246</row>
247</tbody></tgroup></informaltable>
248
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300249</section>
250
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300251<section id="dvb-frontend-parameters">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300252<title>frontend parameters</title>
253<para>The kind of parameters passed to the frontend device for tuning depend on
Mauro Carvalho Chehabdf2692a2011-06-07 20:43:25 -0300254the kind of hardware you are using.</para>
255<para>The struct <constant>dvb_frontend_parameters</constant> uses an
256union with specific per-system parameters. However, as newer delivery systems
257required more data, the structure size weren't enough to fit, and just
258extending its size would break the existing applications. So, those parameters
259were replaced by the usage of <link linkend="FE_GET_SET_PROPERTY">
260<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> ioctl's. The
261new API is flexible enough to add new parameters to existing delivery systems,
262and to add newer delivery systems.</para>
263<para>So, newer applications should use <link linkend="FE_GET_SET_PROPERTY">
264<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> instead, in
265order to be able to support the newer System Delivery like DVB-S2, DVB-T2,
266DVB-C2, ISDB, etc.</para>
267<para>All kinds of parameters are combined as an union in the FrontendParameters structure:</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300268<programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300269struct dvb_frontend_parameters {
270 uint32_t frequency; /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/
271 /&#x22C6; intermediate frequency in kHz for QPSK &#x22C6;/
272 fe_spectral_inversion_t inversion;
273 union {
274 struct dvb_qpsk_parameters qpsk;
275 struct dvb_qam_parameters qam;
276 struct dvb_ofdm_parameters ofdm;
277 struct dvb_vsb_parameters vsb;
278 } u;
279};
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300280</programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300281<para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate
282frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of
283the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and
284OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz.
285</para>
286<section id="dvb-qpsk-parameters">
287<title>QPSK parameters</title>
288<para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300289<programlisting>
290 struct dvb_qpsk_parameters {
291 uint32_t symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/
292 fe_code_rate_t fec_inner; /&#x22C6; forward error correction (see above) &#x22C6;/
293 };
294</programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300295</section>
296<section id="dvb-qam-parameters">
297<title>QAM parameters</title>
298<para>for cable QAM frontend you use the <constant>dvb_qam_parameters</constant> structure:</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300299<programlisting>
300 struct dvb_qam_parameters {
301 uint32_t symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/
302 fe_code_rate_t fec_inner; /&#x22C6; forward error correction (see above) &#x22C6;/
303 fe_modulation_t modulation; /&#x22C6; modulation type (see above) &#x22C6;/
304 };
305</programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300306</section>
Mauro Carvalho Chehab0be153e2011-06-07 18:15:19 -0300307<section id="dvb-vsb-parameters">
308<title>VSB parameters</title>
Mauro Carvalho Chehab76f9a692011-06-07 22:08:13 -0300309<para>ATSC frontends are supported by the <constant>dvb_vsb_parameters</constant> structure:</para>
Mauro Carvalho Chehab0be153e2011-06-07 18:15:19 -0300310<programlisting>
311struct dvb_vsb_parameters {
312 fe_modulation_t modulation; /&#x22C6; modulation type (see above) &#x22C6;/
313};
314</programlisting>
315</section>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300316<section id="dvb-ofdm-parameters">
317<title>OFDM parameters</title>
318<para>DVB-T frontends are supported by the <constant>dvb_ofdm_parameters</constant> structure:</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300319<programlisting>
320 struct dvb_ofdm_parameters {
321 fe_bandwidth_t bandwidth;
322 fe_code_rate_t code_rate_HP; /&#x22C6; high priority stream code rate &#x22C6;/
323 fe_code_rate_t code_rate_LP; /&#x22C6; low priority stream code rate &#x22C6;/
324 fe_modulation_t constellation; /&#x22C6; modulation type (see above) &#x22C6;/
325 fe_transmit_mode_t transmission_mode;
326 fe_guard_interval_t guard_interval;
327 fe_hierarchy_t hierarchy_information;
328 };
329</programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300330</section>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300331<section id="fe-spectral-inversion-t">
332<title>frontend spectral inversion</title>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300333<para>The Inversion field can take one of these values:
334</para>
335<programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300336typedef enum fe_spectral_inversion {
337 INVERSION_OFF,
338 INVERSION_ON,
339 INVERSION_AUTO
340} fe_spectral_inversion_t;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300341</programlisting>
342<para>It indicates if spectral inversion should be presumed or not. In the automatic setting
343(<constant>INVERSION_AUTO</constant>) the hardware will try to figure out the correct setting by
344itself.
345</para>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300346</section>
347<section id="fe-code-rate-t">
348<title>frontend code rate</title>
Mauro Carvalho Chehab0be153e2011-06-07 18:15:19 -0300349<para>The possible values for the <constant>fec_inner</constant> field used on
350<link refend="dvb-qpsk-parameters"><constant>struct dvb_qpsk_parameters</constant></link> and
351<link refend="dvb-qam-parameters"><constant>struct dvb_qam_parameters</constant></link> are:
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300352</para>
353<programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300354typedef enum fe_code_rate {
355 FEC_NONE = 0,
356 FEC_1_2,
357 FEC_2_3,
358 FEC_3_4,
359 FEC_4_5,
360 FEC_5_6,
361 FEC_6_7,
362 FEC_7_8,
363 FEC_8_9,
364 FEC_AUTO,
365 FEC_3_5,
366 FEC_9_10,
367} fe_code_rate_t;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300368</programlisting>
369<para>which correspond to error correction rates of 1/2, 2/3, etc., no error correction or auto
370detection.
371</para>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300372</section>
373<section id="fe-modulation-t">
Mauro Carvalho Chehab0be153e2011-06-07 18:15:19 -0300374<title>frontend modulation type for QAM, OFDM and VSB</title>
375<para>For cable and terrestrial frontends, e. g. for
376<link refend="dvb-qam-parameters"><constant>struct dvb_qpsk_parameters</constant></link>,
377<link refend="dvb-ofdm-parameters"><constant>struct dvb_qam_parameters</constant></link> and
378<link refend="dvb-vsb-parameters"><constant>struct dvb_qam_parameters</constant></link>,
379it needs to specify the quadrature modulation mode which can be one of the following:
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300380</para>
381<programlisting>
382 typedef enum fe_modulation {
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300383 QPSK,
384 QAM_16,
385 QAM_32,
386 QAM_64,
387 QAM_128,
388 QAM_256,
389 QAM_AUTO,
390 VSB_8,
391 VSB_16,
392 PSK_8,
393 APSK_16,
394 APSK_32,
395 DQPSK,
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300396 } fe_modulation_t;
397</programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300398</section>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300399<para>Finally, there are several more parameters for OFDM:
400</para>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300401<section id="fe-transmit-mode-t">
Mauro Carvalho Chehab0be153e2011-06-07 18:15:19 -0300402<title>Number of carriers per channel</title>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300403<programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300404typedef enum fe_transmit_mode {
405 TRANSMISSION_MODE_2K,
406 TRANSMISSION_MODE_8K,
407 TRANSMISSION_MODE_AUTO,
408 TRANSMISSION_MODE_4K,
409 TRANSMISSION_MODE_1K,
410 TRANSMISSION_MODE_16K,
411 TRANSMISSION_MODE_32K,
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300412 } fe_transmit_mode_t;
413</programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300414</section>
415<section id="fe-bandwidth-t">
416<title>frontend bandwidth</title>
417<programlisting>
418typedef enum fe_bandwidth {
419 BANDWIDTH_8_MHZ,
420 BANDWIDTH_7_MHZ,
421 BANDWIDTH_6_MHZ,
422 BANDWIDTH_AUTO,
423 BANDWIDTH_5_MHZ,
424 BANDWIDTH_10_MHZ,
425 BANDWIDTH_1_712_MHZ,
426} fe_bandwidth_t;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300427</programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300428</section>
429<section id="fe-guard-interval-t">
430<title>frontend guard inverval</title>
431<programlisting>
432typedef enum fe_guard_interval {
433 GUARD_INTERVAL_1_32,
434 GUARD_INTERVAL_1_16,
435 GUARD_INTERVAL_1_8,
436 GUARD_INTERVAL_1_4,
437 GUARD_INTERVAL_AUTO,
438 GUARD_INTERVAL_1_128,
439 GUARD_INTERVAL_19_128,
440 GUARD_INTERVAL_19_256,
441} fe_guard_interval_t;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300442</programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300443</section>
444<section id="fe-hierarchy-t">
445<title>frontend hierarchy</title>
446<programlisting>
447typedef enum fe_hierarchy {
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300448 HIERARCHY_NONE,
449 HIERARCHY_1,
450 HIERARCHY_2,
451 HIERARCHY_4,
452 HIERARCHY_AUTO
453 } fe_hierarchy_t;
454</programlisting>
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300455</section>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300456
457</section>
458
Mauro Carvalho Chehab6cb77a82011-06-07 17:58:59 -0300459<section id="dvb-frontend-event">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300460<title>frontend events</title>
461 <programlisting>
462 struct dvb_frontend_event {
463 fe_status_t status;
464 struct dvb_frontend_parameters parameters;
465 };
466</programlisting>
467 </section>
468</section>
469
470
471<section id="frontend_fcalls">
472<title>Frontend Function Calls</title>
473
474<section id="frontend_f_open">
475<title>open()</title>
476<para>DESCRIPTION</para>
477<informaltable><tgroup cols="1"><tbody><row>
478<entry align="char">
479<para>This system call opens a named frontend device (/dev/dvb/adapter0/frontend0)
480 for subsequent use. Usually the first thing to do after a successful open is to
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300481 find out the frontend type with <link linkend="FE_GET_INFO">FE_GET_INFO</link>.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300482<para>The device can be opened in read-only mode, which only allows monitoring of
483 device status and statistics, or read/write mode, which allows any kind of use
484 (e.g. performing tuning operations.)
485</para>
486<para>In a system with multiple front-ends, it is usually the case that multiple devices
487 cannot be open in read/write mode simultaneously. As long as a front-end
488 device is opened in read/write mode, other open() calls in read/write mode will
489 either fail or block, depending on whether non-blocking or blocking mode was
490 specified. A front-end device opened in blocking mode can later be put into
491 non-blocking mode (and vice versa) using the F_SETFL command of the fcntl
492 system call. This is a standard system call, documented in the Linux manual
493 page for fcntl. When an open() call has succeeded, the device will be ready
494 for use in the specified mode. This implies that the corresponding hardware is
495 powered up, and that other front-ends may have been powered down to make
496 that possible.</para>
497</entry>
498 </row></tbody></tgroup></informaltable>
499
500<para>SYNOPSIS</para>
501<informaltable><tgroup cols="1"><tbody><row><entry
502 align="char">
503<para>int open(const char &#x22C6;deviceName, int flags);</para>
504</entry>
505 </row></tbody></tgroup></informaltable>
506<para>PARAMETERS
507</para>
508<informaltable><tgroup cols="2"><tbody><row><entry
509 align="char">
510<para>const char
511 *deviceName</para>
512</entry><entry
513 align="char">
514<para>Name of specific video device.</para>
515</entry>
516 </row><row><entry
517 align="char">
518<para>int flags</para>
519</entry><entry
520 align="char">
521<para>A bit-wise OR of the following flags:</para>
522</entry>
523 </row><row><entry
524 align="char">
525</entry><entry
526 align="char">
527<para>O_RDONLY read-only access</para>
528</entry>
529 </row><row><entry
530 align="char">
531</entry><entry
532 align="char">
533<para>O_RDWR read/write access</para>
534</entry>
535 </row><row><entry
536 align="char">
537</entry><entry
538 align="char">
539<para>O_NONBLOCK open in non-blocking mode</para>
540</entry>
541 </row><row><entry
542 align="char">
543</entry><entry
544 align="char">
545<para>(blocking mode is the default)</para>
546</entry>
547 </row></tbody></tgroup></informaltable>
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -0300548<para>RETURN VALUE</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300549<informaltable><tgroup cols="2"><tbody><row><entry
550 align="char">
551<para>ENODEV</para>
552</entry><entry
553 align="char">
554<para>Device driver not loaded/available.</para>
555</entry>
556 </row><row><entry
557 align="char">
558<para>EINTERNAL</para>
559</entry><entry
560 align="char">
561<para>Internal error.</para>
562</entry>
563 </row><row><entry
564 align="char">
565<para>EBUSY</para>
566</entry><entry
567 align="char">
568<para>Device or resource busy.</para>
569</entry>
570 </row><row><entry
571 align="char">
572<para>EINVAL</para>
573</entry><entry
574 align="char">
575<para>Invalid argument.</para>
576</entry>
577 </row></tbody></tgroup></informaltable>
578</section>
579
580<section id="frontend_f_close">
581<title>close()</title>
582<para>DESCRIPTION
583</para>
584<informaltable><tgroup cols="1"><tbody><row><entry
585 align="char">
586<para>This system call closes a previously opened front-end device. After closing
587 a front-end device, its corresponding hardware might be powered down
588 automatically.</para>
589</entry>
590 </row></tbody></tgroup></informaltable>
591<para>SYNOPSIS
592</para>
593<informaltable><tgroup cols="1"><tbody><row><entry
594 align="char">
595<para>int close(int fd);</para>
596</entry>
597 </row></tbody></tgroup></informaltable>
598<para>PARAMETERS
599</para>
600<informaltable><tgroup cols="2"><tbody><row><entry
601 align="char">
602<para>int fd</para>
603</entry><entry
604 align="char">
605<para>File descriptor returned by a previous call to open().</para>
606</entry>
607 </row></tbody></tgroup></informaltable>
Mauro Carvalho Chehab66b30b52011-07-06 13:42:08 -0300608<para>RETURN VALUE</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300609<informaltable><tgroup cols="2"><tbody><row><entry
610 align="char">
611<para>EBADF</para>
612</entry><entry
613 align="char">
614<para>fd is not a valid open file descriptor.</para>
615</entry>
616 </row></tbody></tgroup></informaltable>
617</section>
618
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300619<section id="FE_READ_STATUS">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300620<title>FE_READ_STATUS</title>
621<para>DESCRIPTION
622</para>
623<informaltable><tgroup cols="1"><tbody><row><entry
624 align="char">
625<para>This ioctl call returns status information about the front-end. This call only
626 requires read-only access to the device.</para>
627</entry>
628 </row></tbody></tgroup></informaltable>
629<para>SYNOPSIS
630</para>
631<informaltable><tgroup cols="1"><tbody><row><entry
632 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300633<para>int ioctl(int fd, int request = <link linkend="FE_READ_STATUS">FE_READ_STATUS</link>,
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300634 fe_status_t &#x22C6;status);</para>
635</entry>
636 </row></tbody></tgroup></informaltable>
637<para>PARAMETERS
638</para>
639
640<informaltable><tgroup cols="2"><tbody><row><entry
641 align="char">
642<para>int fd</para>
643</entry><entry
644 align="char">
645<para>File descriptor returned by a previous call to open().</para>
646</entry>
647 </row><row><entry
648 align="char">
649<para>int request</para>
650</entry><entry
651 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300652<para>Equals <link linkend="FE_READ_STATUS">FE_READ_STATUS</link> for this command.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300653</entry>
654 </row><row><entry
655 align="char">
656<para>struct fe_status_t
657 *status</para>
658</entry><entry
659 align="char">
660<para>Points to the location where the front-end status word is
661 to be stored.</para>
662</entry>
663 </row></tbody></tgroup></informaltable>
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -0300664<para>RETURN VALUE</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300665<informaltable><tgroup cols="2"><tbody><row><entry
666 align="char">
667<para>EBADF</para>
668</entry><entry
669 align="char">
670<para>fd is not a valid open file descriptor.</para>
671</entry>
672 </row><row><entry
673 align="char">
674<para>EFAULT</para>
675</entry><entry
676 align="char">
677<para>status points to invalid address.</para>
678</entry>
679 </row></tbody></tgroup></informaltable>
680</section>
681
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300682<section id="FE_READ_BER">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300683<title>FE_READ_BER</title>
684<para>DESCRIPTION
685</para>
686<informaltable><tgroup cols="1"><tbody><row><entry
687 align="char">
688<para>This ioctl call returns the bit error rate for the signal currently
689 received/demodulated by the front-end. For this command, read-only access to
690 the device is sufficient.</para>
691</entry>
692 </row></tbody></tgroup></informaltable>
693<para>SYNOPSIS
694</para>
695<informaltable><tgroup cols="1"><tbody><row><entry
696 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300697<para>int ioctl(int fd, int request = <link linkend="FE_READ_BER">FE_READ_BER</link>,
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300698 uint32_t &#x22C6;ber);</para>
699</entry>
700 </row></tbody></tgroup></informaltable>
701<para>PARAMETERS
702</para>
703<informaltable><tgroup cols="2"><tbody><row><entry
704 align="char">
705<para>int fd</para>
706</entry><entry
707 align="char">
708<para>File descriptor returned by a previous call to open().</para>
709</entry>
710 </row><row><entry
711 align="char">
712<para>int request</para>
713</entry><entry
714 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300715<para>Equals <link linkend="FE_READ_BER">FE_READ_BER</link> for this command.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300716</entry>
717 </row><row><entry
718 align="char">
719<para>uint32_t *ber</para>
720</entry><entry
721 align="char">
722<para>The bit error rate is stored into *ber.</para>
723</entry>
724 </row></tbody></tgroup></informaltable>
Mauro Carvalho Chehab66b30b52011-07-06 13:42:08 -0300725
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -0300726&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300727</section>
728
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300729<section id="FE_READ_SNR">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300730<title>FE_READ_SNR</title>
731
732<para>DESCRIPTION
733</para>
734<informaltable><tgroup cols="1"><tbody><row><entry
735 align="char">
736<para>This ioctl call returns the signal-to-noise ratio for the signal currently received
737 by the front-end. For this command, read-only access to the device is sufficient.</para>
738</entry>
739 </row></tbody></tgroup></informaltable>
740<para>SYNOPSIS
741</para>
742<informaltable><tgroup cols="1"><tbody><row><entry
743 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300744<para>int ioctl(int fd, int request = <link linkend="FE_READ_SNR">FE_READ_SNR</link>, int16_t
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300745 &#x22C6;snr);</para>
746</entry>
747 </row></tbody></tgroup></informaltable>
748<para>PARAMETERS
749</para>
750<informaltable><tgroup cols="2"><tbody><row><entry
751 align="char">
752<para>int fd</para>
753</entry><entry
754 align="char">
755<para>File descriptor returned by a previous call to open().</para>
756</entry>
757 </row><row><entry
758 align="char">
759<para>int request</para>
760</entry><entry
761 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300762<para>Equals <link linkend="FE_READ_SNR">FE_READ_SNR</link> for this command.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300763</entry>
764 </row><row><entry
765 align="char">
766<para>int16_t *snr</para>
767</entry><entry
768 align="char">
769<para>The signal-to-noise ratio is stored into *snr.</para>
770</entry>
771 </row></tbody></tgroup></informaltable>
772
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -0300773&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300774</section>
775
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300776<section id="FE_READ_SIGNAL_STRENGTH">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300777<title>FE_READ_SIGNAL_STRENGTH</title>
778<para>DESCRIPTION
779</para>
780<informaltable><tgroup cols="1"><tbody><row><entry
781 align="char">
782<para>This ioctl call returns the signal strength value for the signal currently received
783 by the front-end. For this command, read-only access to the device is sufficient.</para>
784</entry>
785 </row></tbody></tgroup></informaltable>
786<para>SYNOPSIS
787</para>
788<informaltable><tgroup cols="1"><tbody><row><entry
789 align="char">
790<para>int ioctl( int fd, int request =
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300791 <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link>, int16_t &#x22C6;strength);</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300792</entry>
793 </row></tbody></tgroup></informaltable>
794
795<para>PARAMETERS
796</para>
797<informaltable><tgroup cols="2"><tbody><row><entry
798 align="char">
799<para>int fd</para>
800</entry><entry
801 align="char">
802<para>File descriptor returned by a previous call to open().</para>
803</entry>
804 </row><row><entry
805 align="char">
806<para>int request</para>
807</entry><entry
808 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300809<para>Equals <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link> for this
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300810 command.</para>
811</entry>
812 </row><row><entry
813 align="char">
814<para>int16_t *strength</para>
815</entry><entry
816 align="char">
817<para>The signal strength value is stored into *strength.</para>
818</entry>
819 </row></tbody></tgroup></informaltable>
Mauro Carvalho Chehab66b30b52011-07-06 13:42:08 -0300820
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -0300821&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300822</section>
823
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300824<section id="FE_READ_UNCORRECTED_BLOCKS">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300825<title>FE_READ_UNCORRECTED_BLOCKS</title>
826<para>DESCRIPTION
827</para>
828<informaltable><tgroup cols="1"><tbody><row><entry
829 align="char">
830<para>This ioctl call returns the number of uncorrected blocks detected by the device
831 driver during its lifetime. For meaningful measurements, the increment in block
832 count during a specific time interval should be calculated. For this command,
833 read-only access to the device is sufficient.</para>
834</entry>
835 </row><row><entry
836 align="char">
837<para>Note that the counter will wrap to zero after its maximum count has been
838 reached.</para>
839</entry>
840 </row></tbody></tgroup></informaltable>
841<para>SYNOPSIS
842</para>
843<informaltable><tgroup cols="1"><tbody><row><entry
844 align="char">
845<para>int ioctl( int fd, int request =
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300846 <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link>, uint32_t &#x22C6;ublocks);</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300847</entry>
848 </row></tbody></tgroup></informaltable>
849<para>PARAMETERS
850</para>
851<informaltable><tgroup cols="2"><tbody><row><entry
852 align="char">
853<para>int fd</para>
854</entry><entry
855 align="char">
856<para>File descriptor returned by a previous call to open().</para>
857</entry>
858 </row><row><entry
859 align="char">
860<para>int request</para>
861</entry><entry
862 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300863<para>Equals <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link> for this
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300864 command.</para>
865</entry>
866 </row><row><entry
867 align="char">
868<para>uint32_t *ublocks</para>
869</entry><entry
870 align="char">
871<para>The total number of uncorrected blocks seen by the driver
872 so far.</para>
873</entry>
874 </row></tbody></tgroup></informaltable>
Mauro Carvalho Chehab66b30b52011-07-06 13:42:08 -0300875
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -0300876&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300877</section>
878
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300879<section id="FE_SET_FRONTEND">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300880<title>FE_SET_FRONTEND</title>
881<para>DESCRIPTION
882</para>
883<informaltable><tgroup cols="1"><tbody><row><entry
884 align="char">
885<para>This ioctl call starts a tuning operation using specified parameters. The result
886 of this call will be successful if the parameters were valid and the tuning could
887 be initiated. The result of the tuning operation in itself, however, will arrive
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300888 asynchronously as an event (see documentation for <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> and
889 FrontendEvent.) If a new <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> operation is initiated before
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300890 the previous one was completed, the previous operation will be aborted in favor
891 of the new one. This command requires read/write access to the device.</para>
892</entry>
893 </row></tbody></tgroup></informaltable>
894
895<para>SYNOPSIS
896</para>
897<informaltable><tgroup cols="1"><tbody><row><entry
898 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300899<para>int ioctl(int fd, int request = <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link>,
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300900 struct dvb_frontend_parameters &#x22C6;p);</para>
901</entry>
902 </row></tbody></tgroup></informaltable>
903<para>PARAMETERS
904</para>
905<informaltable><tgroup cols="2"><tbody><row><entry
906 align="char">
907<para>int fd</para>
908</entry><entry
909 align="char">
910<para>File descriptor returned by a previous call to open().</para>
911</entry>
912 </row><row><entry
913 align="char">
914<para>int request</para>
915</entry><entry
916 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300917<para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300918</entry>
919 </row><row><entry
920 align="char">
921<para>struct
922 dvb_frontend_parameters
923 *p</para>
924</entry><entry
925 align="char">
926<para>Points to parameters for tuning operation.</para>
927</entry>
928 </row></tbody></tgroup></informaltable>
Mauro Carvalho Chehab66b30b52011-07-06 13:42:08 -0300929
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -0300930&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300931<informaltable><tgroup cols="2"><tbody><row><entry
932 align="char">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300933<para>EINVAL</para>
934</entry><entry
935 align="char">
936<para>Maximum supported symbol rate reached.</para>
937</entry>
938</row></tbody></tgroup></informaltable>
939</section>
940
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300941<section id="FE_GET_FRONTEND">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300942<title>FE_GET_FRONTEND</title>
943<para>DESCRIPTION
944</para>
945<informaltable><tgroup cols="1"><tbody><row><entry
946 align="char">
947<para>This ioctl call queries the currently effective frontend parameters. For this
948 command, read-only access to the device is sufficient.</para>
949</entry>
950 </row></tbody></tgroup></informaltable>
951
952<para>SYNOPSIS
953</para>
954<informaltable><tgroup cols="1"><tbody><row><entry
955 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300956<para>int ioctl(int fd, int request = <link linkend="FE_GET_FRONTEND">FE_GET_FRONTEND</link>,
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300957 struct dvb_frontend_parameters &#x22C6;p);</para>
958</entry>
959 </row></tbody></tgroup></informaltable>
960
961<para>PARAMETERS
962</para>
963<informaltable><tgroup cols="2"><tbody><row><entry
964 align="char">
965<para>int fd</para>
966</entry><entry
967 align="char">
968<para>File descriptor returned by a previous call to open().</para>
969</entry>
970 </row><row><entry
971 align="char">
972<para>int request</para>
973</entry><entry
974 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -0300975<para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300976</entry>
977 </row><row><entry
978 align="char">
979<para>struct
980 dvb_frontend_parameters
981 *p</para>
982</entry><entry
983 align="char">
984<para>Points to parameters for tuning operation.</para>
985</entry>
986 </row></tbody></tgroup></informaltable>
987
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -0300988&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300989<informaltable><tgroup cols="2"><tbody><row><entry
990 align="char">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -0300991<para>EINVAL</para>
992</entry><entry
993 align="char">
994<para>Maximum supported symbol rate reached.</para>
995</entry>
996 </row></tbody></tgroup></informaltable>
997
998</section>
999
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001000<section id="FE_GET_EVENT">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001001<title>FE_GET_EVENT</title>
1002<para>DESCRIPTION
1003</para>
1004<informaltable><tgroup cols="1"><tbody><row><entry
1005 align="char">
1006<para>This ioctl call returns a frontend event if available. If an event is not
1007 available, the behavior depends on whether the device is in blocking or
1008 non-blocking mode. In the latter case, the call fails immediately with errno
1009 set to EWOULDBLOCK. In the former case, the call blocks until an event
1010 becomes available.</para>
1011</entry>
1012 </row><row><entry
1013 align="char">
1014<para>The standard Linux poll() and/or select() system calls can be used with the
1015 device file descriptor to watch for new events. For select(), the file descriptor
1016 should be included in the exceptfds argument, and for poll(), POLLPRI should
1017 be specified as the wake-up condition. Since the event queue allocated is
1018 rather small (room for 8 events), the queue must be serviced regularly to avoid
1019 overflow. If an overflow happens, the oldest event is discarded from the queue,
1020 and an error (EOVERFLOW) occurs the next time the queue is read. After
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001021 reporting the error condition in this fashion, subsequent
1022 <link linkend="FE_GET_EVENT">FE_GET_EVENT</link>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001023 calls will return events from the queue as usual.</para>
1024</entry>
1025 </row><row><entry
1026 align="char">
1027<para>For the sake of implementation simplicity, this command requires read/write
1028 access to the device.</para>
1029</entry>
1030 </row></tbody></tgroup></informaltable>
1031
1032<para>SYNOPSIS
1033</para>
1034<informaltable><tgroup cols="1"><tbody><row><entry
1035 align="char">
1036<para>int ioctl(int fd, int request = QPSK_GET_EVENT,
1037 struct dvb_frontend_event &#x22C6;ev);</para>
1038</entry>
1039 </row></tbody></tgroup></informaltable>
1040
1041<para>PARAMETERS
1042</para>
1043<informaltable><tgroup cols="2"><tbody><row><entry
1044 align="char">
1045<para>int fd</para>
1046</entry><entry
1047 align="char">
1048<para>File descriptor returned by a previous call to open().</para>
1049</entry>
1050 </row><row><entry
1051 align="char">
1052<para>int request</para>
1053</entry><entry
1054 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001055<para>Equals <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> for this command.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001056</entry>
1057 </row><row><entry
1058 align="char">
1059<para>struct
1060 dvb_frontend_event
1061 *ev</para>
1062</entry><entry
1063 align="char">
1064<para>Points to the location where the event,</para>
1065</entry>
1066 </row><row><entry
1067 align="char">
1068</entry><entry
1069 align="char">
1070<para>if any, is to be stored.</para>
1071</entry>
1072 </row></tbody></tgroup></informaltable>
1073
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -03001074&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001075<informaltable><tgroup cols="2"><tbody><row><entry
1076 align="char">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001077<para>EWOULDBLOCK</para>
1078</entry><entry
1079 align="char">
1080<para>There is no event pending, and the device is in
1081 non-blocking mode.</para>
1082</entry>
1083 </row><row><entry
1084 align="char">
1085<para>EOVERFLOW</para>
1086</entry><entry
1087 align="char">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001088<para>Overflow in event queue - one or more events were lost.</para>
1089</entry>
1090</row></tbody></tgroup></informaltable>
1091</section>
1092
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001093<section id="FE_GET_INFO">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001094<title>FE_GET_INFO</title>
1095<para>DESCRIPTION
1096</para>
1097<informaltable><tgroup cols="1"><tbody><row><entry
1098 align="char">
1099<para>This ioctl call returns information about the front-end. This call only requires
1100 read-only access to the device.</para>
1101</entry>
1102 </row></tbody></tgroup></informaltable>
1103<para>SYNOPSIS
1104</para>
1105
1106<informaltable><tgroup cols="1"><tbody><row><entry
1107 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001108<para> int ioctl(int fd, int request = <link linkend="FE_GET_INFO">FE_GET_INFO</link>, struct
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001109 dvb_frontend_info &#x22C6;info);</para>
1110</entry>
1111 </row></tbody></tgroup></informaltable>
1112<para>PARAMETERS
1113</para>
1114
1115<informaltable><tgroup cols="2"><tbody><row><entry
1116 align="char">
1117<para>int fd</para>
1118</entry><entry
1119 align="char">
1120<para>File descriptor returned by a previous call to open().</para>
1121</entry>
1122 </row><row><entry
1123 align="char">
1124<para>int request</para>
1125</entry><entry
1126 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001127<para>Equals <link linkend="FE_GET_INFO">FE_GET_INFO</link> for this command.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001128</entry>
1129 </row><row><entry
1130 align="char">
1131<para>struct
1132 dvb_frontend_info
1133 *info</para>
1134</entry><entry
1135 align="char">
1136<para>Points to the location where the front-end information is
1137 to be stored.</para>
1138</entry>
1139 </row></tbody></tgroup></informaltable>
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -03001140&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001141</section>
1142
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001143<section id="FE_DISEQC_RESET_OVERLOAD">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001144<title>FE_DISEQC_RESET_OVERLOAD</title>
1145<para>DESCRIPTION
1146</para>
1147<informaltable><tgroup cols="1"><tbody><row><entry
1148 align="char">
1149<para>If the bus has been automatically powered off due to power overload, this ioctl
1150 call restores the power to the bus. The call requires read/write access to the
1151 device. This call has no effect if the device is manually powered off. Not all
1152 DVB adapters support this ioctl.</para>
1153</entry>
1154 </row></tbody></tgroup></informaltable>
1155
1156<para>SYNOPSIS
1157</para>
1158<informaltable><tgroup cols="1"><tbody><row><entry
1159 align="char">
1160<para>int ioctl(int fd, int request =
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001161 <link linkend="FE_DISEQC_RESET_OVERLOAD">FE_DISEQC_RESET_OVERLOAD</link>);</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001162</entry>
1163 </row></tbody></tgroup></informaltable>
1164<para>PARAMETERS
1165</para>
1166<informaltable><tgroup cols="2"><tbody><row><entry
1167 align="char">
1168<para>int fd</para>
1169</entry><entry
1170 align="char">
1171<para>File descriptor returned by a previous call to open().</para>
1172</entry>
1173 </row><row><entry
1174 align="char">
1175<para>int request</para>
1176</entry><entry
1177 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001178<para>Equals <link linkend="FE_DISEQC_RESET_OVERLOAD">FE_DISEQC_RESET_OVERLOAD</link> for this
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001179 command.</para>
1180</entry>
1181 </row></tbody></tgroup></informaltable>
1182
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -03001183&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001184</section>
1185
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001186<section id="FE_DISEQC_SEND_MASTER_CMD">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001187<title>FE_DISEQC_SEND_MASTER_CMD</title>
1188<para>DESCRIPTION
1189</para>
1190<informaltable><tgroup cols="1"><tbody><row><entry
1191 align="char">
1192<para>This ioctl call is used to send a a DiSEqC command.</para>
1193</entry>
1194 </row></tbody></tgroup></informaltable>
1195<para>SYNOPSIS
1196</para>
1197<informaltable><tgroup cols="1"><tbody><row><entry
1198 align="char">
1199<para>int ioctl(int fd, int request =
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001200 <link linkend="FE_DISEQC_SEND_MASTER_CMD">FE_DISEQC_SEND_MASTER_CMD</link>, struct
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001201 dvb_diseqc_master_cmd &#x22C6;cmd);</para>
1202</entry>
1203 </row></tbody></tgroup></informaltable>
1204
1205<para>PARAMETERS
1206</para>
1207<informaltable><tgroup cols="2"><tbody><row><entry
1208 align="char">
1209<para>int fd</para>
1210</entry><entry
1211 align="char">
1212<para>File descriptor returned by a previous call to open().</para>
1213</entry>
1214 </row><row><entry
1215 align="char">
1216<para>int request</para>
1217</entry><entry
1218 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001219<para>Equals <link linkend="FE_DISEQC_SEND_MASTER_CMD">FE_DISEQC_SEND_MASTER_CMD</link> for this
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001220 command.</para>
1221</entry>
1222 </row><row><entry
1223 align="char">
1224<para>struct
1225 dvb_diseqc_master_cmd
1226 *cmd</para>
1227</entry><entry
1228 align="char">
1229<para>Pointer to the command to be transmitted.</para>
1230</entry>
1231 </row></tbody></tgroup></informaltable>
1232
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -03001233&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001234</section>
1235
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001236<section id="FE_DISEQC_RECV_SLAVE_REPLY">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001237<title>FE_DISEQC_RECV_SLAVE_REPLY</title>
1238<para>DESCRIPTION
1239</para>
1240<informaltable><tgroup cols="1"><tbody><row><entry
1241 align="char">
1242<para>This ioctl call is used to receive reply to a DiSEqC 2.0 command.</para>
1243</entry>
1244 </row></tbody></tgroup></informaltable>
1245
1246<para>SYNOPSIS
1247</para>
1248<informaltable><tgroup cols="1"><tbody><row><entry
1249 align="char">
1250<para>int ioctl(int fd, int request =
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001251 <link linkend="FE_DISEQC_RECV_SLAVE_REPLY">FE_DISEQC_RECV_SLAVE_REPLY</link>, struct
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001252 dvb_diseqc_slave_reply &#x22C6;reply);</para>
1253</entry>
1254 </row></tbody></tgroup></informaltable>
1255
1256<para>PARAMETERS
1257</para>
1258<informaltable><tgroup cols="2"><tbody><row><entry
1259 align="char">
1260<para>int fd</para>
1261</entry><entry
1262 align="char">
1263<para>File descriptor returned by a previous call to open().</para>
1264</entry>
1265 </row><row><entry
1266 align="char">
1267<para>int request</para>
1268</entry><entry
1269 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001270<para>Equals <link linkend="FE_DISEQC_RECV_SLAVE_REPLY">FE_DISEQC_RECV_SLAVE_REPLY</link> for this
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001271 command.</para>
1272</entry>
1273 </row><row><entry
1274 align="char">
1275<para>struct
1276 dvb_diseqc_slave_reply
1277 *reply</para>
1278</entry><entry
1279 align="char">
1280<para>Pointer to the command to be received.</para>
1281</entry>
1282 </row></tbody></tgroup></informaltable>
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -03001283&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001284</section>
1285
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001286<section id="FE_DISEQC_SEND_BURST">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001287<title>FE_DISEQC_SEND_BURST</title>
1288<para>DESCRIPTION
1289</para>
1290<informaltable><tgroup cols="1"><tbody><row><entry
1291 align="char">
1292<para>This ioctl call is used to send a 22KHz tone burst.</para>
1293</entry>
1294 </row></tbody></tgroup></informaltable>
1295
1296<para>SYNOPSIS
1297</para>
1298<informaltable><tgroup cols="1"><tbody><row><entry
1299 align="char">
1300<para>int ioctl(int fd, int request =
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001301 <link linkend="FE_DISEQC_SEND_BURST">FE_DISEQC_SEND_BURST</link>, fe_sec_mini_cmd_t burst);</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001302</entry>
1303 </row></tbody></tgroup></informaltable>
1304
1305<para>PARAMETERS
1306</para>
1307<informaltable><tgroup cols="2"><tbody><row><entry
1308 align="char">
1309<para>int fd</para>
1310</entry><entry
1311 align="char">
1312<para>File descriptor returned by a previous call to open().</para>
1313</entry>
1314 </row><row><entry
1315 align="char">
1316<para>int request</para>
1317</entry><entry
1318 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001319<para>Equals <link linkend="FE_DISEQC_SEND_BURST">FE_DISEQC_SEND_BURST</link> for this command.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001320</entry>
1321 </row><row><entry
1322 align="char">
1323<para>fe_sec_mini_cmd_t
1324 burst</para>
1325</entry><entry
1326 align="char">
1327<para>burst A or B.</para>
1328</entry>
1329 </row></tbody></tgroup></informaltable>
1330
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -03001331&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001332</section>
1333
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001334<section id="FE_SET_TONE">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001335<title>FE_SET_TONE</title>
1336<para>DESCRIPTION
1337</para>
1338<informaltable><tgroup cols="1"><tbody><row><entry
1339 align="char">
1340<para>This call is used to set the generation of the continuous 22kHz tone. This call
1341 requires read/write permissions.</para>
1342</entry>
1343 </row></tbody></tgroup></informaltable>
1344<para>SYNOPSIS
1345</para>
1346<informaltable><tgroup cols="1"><tbody><row><entry
1347 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001348<para>int ioctl(int fd, int request = <link linkend="FE_SET_TONE">FE_SET_TONE</link>,
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001349 fe_sec_tone_mode_t tone);</para>
1350</entry>
1351 </row></tbody></tgroup></informaltable>
1352<para>PARAMETERS
1353</para>
1354<informaltable><tgroup cols="2"><tbody><row><entry
1355 align="char">
1356<para>int fd</para>
1357</entry><entry
1358 align="char">
1359<para>File descriptor returned by a previous call to open().</para>
1360</entry>
1361 </row><row><entry
1362 align="char">
1363<para>int request</para>
1364</entry><entry
1365 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001366<para>Equals <link linkend="FE_SET_TONE">FE_SET_TONE</link> for this command.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001367</entry>
1368 </row><row><entry
1369 align="char">
1370<para>fe_sec_tone_mode_t
1371 tone</para>
1372</entry><entry
1373 align="char">
1374<para>The requested tone generation mode (on/off).</para>
1375</entry>
1376 </row></tbody></tgroup></informaltable>
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -03001377&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001378</section>
1379
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001380<section id="FE_SET_VOLTAGE">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001381<title>FE_SET_VOLTAGE</title>
1382<para>DESCRIPTION
1383</para>
1384<informaltable><tgroup cols="1"><tbody><row><entry
1385 align="char">
1386<para>This call is used to set the bus voltage. This call requires read/write
1387 permissions.</para>
1388</entry>
1389 </row></tbody></tgroup></informaltable>
1390<para>SYNOPSIS
1391</para>
1392<informaltable><tgroup cols="1"><tbody><row><entry
1393 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001394<para>int ioctl(int fd, int request = <link linkend="FE_SET_VOLTAGE">FE_SET_VOLTAGE</link>,
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001395 fe_sec_voltage_t voltage);</para>
1396</entry>
1397 </row></tbody></tgroup></informaltable>
1398
1399<para>PARAMETERS
1400</para>
1401<informaltable><tgroup cols="2"><tbody><row><entry
1402 align="char">
1403<para>int fd</para>
1404</entry><entry
1405 align="char">
1406<para>File descriptor returned by a previous call to open().</para>
1407</entry>
1408 </row><row><entry
1409 align="char">
1410<para>int request</para>
1411</entry><entry
1412 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001413<para>Equals <link linkend="FE_SET_VOLTAGE">FE_SET_VOLTAGE</link> for this command.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001414</entry>
1415 </row><row><entry
1416 align="char">
1417<para>fe_sec_voltage_t
1418 voltage</para>
1419</entry><entry
1420 align="char">
1421<para>The requested bus voltage.</para>
1422</entry>
1423 </row></tbody></tgroup></informaltable>
1424
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -03001425&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001426</section>
1427
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001428<section id="FE_ENABLE_HIGH_LNB_VOLTAGE">
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001429<title>FE_ENABLE_HIGH_LNB_VOLTAGE</title>
1430<para>DESCRIPTION
1431</para>
1432<informaltable><tgroup cols="1"><tbody><row><entry
1433 align="char">
1434<para>If high != 0 enables slightly higher voltages instead of 13/18V (to compensate
1435 for long cables). This call requires read/write permissions. Not all DVB
1436 adapters support this ioctl.</para>
1437</entry>
1438 </row></tbody></tgroup></informaltable>
1439
1440<para>SYNOPSIS
1441</para>
1442<informaltable><tgroup cols="1"><tbody><row><entry
1443 align="char">
1444<para>int ioctl(int fd, int request =
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001445 <link linkend="FE_ENABLE_HIGH_LNB_VOLTAGE">FE_ENABLE_HIGH_LNB_VOLTAGE</link>, int high);</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001446</entry>
1447 </row></tbody></tgroup></informaltable>
1448
1449<para>PARAMETERS
1450</para>
1451<informaltable><tgroup cols="2"><tbody><row><entry
1452 align="char">
1453<para>int fd</para>
1454</entry><entry
1455 align="char">
1456<para>File descriptor returned by a previous call to open().</para>
1457</entry>
1458 </row><row><entry
1459 align="char">
1460<para>int request</para>
1461</entry><entry
1462 align="char">
Mauro Carvalho Chehab6dea3832009-10-24 19:10:46 -03001463<para>Equals <link linkend="FE_SET_VOLTAGE">FE_SET_VOLTAGE</link> for this command.</para>
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001464</entry>
1465 </row><row><entry
1466 align="char">
1467<para>int high</para>
1468</entry><entry
1469 align="char">
1470<para>The requested bus voltage.</para>
1471</entry>
1472 </row></tbody></tgroup></informaltable>
1473
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -03001474&return-value-dvb;
Mauro Carvalho Chehab8e080c22009-09-13 22:16:04 -03001475</section>
Mauro Carvalho Chehabf0964a72009-10-24 19:55:24 -03001476
1477<section id="FE_SET_FRONTEND_TUNE_MODE">
1478<title>FE_SET_FRONTEND_TUNE_MODE</title>
1479<para>DESCRIPTION</para>
1480<informaltable><tgroup cols="1"><tbody><row>
1481<entry align="char">
1482<para>Allow setting tuner mode flags to the frontend.</para>
1483</entry>
1484</row></tbody></tgroup></informaltable>
1485
1486<para>SYNOPSIS</para>
1487<informaltable><tgroup cols="1"><tbody><row>
1488<entry align="char">
1489<para>int ioctl(int fd, int request =
1490<link linkend="FE_SET_FRONTEND_TUNE_MODE">FE_SET_FRONTEND_TUNE_MODE</link>, unsigned int flags);</para>
1491</entry>
1492</row></tbody></tgroup></informaltable>
1493
1494<para>PARAMETERS</para>
1495<informaltable><tgroup cols="2"><tbody><row>
1496<entry align="char">
1497 <para>unsigned int flags</para>
1498</entry>
1499<entry align="char">
1500<para>
1501FE_TUNE_MODE_ONESHOT When set, this flag will disable any zigzagging or other "normal" tuning behaviour. Additionally, there will be no automatic monitoring of the lock status, and hence no frontend events will be generated. If a frontend device is closed, this flag will be automatically turned off when the device is reopened read-write.
1502</para>
1503</entry>
1504 </row></tbody></tgroup></informaltable>
1505
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -03001506&return-value-dvb;
Mauro Carvalho Chehab603c0d802009-10-24 20:19:20 -03001507</section>
1508
1509<section id="FE_DISHNETWORK_SEND_LEGACY_CMD">
1510 <title>FE_DISHNETWORK_SEND_LEGACY_CMD</title>
1511<para>DESCRIPTION</para>
1512<informaltable><tgroup cols="1"><tbody><row>
1513<entry align="char">
1514<para>WARNING: This is a very obscure legacy command, used only at stv0299 driver. Should not be used on newer drivers.</para>
1515<para>It provides a non-standard method for selecting Diseqc voltage on the frontend, for Dish Network legacy switches.</para>
1516<para>As support for this ioctl were added in 2004, this means that such dishes were already legacy in 2004.</para>
1517</entry>
1518</row></tbody></tgroup></informaltable>
1519
1520<para>SYNOPSIS</para>
1521<informaltable><tgroup cols="1"><tbody><row>
1522<entry align="char">
1523<para>int ioctl(int fd, int request =
1524 <link linkend="FE_DISHNETWORK_SEND_LEGACY_CMD">FE_DISHNETWORK_SEND_LEGACY_CMD</link>, unsigned long cmd);</para>
1525</entry>
1526</row></tbody></tgroup></informaltable>
1527
1528<para>PARAMETERS</para>
1529<informaltable><tgroup cols="2"><tbody><row>
1530<entry align="char">
1531 <para>unsigned long cmd</para>
1532</entry>
1533<entry align="char">
1534<para>
1535sends the specified raw cmd to the dish via DISEqC.
1536</para>
1537</entry>
1538 </row></tbody></tgroup></informaltable>
1539
Mauro Carvalho Chehab3de530f2011-07-05 12:36:01 -03001540&return-value-dvb;
Mauro Carvalho Chehabb8321042009-10-24 21:01:22 -03001541</section>
Mauro Carvalho Chehabf0964a72009-10-24 19:55:24 -03001542
1543</section>
Mauro Carvalho Chehab603c0d802009-10-24 20:19:20 -03001544
Mauro Carvalho Chehabb8321042009-10-24 21:01:22 -03001545&sub-dvbproperty;