diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/DocBook/media/Makefile | 2 | ||||
-rw-r--r-- | Documentation/DocBook/media/dvb/frontend.xml | 204 |
2 files changed, 131 insertions, 75 deletions
diff --git a/Documentation/DocBook/media/Makefile b/Documentation/DocBook/media/Makefile index 30360709ace8..f2216b05b2d5 100644 --- a/Documentation/DocBook/media/Makefile +++ b/Documentation/DocBook/media/Makefile | |||
@@ -120,13 +120,13 @@ DOCUMENTED = \ | |||
120 | -e "s/v4l2\-mpeg\-vbi\-ITV0/v4l2-mpeg-vbi-itv0-1/g" | 120 | -e "s/v4l2\-mpeg\-vbi\-ITV0/v4l2-mpeg-vbi-itv0-1/g" |
121 | 121 | ||
122 | DVB_DOCUMENTED = \ | 122 | DVB_DOCUMENTED = \ |
123 | -e "s,\(define\s\+\)\([A-Z0-9_]\+\)\(\s\+_IO\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \ | ||
124 | -e "s/\(linkend\=\"\)FE_SET_PROPERTY/\1FE_GET_PROPERTY/g" \ | 123 | -e "s/\(linkend\=\"\)FE_SET_PROPERTY/\1FE_GET_PROPERTY/g" \ |
125 | -e "s,\(struct\s\+\)\([a-z0-9_]\+\)\(\s\+{\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \ | 124 | -e "s,\(struct\s\+\)\([a-z0-9_]\+\)\(\s\+{\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \ |
126 | -e "s,\(}\s\+\)\([a-z0-9_]\+_t\+\),\1\<link linkend=\"\2\">\2\<\/link\>,g" \ | 125 | -e "s,\(}\s\+\)\([a-z0-9_]\+_t\+\),\1\<link linkend=\"\2\">\2\<\/link\>,g" \ |
127 | -e "s,\(define\s\+\)\(DTV_[A-Z0-9_]\+\)\(\s\+[0-9]\+\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \ | 126 | -e "s,\(define\s\+\)\(DTV_[A-Z0-9_]\+\)\(\s\+[0-9]\+\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \ |
128 | -e ":a;s/\(linkend=\".*\)_\(.*\">\)/\1-\2/;ta" \ | 127 | -e ":a;s/\(linkend=\".*\)_\(.*\">\)/\1-\2/;ta" \ |
129 | -e "s,DTV-ISDBT-LAYER[A-C],DTV-ISDBT-LAYER,g" \ | 128 | -e "s,DTV-ISDBT-LAYER[A-C],DTV-ISDBT-LAYER,g" \ |
129 | -e "s,\(define\s\+\)\([A-Z0-9_]\+\)\(\s\+_IO\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \ | ||
130 | # -e "s,\(\s\+\)\(FE_[A-Z0-9_]\+\)\([\s\=\,]*\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \ | 130 | # -e "s,\(\s\+\)\(FE_[A-Z0-9_]\+\)\([\s\=\,]*\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \ |
131 | 131 | ||
132 | # | 132 | # |
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 |
204 | by</para> | 204 | by</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 |
224 | the kind of hardware you are using. All kinds of parameters are combined as an | 224 | the kind of hardware you are using. All kinds of parameters are combined as an |
225 | union in the FrontendParameters structure:</para> | 225 | union in the FrontendParameters structure:</para> |
226 | <programlisting> | 226 | <programlisting> |
227 | struct dvb_frontend_parameters { | 227 | struct dvb_frontend_parameters { |
228 | uint32_t frequency; /⋆ (absolute) frequency in Hz for QAM/OFDM ⋆/ | 228 | uint32_t frequency; /⋆ (absolute) frequency in Hz for QAM/OFDM ⋆/ |
229 | /⋆ intermediate frequency in kHz for QPSK ⋆/ | 229 | /⋆ intermediate frequency in kHz for QPSK ⋆/ |
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 |
240 | frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of | ||
241 | the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and | ||
242 | OFDM 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; /⋆ symbol rate in Symbols per second ⋆/ | 249 | uint32_t symbol_rate; /⋆ symbol rate in Symbols per second ⋆/ |
242 | fe_code_rate_t fec_inner; /⋆ forward error correction (see above) ⋆/ | 250 | fe_code_rate_t fec_inner; /⋆ forward error correction (see above) ⋆/ |
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; /⋆ symbol rate in Symbols per second ⋆/ | 259 | uint32_t symbol_rate; /⋆ symbol rate in Symbols per second ⋆/ |
@@ -250,8 +261,10 @@ union in the FrontendParameters structure:</para> | |||
250 | fe_modulation_t modulation; /⋆ modulation type (see above) ⋆/ | 261 | fe_modulation_t modulation; /⋆ modulation type (see above) ⋆/ |
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> |
267 | frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of | 280 | <section id="dvb-vsb-parameters"> |
268 | the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and | 281 | <title>VSB parameters</title> |
269 | OFDM 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> |
270 | Hz. | 283 | <programlisting> |
271 | </para> | 284 | struct dvb_vsb_parameters { |
285 | fe_modulation_t modulation; /⋆ modulation type (see above) ⋆/ | ||
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 { | 294 | typedef 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 |
283 | itself. | 302 | itself. |
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 { | 310 | typedef 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 |
302 | detection. | 326 | detection. |
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 |
305 | modulation mode which can be one of the following: | 332 | modulation 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 { | 357 | typedef 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, | 371 | typedef 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, | 385 | typedef 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> | ||
400 | typedef 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 { |