~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/dvb/dvb-frontend-parameters.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
  2 
  3 .. c:type:: dvb_frontend_parameters
  4 
  5 *******************
  6 frontend parameters
  7 *******************
  8 
  9 The kind of parameters passed to the frontend device for tuning depend
 10 on the kind of hardware you are using.
 11 
 12 The struct ``dvb_frontend_parameters`` uses a union with specific
 13 per-system parameters. However, as newer delivery systems required more
 14 data, the structure size weren't enough to fit, and just extending its
 15 size would break the existing applications. So, those parameters were
 16 replaced by the usage of
 17 :ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_PROPERTY>`
 18 ioctl's. The new API is flexible enough to add new parameters to
 19 existing delivery systems, and to add newer delivery systems.
 20 
 21 So, newer applications should use
 22 :ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_PROPERTY>`
 23 instead, in order to be able to support the newer System Delivery like
 24 DVB-S2, DVB-T2, DVB-C2, ISDB, etc.
 25 
 26 All kinds of parameters are combined as a union in the
 27 ``dvb_frontend_parameters`` structure:
 28 
 29 
 30 .. code-block:: c
 31 
 32     struct dvb_frontend_parameters {
 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;
 42     };
 43 
 44 In the case of QPSK frontends the ``frequency`` field specifies the
 45 intermediate frequency, i.e. the offset which is effectively added to
 46 the local oscillator frequency (LOF) of the LNB. The intermediate
 47 frequency has to be specified in units of kHz. For QAM and OFDM
 48 frontends the ``frequency`` specifies the absolute frequency and is
 49 given in Hz.
 50 
 51 
 52 .. c:type:: dvb_qpsk_parameters
 53 
 54 QPSK parameters
 55 ===============
 56 
 57 For satellite QPSK frontends you have to use the ``dvb_qpsk_parameters``
 58 structure:
 59 
 60 
 61 .. code-block:: c
 62 
 63      struct dvb_qpsk_parameters {
 64          uint32_t        symbol_rate;  /* symbol rate in Symbols per second */
 65          fe_code_rate_t  fec_inner;    /* forward error correction (see above) */
 66      };
 67 
 68 
 69 .. c:type:: dvb_qam_parameters
 70 
 71 QAM parameters
 72 ==============
 73 
 74 for cable QAM frontend you use the ``dvb_qam_parameters`` structure:
 75 
 76 
 77 .. code-block:: c
 78 
 79      struct dvb_qam_parameters {
 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) */
 83      };
 84 
 85 
 86 .. c:type:: dvb_vsb_parameters
 87 
 88 VSB parameters
 89 ==============
 90 
 91 ATSC frontends are supported by the ``dvb_vsb_parameters`` structure:
 92 
 93 
 94 .. code-block:: c
 95 
 96     struct dvb_vsb_parameters {
 97         fe_modulation_t modulation; /* modulation type (see above) */
 98     };
 99 
100 
101 .. c:type:: dvb_ofdm_parameters
102 
103 OFDM parameters
104 ===============
105 
106 DVB-T frontends are supported by the ``dvb_ofdm_parameters`` structure:
107 
108 
109 .. code-block:: c
110 
111      struct dvb_ofdm_parameters {
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;
119      };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php