mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-21 11:44:01 +08:00
fe557e40f5
The only enum that was missing xrefs at frontend.h is fe_type. Add xrefs for them. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
655 lines
21 KiB
XML
655 lines
21 KiB
XML
<section id="frontend_legacy_types">
|
|
<title>Frontend Legacy Data Types</title>
|
|
|
|
<section id="fe-type-t">
|
|
<title>Frontend type</title>
|
|
|
|
<para>For historical reasons, frontend types are named by the type of modulation
|
|
used in transmission. The fontend types are given by fe_type_t type, defined as:</para>
|
|
|
|
<table pgwide="1" frame="none" id="fe-type">
|
|
<title>Frontend types</title>
|
|
<tgroup cols="3">
|
|
&cs-def;
|
|
<thead>
|
|
<row>
|
|
<entry>fe_type</entry>
|
|
<entry>Description</entry>
|
|
<entry><link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> equivalent type</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<row>
|
|
<entry id="FE-QPSK"><constant>FE_QPSK</constant></entry>
|
|
<entry>For DVB-S standard</entry>
|
|
<entry><constant>SYS_DVBS</constant></entry>
|
|
</row>
|
|
<row>
|
|
<entry id="FE-QAM"><constant>FE_QAM</constant></entry>
|
|
<entry>For DVB-C annex A standard</entry>
|
|
<entry><constant>SYS_DVBC_ANNEX_A</constant></entry>
|
|
</row>
|
|
<row>
|
|
<entry id="FE-OFDM"><constant>FE_OFDM</constant></entry>
|
|
<entry>For DVB-T standard</entry>
|
|
<entry><constant>SYS_DVBT</constant></entry>
|
|
</row>
|
|
<row>
|
|
<entry id="FE-ATSC"><constant>FE_ATSC</constant></entry>
|
|
<entry>For ATSC standard (terrestrial) or for DVB-C Annex B (cable) used in US.</entry>
|
|
<entry><constant>SYS_ATSC</constant> (terrestrial) or <constant>SYS_DVBC_ANNEX_B</constant> (cable)</entry>
|
|
</row>
|
|
</tbody></tgroup></table>
|
|
|
|
<para>Newer formats like DVB-S2, ISDB-T, ISDB-S and DVB-T2 are not described at the above, as they're
|
|
supported via the new <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY/FE_GET_SET_PROPERTY</link> ioctl's, using the <link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> parameter.
|
|
</para>
|
|
|
|
<para>In the old days, &dvb-frontend-info; used to contain
|
|
<constant>fe_type_t</constant> field to indicate the delivery systems,
|
|
filled with either FE_QPSK, FE_QAM, FE_OFDM or FE_ATSC. While this is
|
|
still filled to keep backward compatibility, the usage of this
|
|
field is deprecated, as it can report just one delivery system, but some
|
|
devices support multiple delivery systems. Please use
|
|
<link linkend="DTV-ENUM-DELSYS">DTV_ENUM_DELSYS</link> instead.
|
|
</para>
|
|
<para>On devices that support multiple delivery systems,
|
|
&dvb-frontend-info;::<constant>fe_type_t</constant> is filled with the
|
|
currently standard, as selected by the last call to
|
|
<link linkend="FE_GET_PROPERTY">FE_SET_PROPERTY</link>
|
|
using the &DTV-DELIVERY-SYSTEM; property.</para>
|
|
</section>
|
|
|
|
<section id="fe-bandwidth-t">
|
|
<title>Frontend bandwidth</title>
|
|
|
|
<table pgwide="1" frame="none" id="fe-bandwidth">
|
|
<title>enum fe_bandwidth</title>
|
|
<tgroup cols="2">
|
|
&cs-def;
|
|
<thead>
|
|
<row>
|
|
<entry>ID</entry>
|
|
<entry>Description</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<row>
|
|
<entry id="BANDWIDTH-AUTO"><constant>BANDWIDTH_AUTO</constant></entry>
|
|
<entry>Autodetect bandwidth (if supported)</entry>
|
|
</row><row>
|
|
<entry id="BANDWIDTH-1-712-MHZ"><constant>BANDWIDTH_1_712_MHZ</constant></entry>
|
|
<entry>1.712 MHz</entry>
|
|
</row><row>
|
|
<entry id="BANDWIDTH-5-MHZ"><constant>BANDWIDTH_5_MHZ</constant></entry>
|
|
<entry>5 MHz</entry>
|
|
</row><row>
|
|
<entry id="BANDWIDTH-6-MHZ"><constant>BANDWIDTH_6_MHZ</constant></entry>
|
|
<entry>6 MHz</entry>
|
|
</row><row>
|
|
<entry id="BANDWIDTH-7-MHZ"><constant>BANDWIDTH_7_MHZ</constant></entry>
|
|
<entry>7 MHz</entry>
|
|
</row><row>
|
|
<entry id="BANDWIDTH-8-MHZ"><constant>BANDWIDTH_8_MHZ</constant></entry>
|
|
<entry>8 MHz</entry>
|
|
</row><row>
|
|
<entry id="BANDWIDTH-10-MHZ"><constant>BANDWIDTH_10_MHZ</constant></entry>
|
|
<entry>10 MHz</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
</section>
|
|
|
|
<section id="dvb-frontend-parameters">
|
|
<title>frontend parameters</title>
|
|
<para>The kind of parameters passed to the frontend device for tuning depend on
|
|
the kind of hardware you are using.</para>
|
|
<para>The struct <constant>dvb_frontend_parameters</constant> uses an
|
|
union with specific per-system parameters. However, as newer delivery systems
|
|
required more data, the structure size weren't enough to fit, and just
|
|
extending its size would break the existing applications. So, those parameters
|
|
were replaced by the usage of <link linkend="FE_GET_PROPERTY">
|
|
<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> ioctl's. The
|
|
new API is flexible enough to add new parameters to existing delivery systems,
|
|
and to add newer delivery systems.</para>
|
|
<para>So, newer applications should use <link linkend="FE_GET_PROPERTY">
|
|
<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> instead, in
|
|
order to be able to support the newer System Delivery like DVB-S2, DVB-T2,
|
|
DVB-C2, ISDB, etc.</para>
|
|
<para>All kinds of parameters are combined as an union in the FrontendParameters structure:
|
|
<programlisting>
|
|
struct dvb_frontend_parameters {
|
|
uint32_t frequency; /⋆ (absolute) frequency in Hz for QAM/OFDM ⋆/
|
|
/⋆ intermediate frequency in kHz for QPSK ⋆/
|
|
&fe-spectral-inversion-t; inversion;
|
|
union {
|
|
struct dvb_qpsk_parameters qpsk;
|
|
struct dvb_qam_parameters qam;
|
|
struct dvb_ofdm_parameters ofdm;
|
|
struct dvb_vsb_parameters vsb;
|
|
} u;
|
|
};
|
|
</programlisting></para>
|
|
<para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate
|
|
frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of
|
|
the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and
|
|
OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz.
|
|
</para>
|
|
|
|
<section id="dvb-qpsk-parameters">
|
|
<title>QPSK parameters</title>
|
|
<para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para>
|
|
<programlisting>
|
|
struct dvb_qpsk_parameters {
|
|
uint32_t symbol_rate; /⋆ symbol rate in Symbols per second ⋆/
|
|
&fe-code-rate-t; fec_inner; /⋆ forward error correction (see above) ⋆/
|
|
};
|
|
</programlisting>
|
|
</section>
|
|
|
|
<section id="dvb-qam-parameters">
|
|
<title>QAM parameters</title>
|
|
<para>for cable QAM frontend you use the <constant>dvb_qam_parameters</constant> structure:</para>
|
|
<programlisting>
|
|
struct dvb_qam_parameters {
|
|
uint32_t symbol_rate; /⋆ symbol rate in Symbols per second ⋆/
|
|
&fe-code-rate-t; fec_inner; /⋆ forward error correction (see above) ⋆/
|
|
&fe-modulation-t; modulation; /⋆ modulation type (see above) ⋆/
|
|
};
|
|
</programlisting>
|
|
</section>
|
|
|
|
<section id="dvb-vsb-parameters">
|
|
<title>VSB parameters</title>
|
|
<para>ATSC frontends are supported by the <constant>dvb_vsb_parameters</constant> structure:</para>
|
|
<programlisting>
|
|
struct dvb_vsb_parameters {
|
|
&fe-modulation-t; modulation; /⋆ modulation type (see above) ⋆/
|
|
};
|
|
</programlisting>
|
|
</section>
|
|
|
|
<section id="dvb-ofdm-parameters">
|
|
<title>OFDM parameters</title>
|
|
<para>DVB-T frontends are supported by the <constant>dvb_ofdm_parameters</constant> structure:</para>
|
|
<programlisting>
|
|
struct dvb_ofdm_parameters {
|
|
&fe-bandwidth-t; bandwidth;
|
|
&fe-code-rate-t; code_rate_HP; /⋆ high priority stream code rate ⋆/
|
|
&fe-code-rate-t; code_rate_LP; /⋆ low priority stream code rate ⋆/
|
|
&fe-modulation-t; constellation; /⋆ modulation type (see above) ⋆/
|
|
&fe-transmit-mode-t; transmission_mode;
|
|
&fe-guard-interval-t; guard_interval;
|
|
&fe-hierarchy-t; hierarchy_information;
|
|
};
|
|
</programlisting>
|
|
</section>
|
|
</section>
|
|
|
|
<section id="dvb-frontend-event">
|
|
<title>frontend events</title>
|
|
<programlisting>
|
|
struct dvb_frontend_event {
|
|
fe_status_t status;
|
|
struct dvb_frontend_parameters parameters;
|
|
};
|
|
</programlisting>
|
|
</section>
|
|
</section>
|
|
|
|
<section id="frontend_legacy_fcalls">
|
|
<title>Frontend Legacy Function Calls</title>
|
|
|
|
<para>Those functions are defined at DVB version 3. The support is kept in
|
|
the kernel due to compatibility issues only. Their usage is strongly
|
|
not recommended</para>
|
|
|
|
<section id="FE_READ_BER">
|
|
<title>FE_READ_BER</title>
|
|
<para>DESCRIPTION
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>This ioctl call returns the bit error rate for the signal currently
|
|
received/demodulated by the front-end. For this command, read-only access to
|
|
the device is sufficient.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
<para>SYNOPSIS
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>int ioctl(int fd, int request = <link linkend="FE_READ_BER">FE_READ_BER</link>,
|
|
uint32_t ⋆ber);</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
<para>PARAMETERS
|
|
</para>
|
|
<informaltable><tgroup cols="2"><tbody><row><entry
|
|
align="char">
|
|
<para>int fd</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>File descriptor returned by a previous call to open().</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>int request</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Equals <link linkend="FE_READ_BER">FE_READ_BER</link> for this command.</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>uint32_t *ber</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>The bit error rate is stored into *ber.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
&return-value-dvb;
|
|
</section>
|
|
|
|
<section id="FE_READ_SNR">
|
|
<title>FE_READ_SNR</title>
|
|
|
|
<para>DESCRIPTION
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>This ioctl call returns the signal-to-noise ratio for the signal currently received
|
|
by the front-end. For this command, read-only access to the device is sufficient.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
<para>SYNOPSIS
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>int ioctl(int fd, int request = <link linkend="FE_READ_SNR">FE_READ_SNR</link>, uint16_t
|
|
⋆snr);</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
<para>PARAMETERS
|
|
</para>
|
|
<informaltable><tgroup cols="2"><tbody><row><entry
|
|
align="char">
|
|
<para>int fd</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>File descriptor returned by a previous call to open().</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>int request</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Equals <link linkend="FE_READ_SNR">FE_READ_SNR</link> for this command.</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>uint16_t *snr</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>The signal-to-noise ratio is stored into *snr.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
&return-value-dvb;
|
|
</section>
|
|
|
|
<section id="FE_READ_SIGNAL_STRENGTH">
|
|
<title>FE_READ_SIGNAL_STRENGTH</title>
|
|
<para>DESCRIPTION
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>This ioctl call returns the signal strength value for the signal currently received
|
|
by the front-end. For this command, read-only access to the device is sufficient.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
<para>SYNOPSIS
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>int ioctl( int fd, int request =
|
|
<link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link>, uint16_t ⋆strength);</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>PARAMETERS
|
|
</para>
|
|
<informaltable><tgroup cols="2"><tbody><row><entry
|
|
align="char">
|
|
<para>int fd</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>File descriptor returned by a previous call to open().</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>int request</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Equals <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link> for this
|
|
command.</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>uint16_t *strength</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>The signal strength value is stored into *strength.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
&return-value-dvb;
|
|
</section>
|
|
|
|
<section id="FE_READ_UNCORRECTED_BLOCKS">
|
|
<title>FE_READ_UNCORRECTED_BLOCKS</title>
|
|
<para>DESCRIPTION
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>This ioctl call returns the number of uncorrected blocks detected by the device
|
|
driver during its lifetime. For meaningful measurements, the increment in block
|
|
count during a specific time interval should be calculated. For this command,
|
|
read-only access to the device is sufficient.</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>Note that the counter will wrap to zero after its maximum count has been
|
|
reached.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
<para>SYNOPSIS
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>int ioctl( int fd, int request =
|
|
<link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link>, uint32_t ⋆ublocks);</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
<para>PARAMETERS
|
|
</para>
|
|
<informaltable><tgroup cols="2"><tbody><row><entry
|
|
align="char">
|
|
<para>int fd</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>File descriptor returned by a previous call to open().</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>int request</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Equals <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link> for this
|
|
command.</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>uint32_t *ublocks</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>The total number of uncorrected blocks seen by the driver
|
|
so far.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
&return-value-dvb;
|
|
</section>
|
|
|
|
<section id="FE_SET_FRONTEND">
|
|
<title>FE_SET_FRONTEND</title>
|
|
<para>DESCRIPTION
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>This ioctl call starts a tuning operation using specified parameters. The result
|
|
of this call will be successful if the parameters were valid and the tuning could
|
|
be initiated. The result of the tuning operation in itself, however, will arrive
|
|
asynchronously as an event (see documentation for <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> and
|
|
FrontendEvent.) If a new <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> operation is initiated before
|
|
the previous one was completed, the previous operation will be aborted in favor
|
|
of the new one. This command requires read/write access to the device.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>SYNOPSIS
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>int ioctl(int fd, int request = <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link>,
|
|
struct dvb_frontend_parameters ⋆p);</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
<para>PARAMETERS
|
|
</para>
|
|
<informaltable><tgroup cols="2"><tbody><row><entry
|
|
align="char">
|
|
<para>int fd</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>File descriptor returned by a previous call to open().</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>int request</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>struct
|
|
dvb_frontend_parameters
|
|
*p</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Points to parameters for tuning operation.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
&return-value-dvb;
|
|
<informaltable><tgroup cols="2"><tbody><row><entry
|
|
align="char">
|
|
<para>EINVAL</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Maximum supported symbol rate reached.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
</section>
|
|
|
|
<section id="FE_GET_FRONTEND">
|
|
<title>FE_GET_FRONTEND</title>
|
|
<para>DESCRIPTION
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>This ioctl call queries the currently effective frontend parameters. For this
|
|
command, read-only access to the device is sufficient.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>SYNOPSIS
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>int ioctl(int fd, int request = <link linkend="FE_GET_FRONTEND">FE_GET_FRONTEND</link>,
|
|
struct dvb_frontend_parameters ⋆p);</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>PARAMETERS
|
|
</para>
|
|
<informaltable><tgroup cols="2"><tbody><row><entry
|
|
align="char">
|
|
<para>int fd</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>File descriptor returned by a previous call to open().</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>int request</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>struct
|
|
dvb_frontend_parameters
|
|
*p</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Points to parameters for tuning operation.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
&return-value-dvb;
|
|
<informaltable><tgroup cols="2"><tbody><row><entry
|
|
align="char">
|
|
<para>EINVAL</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Maximum supported symbol rate reached.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
</section>
|
|
|
|
<section id="FE_GET_EVENT">
|
|
<title>FE_GET_EVENT</title>
|
|
<para>DESCRIPTION
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>This ioctl call returns a frontend event if available. If an event is not
|
|
available, the behavior depends on whether the device is in blocking or
|
|
non-blocking mode. In the latter case, the call fails immediately with errno
|
|
set to EWOULDBLOCK. In the former case, the call blocks until an event
|
|
becomes available.</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>The standard Linux poll() and/or select() system calls can be used with the
|
|
device file descriptor to watch for new events. For select(), the file descriptor
|
|
should be included in the exceptfds argument, and for poll(), POLLPRI should
|
|
be specified as the wake-up condition. Since the event queue allocated is
|
|
rather small (room for 8 events), the queue must be serviced regularly to avoid
|
|
overflow. If an overflow happens, the oldest event is discarded from the queue,
|
|
and an error (EOVERFLOW) occurs the next time the queue is read. After
|
|
reporting the error condition in this fashion, subsequent
|
|
<link linkend="FE_GET_EVENT">FE_GET_EVENT</link>
|
|
calls will return events from the queue as usual.</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>For the sake of implementation simplicity, this command requires read/write
|
|
access to the device.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>SYNOPSIS
|
|
</para>
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
align="char">
|
|
<para>int ioctl(int fd, int request = QPSK_GET_EVENT,
|
|
struct dvb_frontend_event ⋆ev);</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>PARAMETERS
|
|
</para>
|
|
<informaltable><tgroup cols="2"><tbody><row><entry
|
|
align="char">
|
|
<para>int fd</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>File descriptor returned by a previous call to open().</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>int request</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Equals <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> for this command.</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>struct
|
|
dvb_frontend_event
|
|
*ev</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Points to the location where the event,</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
</entry><entry
|
|
align="char">
|
|
<para>if any, is to be stored.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
&return-value-dvb;
|
|
<informaltable><tgroup cols="2"><tbody><row><entry
|
|
align="char">
|
|
<para>EWOULDBLOCK</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>There is no event pending, and the device is in
|
|
non-blocking mode.</para>
|
|
</entry>
|
|
</row><row><entry
|
|
align="char">
|
|
<para>EOVERFLOW</para>
|
|
</entry><entry
|
|
align="char">
|
|
<para>Overflow in event queue - one or more events were lost.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
</section>
|
|
|
|
<section id="FE_DISHNETWORK_SEND_LEGACY_CMD">
|
|
<title>FE_DISHNETWORK_SEND_LEGACY_CMD</title>
|
|
<para>DESCRIPTION</para>
|
|
<informaltable><tgroup cols="1"><tbody><row>
|
|
<entry align="char">
|
|
<para>WARNING: This is a very obscure legacy command, used only at stv0299 driver. Should not be used on newer drivers.</para>
|
|
<para>It provides a non-standard method for selecting Diseqc voltage on the frontend, for Dish Network legacy switches.</para>
|
|
<para>As support for this ioctl were added in 2004, this means that such dishes were already legacy in 2004.</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>SYNOPSIS</para>
|
|
<informaltable><tgroup cols="1"><tbody><row>
|
|
<entry align="char">
|
|
<para>int ioctl(int fd, int request =
|
|
<link linkend="FE_DISHNETWORK_SEND_LEGACY_CMD">FE_DISHNETWORK_SEND_LEGACY_CMD</link>, unsigned long cmd);</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>PARAMETERS</para>
|
|
<informaltable><tgroup cols="2"><tbody><row>
|
|
<entry align="char">
|
|
<para>unsigned long cmd</para>
|
|
</entry>
|
|
<entry align="char">
|
|
<para>
|
|
sends the specified raw cmd to the dish via DISEqC.
|
|
</para>
|
|
</entry>
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
&return-value-dvb;
|
|
</section>
|
|
|
|
</section>
|