18c2ecf20Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ci.. c:type:: dvb_frontend_parameters 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci******************* 68c2ecf20Sopenharmony_cifrontend parameters 78c2ecf20Sopenharmony_ci******************* 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ciThe kind of parameters passed to the frontend device for tuning depend 108c2ecf20Sopenharmony_cion the kind of hardware you are using. 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciThe struct ``dvb_frontend_parameters`` uses a union with specific 138c2ecf20Sopenharmony_ciper-system parameters. However, as newer delivery systems required more 148c2ecf20Sopenharmony_cidata, the structure size weren't enough to fit, and just extending its 158c2ecf20Sopenharmony_cisize would break the existing applications. So, those parameters were 168c2ecf20Sopenharmony_cireplaced by the usage of 178c2ecf20Sopenharmony_ci:ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_PROPERTY>` 188c2ecf20Sopenharmony_ciioctl's. The new API is flexible enough to add new parameters to 198c2ecf20Sopenharmony_ciexisting delivery systems, and to add newer delivery systems. 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciSo, newer applications should use 228c2ecf20Sopenharmony_ci:ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_PROPERTY>` 238c2ecf20Sopenharmony_ciinstead, in order to be able to support the newer System Delivery like 248c2ecf20Sopenharmony_ciDVB-S2, DVB-T2, DVB-C2, ISDB, etc. 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ciAll kinds of parameters are combined as a union in the 278c2ecf20Sopenharmony_ci``dvb_frontend_parameters`` structure: 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci.. code-block:: c 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci struct dvb_frontend_parameters { 338c2ecf20Sopenharmony_ci uint32_t frequency; /* (absolute) frequency in Hz for QAM/OFDM */ 348c2ecf20Sopenharmony_ci /* intermediate frequency in kHz for QPSK */ 358c2ecf20Sopenharmony_ci fe_spectral_inversion_t inversion; 368c2ecf20Sopenharmony_ci union { 378c2ecf20Sopenharmony_ci struct dvb_qpsk_parameters qpsk; 388c2ecf20Sopenharmony_ci struct dvb_qam_parameters qam; 398c2ecf20Sopenharmony_ci struct dvb_ofdm_parameters ofdm; 408c2ecf20Sopenharmony_ci struct dvb_vsb_parameters vsb; 418c2ecf20Sopenharmony_ci } u; 428c2ecf20Sopenharmony_ci }; 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciIn the case of QPSK frontends the ``frequency`` field specifies the 458c2ecf20Sopenharmony_ciintermediate frequency, i.e. the offset which is effectively added to 468c2ecf20Sopenharmony_cithe local oscillator frequency (LOF) of the LNB. The intermediate 478c2ecf20Sopenharmony_cifrequency has to be specified in units of kHz. For QAM and OFDM 488c2ecf20Sopenharmony_cifrontends the ``frequency`` specifies the absolute frequency and is 498c2ecf20Sopenharmony_cigiven in Hz. 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci.. c:type:: dvb_qpsk_parameters 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ciQPSK parameters 558c2ecf20Sopenharmony_ci=============== 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ciFor satellite QPSK frontends you have to use the ``dvb_qpsk_parameters`` 588c2ecf20Sopenharmony_cistructure: 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci.. code-block:: c 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci struct dvb_qpsk_parameters { 648c2ecf20Sopenharmony_ci uint32_t symbol_rate; /* symbol rate in Symbols per second */ 658c2ecf20Sopenharmony_ci fe_code_rate_t fec_inner; /* forward error correction (see above) */ 668c2ecf20Sopenharmony_ci }; 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci.. c:type:: dvb_qam_parameters 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ciQAM parameters 728c2ecf20Sopenharmony_ci============== 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_cifor cable QAM frontend you use the ``dvb_qam_parameters`` structure: 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci.. code-block:: c 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci struct dvb_qam_parameters { 808c2ecf20Sopenharmony_ci uint32_t symbol_rate; /* symbol rate in Symbols per second */ 818c2ecf20Sopenharmony_ci fe_code_rate_t fec_inner; /* forward error correction (see above) */ 828c2ecf20Sopenharmony_ci fe_modulation_t modulation; /* modulation type (see above) */ 838c2ecf20Sopenharmony_ci }; 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci.. c:type:: dvb_vsb_parameters 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ciVSB parameters 898c2ecf20Sopenharmony_ci============== 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ciATSC frontends are supported by the ``dvb_vsb_parameters`` structure: 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci.. code-block:: c 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci struct dvb_vsb_parameters { 978c2ecf20Sopenharmony_ci fe_modulation_t modulation; /* modulation type (see above) */ 988c2ecf20Sopenharmony_ci }; 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci.. c:type:: dvb_ofdm_parameters 1028c2ecf20Sopenharmony_ci 1038c2ecf20Sopenharmony_ciOFDM parameters 1048c2ecf20Sopenharmony_ci=============== 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ciDVB-T frontends are supported by the ``dvb_ofdm_parameters`` structure: 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_ci.. code-block:: c 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ci struct dvb_ofdm_parameters { 1128c2ecf20Sopenharmony_ci fe_bandwidth_t bandwidth; 1138c2ecf20Sopenharmony_ci fe_code_rate_t code_rate_HP; /* high priority stream code rate */ 1148c2ecf20Sopenharmony_ci fe_code_rate_t code_rate_LP; /* low priority stream code rate */ 1158c2ecf20Sopenharmony_ci fe_modulation_t constellation; /* modulation type (see above) */ 1168c2ecf20Sopenharmony_ci fe_transmit_mode_t transmission_mode; 1178c2ecf20Sopenharmony_ci fe_guard_interval_t guard_interval; 1188c2ecf20Sopenharmony_ci fe_hierarchy_t hierarchy_information; 1198c2ecf20Sopenharmony_ci }; 120