aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/DocBook/media/dvb/frontend.xml
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/DocBook/media/dvb/frontend.xml')
-rw-r--r--Documentation/DocBook/media/dvb/frontend.xml204
1 files changed, 130 insertions, 74 deletions
diff --git a/Documentation/DocBook/media/dvb/frontend.xml b/Documentation/DocBook/media/dvb/frontend.xml
index 65a790e196bc..a925b4507cef 100644
--- a/Documentation/DocBook/media/dvb/frontend.xml
+++ b/Documentation/DocBook/media/dvb/frontend.xml
@@ -65,7 +65,7 @@ supported via the new <link linkend="FE_GET_SET_PROPERTY">FE_GET_PROPERTY/FE_GET
65</para> 65</para>
66</section> 66</section>
67 67
68<section id="frontend_caps"> 68<section id="fe-caps-t">
69<title>frontend capabilities</title> 69<title>frontend capabilities</title>
70 70
71<para>Capabilities describe what a frontend can do. Some capabilities can only be supported for 71<para>Capabilities describe what a frontend can do. Some capabilities can only be supported for
@@ -106,7 +106,7 @@ a specific frontend type.</para>
106</programlisting> 106</programlisting>
107</section> 107</section>
108 108
109<section id="frontend_info"> 109<section id="dvb-frontend-info">
110<title>frontend information</title> 110<title>frontend information</title>
111 111
112<para>Information about the frontend ca be queried with 112<para>Information about the frontend ca be queried with
@@ -129,7 +129,7 @@ a specific frontend type.</para>
129</programlisting> 129</programlisting>
130</section> 130</section>
131 131
132<section id="frontend_diseqc"> 132<section id="dvb-diseqc-master-cmd">
133<title>diseqc master command</title> 133<title>diseqc master command</title>
134 134
135<para>A message sent from the frontend to DiSEqC capable equipment.</para> 135<para>A message sent from the frontend to DiSEqC capable equipment.</para>
@@ -153,7 +153,7 @@ a specific frontend type.</para>
153</programlisting> 153</programlisting>
154</section> 154</section>
155 155
156<section id="frontend_diseqc_slave_reply"> 156<section id="fe-sec-voltage-t">
157<title>diseqc slave reply</title> 157<title>diseqc slave reply</title>
158<para>The voltage is usually used with non-DiSEqC capable LNBs to switch the polarzation 158<para>The voltage is usually used with non-DiSEqC capable LNBs to switch the polarzation
159(horizontal/vertical). When using DiSEqC epuipment this voltage has to be switched 159(horizontal/vertical). When using DiSEqC epuipment this voltage has to be switched
@@ -166,7 +166,7 @@ consistently to the DiSEqC commands as described in the DiSEqC spec.</para>
166</programlisting> 166</programlisting>
167</section> 167</section>
168 168
169<section id="frontend_sec_tone"> 169<section id="fe-sec-tone-mode-t">
170<title>SEC continuous tone</title> 170<title>SEC continuous tone</title>
171 171
172<para>The continuous 22KHz tone is usually used with non-DiSEqC capable LNBs to switch the 172<para>The continuous 22KHz tone is usually used with non-DiSEqC capable LNBs to switch the
@@ -181,7 +181,7 @@ spec.</para>
181</programlisting> 181</programlisting>
182</section> 182</section>
183 183
184<section id="frontend_sec_burst"> 184<section id="fe-sec-mini-cmd-t">
185<title>SEC tone burst</title> 185<title>SEC tone burst</title>
186 186
187<para>The 22KHz tone burst is usually used with non-DiSEqC capable switches to select 187<para>The 22KHz tone burst is usually used with non-DiSEqC capable switches to select
@@ -198,7 +198,7 @@ spec.</para>
198<para></para> 198<para></para>
199</section> 199</section>
200 200
201<section id="frontend_status"> 201<section id="fe-status-t">
202<title>frontend status</title> 202<title>frontend status</title>
203<para>Several functions of the frontend device use the fe_status data type defined 203<para>Several functions of the frontend device use the fe_status data type defined
204by</para> 204by</para>
@@ -218,31 +218,42 @@ by</para>
218 218
219</section> 219</section>
220 220
221<section id="frontend_params"> 221<section id="dvb-frontend-parameters">
222<title>frontend parameters</title> 222<title>frontend parameters</title>
223<para>The kind of parameters passed to the frontend device for tuning depend on 223<para>The kind of parameters passed to the frontend device for tuning depend on
224the kind of hardware you are using. All kinds of parameters are combined as an 224the kind of hardware you are using. All kinds of parameters are combined as an
225union in the FrontendParameters structure:</para> 225union in the FrontendParameters structure:</para>
226<programlisting> 226<programlisting>
227 struct dvb_frontend_parameters { 227struct dvb_frontend_parameters {
228 uint32_t frequency; /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/ 228 uint32_t frequency; /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/
229 /&#x22C6; intermediate frequency in kHz for QPSK &#x22C6;/ 229 /&#x22C6; intermediate frequency in kHz for QPSK &#x22C6;/
230 fe_spectral_inversion_t inversion; 230 fe_spectral_inversion_t inversion;
231 union { 231 union {
232 struct dvb_qpsk_parameters qpsk; 232 struct dvb_qpsk_parameters qpsk;
233 struct dvb_qam_parameters qam; 233 struct dvb_qam_parameters qam;
234 struct dvb_ofdm_parameters ofdm; 234 struct dvb_ofdm_parameters ofdm;
235 } u; 235 struct dvb_vsb_parameters vsb;
236 }; 236 } u;
237};
237</programlisting> 238</programlisting>
238<para>For satellite QPSK frontends you have to use the <constant>QPSKParameters</constant> member defined by</para> 239<para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate
240frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of
241the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and
242OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz.
243</para>
244<section id="dvb-qpsk-parameters">
245<title>QPSK parameters</title>
246<para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para>
239<programlisting> 247<programlisting>
240 struct dvb_qpsk_parameters { 248 struct dvb_qpsk_parameters {
241 uint32_t symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/ 249 uint32_t symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/
242 fe_code_rate_t fec_inner; /&#x22C6; forward error correction (see above) &#x22C6;/ 250 fe_code_rate_t fec_inner; /&#x22C6; forward error correction (see above) &#x22C6;/
243 }; 251 };
244</programlisting> 252</programlisting>
245<para>for cable QAM frontend you use the <constant>QAMParameters</constant> structure</para> 253</section>
254<section id="dvb-qam-parameters">
255<title>QAM parameters</title>
256<para>for cable QAM frontend you use the <constant>dvb_qam_parameters</constant> structure:</para>
246<programlisting> 257<programlisting>
247 struct dvb_qam_parameters { 258 struct dvb_qam_parameters {
248 uint32_t symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/ 259 uint32_t symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/
@@ -250,8 +261,10 @@ union in the FrontendParameters structure:</para>
250 fe_modulation_t modulation; /&#x22C6; modulation type (see above) &#x22C6;/ 261 fe_modulation_t modulation; /&#x22C6; modulation type (see above) &#x22C6;/
251 }; 262 };
252</programlisting> 263</programlisting>
253<para>DVB-T frontends are supported by the <constant>OFDMParamters</constant> structure 264</section>
254</para> 265<section id="dvb-ofdm-parameters">
266<title>OFDM parameters</title>
267<para>DVB-T frontends are supported by the <constant>dvb_ofdm_parameters</constant> structure:</para>
255<programlisting> 268<programlisting>
256 struct dvb_ofdm_parameters { 269 struct dvb_ofdm_parameters {
257 fe_bandwidth_t bandwidth; 270 fe_bandwidth_t bandwidth;
@@ -263,86 +276,128 @@ union in the FrontendParameters structure:</para>
263 fe_hierarchy_t hierarchy_information; 276 fe_hierarchy_t hierarchy_information;
264 }; 277 };
265</programlisting> 278</programlisting>
266<para>In the case of QPSK frontends the <constant>Frequency</constant> field specifies the intermediate 279</section>
267frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of 280<section id="dvb-vsb-parameters">
268the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and 281<title>VSB parameters</title>
269OFDM frontends the Frequency specifies the absolute frequency and is given in 282<para>DVB-T frontends are supported by the <constant>dvb_vsb_parameters</constant> structure:</para>
270Hz. 283<programlisting>
271</para> 284struct dvb_vsb_parameters {
285 fe_modulation_t modulation; /&#x22C6; modulation type (see above) &#x22C6;/
286};
287</programlisting>
288</section>
289<section id="fe-spectral-inversion-t">
290<title>frontend spectral inversion</title>
272<para>The Inversion field can take one of these values: 291<para>The Inversion field can take one of these values:
273</para> 292</para>
274<programlisting> 293<programlisting>
275 typedef enum fe_spectral_inversion { 294typedef enum fe_spectral_inversion {
276 INVERSION_OFF, 295 INVERSION_OFF,
277 INVERSION_ON, 296 INVERSION_ON,
278 INVERSION_AUTO 297 INVERSION_AUTO
279 } fe_spectral_inversion_t; 298} fe_spectral_inversion_t;
280</programlisting> 299</programlisting>
281<para>It indicates if spectral inversion should be presumed or not. In the automatic setting 300<para>It indicates if spectral inversion should be presumed or not. In the automatic setting
282(<constant>INVERSION_AUTO</constant>) the hardware will try to figure out the correct setting by 301(<constant>INVERSION_AUTO</constant>) the hardware will try to figure out the correct setting by
283itself. 302itself.
284</para> 303</para>
304</section>
305<section id="fe-code-rate-t">
306<title>frontend code rate</title>
285<para>The possible values for the <constant>FEC_inner</constant> field are 307<para>The possible values for the <constant>FEC_inner</constant> field are
286</para> 308</para>
287<programlisting> 309<programlisting>
288 typedef enum fe_code_rate { 310typedef enum fe_code_rate {
289 FEC_NONE = 0, 311 FEC_NONE = 0,
290 FEC_1_2, 312 FEC_1_2,
291 FEC_2_3, 313 FEC_2_3,
292 FEC_3_4, 314 FEC_3_4,
293 FEC_4_5, 315 FEC_4_5,
294 FEC_5_6, 316 FEC_5_6,
295 FEC_6_7, 317 FEC_6_7,
296 FEC_7_8, 318 FEC_7_8,
297 FEC_8_9, 319 FEC_8_9,
298 FEC_AUTO 320 FEC_AUTO,
299 } fe_code_rate_t; 321 FEC_3_5,
322 FEC_9_10,
323} fe_code_rate_t;
300</programlisting> 324</programlisting>
301<para>which correspond to error correction rates of 1/2, 2/3, etc., no error correction or auto 325<para>which correspond to error correction rates of 1/2, 2/3, etc., no error correction or auto
302detection. 326detection.
303</para> 327</para>
328</section>
329<section id="fe-modulation-t">
330<title>frontend modulation type for QAM and OFDM</title>
304<para>For cable and terrestrial frontends (QAM and OFDM) one also has to specify the quadrature 331<para>For cable and terrestrial frontends (QAM and OFDM) one also has to specify the quadrature
305modulation mode which can be one of the following: 332modulation mode which can be one of the following:
306</para> 333</para>
307<programlisting> 334<programlisting>
308 typedef enum fe_modulation { 335 typedef enum fe_modulation {
309 QPSK, 336 QPSK,
310 QAM_16, 337 QAM_16,
311 QAM_32, 338 QAM_32,
312 QAM_64, 339 QAM_64,
313 QAM_128, 340 QAM_128,
314 QAM_256, 341 QAM_256,
315 QAM_AUTO 342 QAM_AUTO,
343 VSB_8,
344 VSB_16,
345 PSK_8,
346 APSK_16,
347 APSK_32,
348 DQPSK,
316 } fe_modulation_t; 349 } fe_modulation_t;
317</programlisting> 350</programlisting>
351</section>
318<para>Finally, there are several more parameters for OFDM: 352<para>Finally, there are several more parameters for OFDM:
319</para> 353</para>
354<section id="fe-transmit-mode-t">
355<title>Number of carriers per channel, on OFTM modulation</title>
320<programlisting> 356<programlisting>
321 typedef enum fe_transmit_mode { 357typedef enum fe_transmit_mode {
322 TRANSMISSION_MODE_2K, 358 TRANSMISSION_MODE_2K,
323 TRANSMISSION_MODE_8K, 359 TRANSMISSION_MODE_8K,
324 TRANSMISSION_MODE_AUTO 360 TRANSMISSION_MODE_AUTO,
361 TRANSMISSION_MODE_4K,
362 TRANSMISSION_MODE_1K,
363 TRANSMISSION_MODE_16K,
364 TRANSMISSION_MODE_32K,
325 } fe_transmit_mode_t; 365 } fe_transmit_mode_t;
326</programlisting> 366</programlisting>
327 <programlisting> 367</section>
328 typedef enum fe_bandwidth { 368<section id="fe-bandwidth-t">
329 BANDWIDTH_8_MHZ, 369<title>frontend bandwidth</title>
330 BANDWIDTH_7_MHZ, 370<programlisting>
331 BANDWIDTH_6_MHZ, 371typedef enum fe_bandwidth {
332 BANDWIDTH_AUTO 372 BANDWIDTH_8_MHZ,
333 } fe_bandwidth_t; 373 BANDWIDTH_7_MHZ,
374 BANDWIDTH_6_MHZ,
375 BANDWIDTH_AUTO,
376 BANDWIDTH_5_MHZ,
377 BANDWIDTH_10_MHZ,
378 BANDWIDTH_1_712_MHZ,
379} fe_bandwidth_t;
334</programlisting> 380</programlisting>
335 <programlisting> 381</section>
336 typedef enum fe_guard_interval { 382<section id="fe-guard-interval-t">
337 GUARD_INTERVAL_1_32, 383<title>frontend guard inverval</title>
338 GUARD_INTERVAL_1_16, 384<programlisting>
339 GUARD_INTERVAL_1_8, 385typedef enum fe_guard_interval {
340 GUARD_INTERVAL_1_4, 386 GUARD_INTERVAL_1_32,
341 GUARD_INTERVAL_AUTO 387 GUARD_INTERVAL_1_16,
342 } fe_guard_interval_t; 388 GUARD_INTERVAL_1_8,
389 GUARD_INTERVAL_1_4,
390 GUARD_INTERVAL_AUTO,
391 GUARD_INTERVAL_1_128,
392 GUARD_INTERVAL_19_128,
393 GUARD_INTERVAL_19_256,
394} fe_guard_interval_t;
343</programlisting> 395</programlisting>
344 <programlisting> 396</section>
345 typedef enum fe_hierarchy { 397<section id="fe-hierarchy-t">
398<title>frontend hierarchy</title>
399<programlisting>
400typedef enum fe_hierarchy {
346 HIERARCHY_NONE, 401 HIERARCHY_NONE,
347 HIERARCHY_1, 402 HIERARCHY_1,
348 HIERARCHY_2, 403 HIERARCHY_2,
@@ -350,10 +405,11 @@ modulation mode which can be one of the following:
350 HIERARCHY_AUTO 405 HIERARCHY_AUTO
351 } fe_hierarchy_t; 406 } fe_hierarchy_t;
352</programlisting> 407</programlisting>
408</section>
353 409
354</section> 410</section>
355 411
356<section id="frontend_events"> 412<section id="dvb-frontend-event">
357<title>frontend events</title> 413<title>frontend events</title>
358 <programlisting> 414 <programlisting>
359 struct dvb_frontend_event { 415 struct dvb_frontend_event {