1*059b1c5bSMauro Carvalho Chehab.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 254f38fcaSMauro Carvalho Chehab 354f38fcaSMauro Carvalho Chehab.. c:type:: dvb_frontend_parameters 454f38fcaSMauro Carvalho Chehab 554f38fcaSMauro Carvalho Chehab******************* 654f38fcaSMauro Carvalho Chehabfrontend parameters 754f38fcaSMauro Carvalho Chehab******************* 854f38fcaSMauro Carvalho Chehab 954f38fcaSMauro Carvalho ChehabThe kind of parameters passed to the frontend device for tuning depend 1054f38fcaSMauro Carvalho Chehabon the kind of hardware you are using. 1154f38fcaSMauro Carvalho Chehab 1254f38fcaSMauro Carvalho ChehabThe struct ``dvb_frontend_parameters`` uses a union with specific 1354f38fcaSMauro Carvalho Chehabper-system parameters. However, as newer delivery systems required more 1454f38fcaSMauro Carvalho Chehabdata, the structure size weren't enough to fit, and just extending its 1554f38fcaSMauro Carvalho Chehabsize would break the existing applications. So, those parameters were 1654f38fcaSMauro Carvalho Chehabreplaced by the usage of 1754f38fcaSMauro Carvalho Chehab:ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_PROPERTY>` 1854f38fcaSMauro Carvalho Chehabioctl's. The new API is flexible enough to add new parameters to 1954f38fcaSMauro Carvalho Chehabexisting delivery systems, and to add newer delivery systems. 2054f38fcaSMauro Carvalho Chehab 2154f38fcaSMauro Carvalho ChehabSo, newer applications should use 2254f38fcaSMauro Carvalho Chehab:ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_PROPERTY>` 2354f38fcaSMauro Carvalho Chehabinstead, in order to be able to support the newer System Delivery like 2454f38fcaSMauro Carvalho ChehabDVB-S2, DVB-T2, DVB-C2, ISDB, etc. 2554f38fcaSMauro Carvalho Chehab 2654f38fcaSMauro Carvalho ChehabAll kinds of parameters are combined as a union in the 2754f38fcaSMauro Carvalho Chehab``dvb_frontend_parameters`` structure: 2854f38fcaSMauro Carvalho Chehab 2954f38fcaSMauro Carvalho Chehab 3054f38fcaSMauro Carvalho Chehab.. code-block:: c 3154f38fcaSMauro Carvalho Chehab 3254f38fcaSMauro Carvalho Chehab struct dvb_frontend_parameters { 3354f38fcaSMauro Carvalho Chehab uint32_t frequency; /* (absolute) frequency in Hz for QAM/OFDM */ 3454f38fcaSMauro Carvalho Chehab /* intermediate frequency in kHz for QPSK */ 3554f38fcaSMauro Carvalho Chehab fe_spectral_inversion_t inversion; 3654f38fcaSMauro Carvalho Chehab union { 3754f38fcaSMauro Carvalho Chehab struct dvb_qpsk_parameters qpsk; 3854f38fcaSMauro Carvalho Chehab struct dvb_qam_parameters qam; 3954f38fcaSMauro Carvalho Chehab struct dvb_ofdm_parameters ofdm; 4054f38fcaSMauro Carvalho Chehab struct dvb_vsb_parameters vsb; 4154f38fcaSMauro Carvalho Chehab } u; 4254f38fcaSMauro Carvalho Chehab }; 4354f38fcaSMauro Carvalho Chehab 4454f38fcaSMauro Carvalho ChehabIn the case of QPSK frontends the ``frequency`` field specifies the 4554f38fcaSMauro Carvalho Chehabintermediate frequency, i.e. the offset which is effectively added to 4654f38fcaSMauro Carvalho Chehabthe local oscillator frequency (LOF) of the LNB. The intermediate 4754f38fcaSMauro Carvalho Chehabfrequency has to be specified in units of kHz. For QAM and OFDM 4854f38fcaSMauro Carvalho Chehabfrontends the ``frequency`` specifies the absolute frequency and is 4954f38fcaSMauro Carvalho Chehabgiven in Hz. 5054f38fcaSMauro Carvalho Chehab 5154f38fcaSMauro Carvalho Chehab 5254f38fcaSMauro Carvalho Chehab.. c:type:: dvb_qpsk_parameters 5354f38fcaSMauro Carvalho Chehab 5454f38fcaSMauro Carvalho ChehabQPSK parameters 5554f38fcaSMauro Carvalho Chehab=============== 5654f38fcaSMauro Carvalho Chehab 5754f38fcaSMauro Carvalho ChehabFor satellite QPSK frontends you have to use the ``dvb_qpsk_parameters`` 5854f38fcaSMauro Carvalho Chehabstructure: 5954f38fcaSMauro Carvalho Chehab 6054f38fcaSMauro Carvalho Chehab 6154f38fcaSMauro Carvalho Chehab.. code-block:: c 6254f38fcaSMauro Carvalho Chehab 6354f38fcaSMauro Carvalho Chehab struct dvb_qpsk_parameters { 6454f38fcaSMauro Carvalho Chehab uint32_t symbol_rate; /* symbol rate in Symbols per second */ 6554f38fcaSMauro Carvalho Chehab fe_code_rate_t fec_inner; /* forward error correction (see above) */ 6654f38fcaSMauro Carvalho Chehab }; 6754f38fcaSMauro Carvalho Chehab 6854f38fcaSMauro Carvalho Chehab 6954f38fcaSMauro Carvalho Chehab.. c:type:: dvb_qam_parameters 7054f38fcaSMauro Carvalho Chehab 7154f38fcaSMauro Carvalho ChehabQAM parameters 7254f38fcaSMauro Carvalho Chehab============== 7354f38fcaSMauro Carvalho Chehab 7454f38fcaSMauro Carvalho Chehabfor cable QAM frontend you use the ``dvb_qam_parameters`` structure: 7554f38fcaSMauro Carvalho Chehab 7654f38fcaSMauro Carvalho Chehab 7754f38fcaSMauro Carvalho Chehab.. code-block:: c 7854f38fcaSMauro Carvalho Chehab 7954f38fcaSMauro Carvalho Chehab struct dvb_qam_parameters { 8054f38fcaSMauro Carvalho Chehab uint32_t symbol_rate; /* symbol rate in Symbols per second */ 8154f38fcaSMauro Carvalho Chehab fe_code_rate_t fec_inner; /* forward error correction (see above) */ 8254f38fcaSMauro Carvalho Chehab fe_modulation_t modulation; /* modulation type (see above) */ 8354f38fcaSMauro Carvalho Chehab }; 8454f38fcaSMauro Carvalho Chehab 8554f38fcaSMauro Carvalho Chehab 8654f38fcaSMauro Carvalho Chehab.. c:type:: dvb_vsb_parameters 8754f38fcaSMauro Carvalho Chehab 8854f38fcaSMauro Carvalho ChehabVSB parameters 8954f38fcaSMauro Carvalho Chehab============== 9054f38fcaSMauro Carvalho Chehab 9154f38fcaSMauro Carvalho ChehabATSC frontends are supported by the ``dvb_vsb_parameters`` structure: 9254f38fcaSMauro Carvalho Chehab 9354f38fcaSMauro Carvalho Chehab 9454f38fcaSMauro Carvalho Chehab.. code-block:: c 9554f38fcaSMauro Carvalho Chehab 9654f38fcaSMauro Carvalho Chehab struct dvb_vsb_parameters { 9754f38fcaSMauro Carvalho Chehab fe_modulation_t modulation; /* modulation type (see above) */ 9854f38fcaSMauro Carvalho Chehab }; 9954f38fcaSMauro Carvalho Chehab 10054f38fcaSMauro Carvalho Chehab 10154f38fcaSMauro Carvalho Chehab.. c:type:: dvb_ofdm_parameters 10254f38fcaSMauro Carvalho Chehab 10354f38fcaSMauro Carvalho ChehabOFDM parameters 10454f38fcaSMauro Carvalho Chehab=============== 10554f38fcaSMauro Carvalho Chehab 10654f38fcaSMauro Carvalho ChehabDVB-T frontends are supported by the ``dvb_ofdm_parameters`` structure: 10754f38fcaSMauro Carvalho Chehab 10854f38fcaSMauro Carvalho Chehab 10954f38fcaSMauro Carvalho Chehab.. code-block:: c 11054f38fcaSMauro Carvalho Chehab 11154f38fcaSMauro Carvalho Chehab struct dvb_ofdm_parameters { 11254f38fcaSMauro Carvalho Chehab fe_bandwidth_t bandwidth; 11354f38fcaSMauro Carvalho Chehab fe_code_rate_t code_rate_HP; /* high priority stream code rate */ 11454f38fcaSMauro Carvalho Chehab fe_code_rate_t code_rate_LP; /* low priority stream code rate */ 11554f38fcaSMauro Carvalho Chehab fe_modulation_t constellation; /* modulation type (see above) */ 11654f38fcaSMauro Carvalho Chehab fe_transmit_mode_t transmission_mode; 11754f38fcaSMauro Carvalho Chehab fe_guard_interval_t guard_interval; 11854f38fcaSMauro Carvalho Chehab fe_hierarchy_t hierarchy_information; 11954f38fcaSMauro Carvalho Chehab }; 120