Merge remote-tracking branch 'mmc-uh/next'
[deliverable/linux.git] / Documentation / media / uapi / dvb / dvb-frontend-parameters.rst
CommitLineData
5377d91f
MH
1.. -*- coding: utf-8; mode: rst -*-
2
e8be7e97 3.. c:type:: dvb_frontend_parameters
5377d91f
MH
4
5*******************
6frontend parameters
7*******************
8
9The kind of parameters passed to the frontend device for tuning depend
10on the kind of hardware you are using.
11
12The struct ``dvb_frontend_parameters`` uses an union with specific
13per-system parameters. However, as newer delivery systems required more
14data, the structure size weren't enough to fit, and just extending its
15size would break the existing applications. So, those parameters were
16replaced by the usage of
17:ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_PROPERTY>`
18ioctl's. The new API is flexible enough to add new parameters to
19existing delivery systems, and to add newer delivery systems.
20
21So, newer applications should use
22:ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_PROPERTY>`
23instead, in order to be able to support the newer System Delivery like
24DVB-S2, DVB-T2, DVB-C2, ISDB, etc.
25
26All kinds of parameters are combined as an union in the
27FrontendParameters structure:
28
29
30.. code-block:: c
31
32 struct dvb_frontend_parameters {
0579e6e3
MCC
33 uint32_t frequency; /* (absolute) frequency in Hz for QAM/OFDM */
34 /* intermediate frequency in kHz for QPSK */
35 fe_spectral_inversion_t inversion;
36 union {
37 struct dvb_qpsk_parameters qpsk;
38 struct dvb_qam_parameters qam;
39 struct dvb_ofdm_parameters ofdm;
40 struct dvb_vsb_parameters vsb;
41 } u;
5377d91f
MH
42 };
43
44In the case of QPSK frontends the ``frequency`` field specifies the
45intermediate frequency, i.e. the offset which is effectively added to
46the local oscillator frequency (LOF) of the LNB. The intermediate
47frequency has to be specified in units of kHz. For QAM and OFDM
48frontends the ``frequency`` specifies the absolute frequency and is
49given in Hz.
50
51
e8be7e97 52.. c:type:: dvb_qpsk_parameters
5377d91f
MH
53
54QPSK parameters
55===============
56
57For satellite QPSK frontends you have to use the ``dvb_qpsk_parameters``
58structure:
59
60
61.. code-block:: c
62
63 struct dvb_qpsk_parameters {
0579e6e3
MCC
64 uint32_t symbol_rate; /* symbol rate in Symbols per second */
65 fe_code_rate_t fec_inner; /* forward error correction (see above) */
5377d91f
MH
66 };
67
68
e8be7e97 69.. c:type:: dvb_qam_parameters
5377d91f
MH
70
71QAM parameters
72==============
73
74for cable QAM frontend you use the ``dvb_qam_parameters`` structure:
75
76
77.. code-block:: c
78
79 struct dvb_qam_parameters {
0579e6e3
MCC
80 uint32_t symbol_rate; /* symbol rate in Symbols per second */
81 fe_code_rate_t fec_inner; /* forward error correction (see above) */
82 fe_modulation_t modulation; /* modulation type (see above) */
5377d91f
MH
83 };
84
85
e8be7e97 86.. c:type:: dvb_vsb_parameters
5377d91f
MH
87
88VSB parameters
89==============
90
91ATSC frontends are supported by the ``dvb_vsb_parameters`` structure:
92
93
94.. code-block:: c
95
96 struct dvb_vsb_parameters {
0579e6e3 97 fe_modulation_t modulation; /* modulation type (see above) */
5377d91f
MH
98 };
99
100
e8be7e97 101.. c:type:: dvb_ofdm_parameters
5377d91f
MH
102
103OFDM parameters
104===============
105
106DVB-T frontends are supported by the ``dvb_ofdm_parameters`` structure:
107
108
109.. code-block:: c
110
111 struct dvb_ofdm_parameters {
0579e6e3
MCC
112 fe_bandwidth_t bandwidth;
113 fe_code_rate_t code_rate_HP; /* high priority stream code rate */
114 fe_code_rate_t code_rate_LP; /* low priority stream code rate */
115 fe_modulation_t constellation; /* modulation type (see above) */
116 fe_transmit_mode_t transmission_mode;
117 fe_guard_interval_t guard_interval;
118 fe_hierarchy_t hierarchy_information;
5377d91f 119 };
This page took 0.051143 seconds and 5 git commands to generate.