cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dvb-frontend-parameters.rst (3396B)


      1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
      2
      3.. c:type:: dvb_frontend_parameters
      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 a 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 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
     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
     52.. c:type:: dvb_qpsk_parameters
     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 {
     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
     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 {
     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
     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 {
     97	fe_modulation_t modulation; /* modulation type (see above) */
     98    };
     99
    100
    101.. c:type:: dvb_ofdm_parameters
    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 {
    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     };