blob: d97218805851247a877595cb6ba087434e17c09a [file] [log] [blame]
.. -*- coding: utf-8; mode: rst -*-
.. _FE_GET_INFO:
*****************
ioctl FE_GET_INFO
*****************
NAME
====
FE_GET_INFO - Query DVB frontend capabilities and returns information about the - front-end. This call only requires read-only access to the device
SYNOPSIS
========
.. cpp:function:: int ioctl( int fd, int request, struct dvb_frontend_info *argp )
ARGUMENTS
=========
``fd``
File descriptor returned by :ref:`open() <frontend_f_open>`.
``request``
FE_GET_INFO
``argp``
pointer to struct struct
:ref:`dvb_frontend_info <dvb-frontend-info>`
DESCRIPTION
===========
All DVB frontend devices support the ``FE_GET_INFO`` ioctl. It is used
to identify kernel devices compatible with this specification and to
obtain information about driver and hardware capabilities. The ioctl
takes a pointer to dvb_frontend_info which is filled by the driver.
When the driver is not compatible with this specification the ioctl
returns an error.
RETURN VALUE
============
On success 0 is returned, on error -1 and the ``errno`` variable is set
appropriately. The generic error codes are described at the
:ref:`Generic Error Codes <gen-errors>` chapter.
.. _dvb-frontend-info:
.. flat-table:: struct dvb_frontend_info
:header-rows: 0
:stub-columns: 0
:widths: 1 1 2
- .. row 1
- char
- name[128]
- Name of the frontend
- .. row 2
- fe_type_t
- type
- **DEPRECATED**. DVBv3 type. Should not be used on modern programs,
as a frontend may have more than one type. So, the DVBv5 API
should be used instead to enumerate and select the frontend type.
- .. row 3
- uint32_t
- frequency_min
- Minimal frequency supported by the frontend
- .. row 4
- uint32_t
- frequency_max
- Maximal frequency supported by the frontend
- .. row 5
- uint32_t
- frequency_stepsize
- Frequency step - all frequencies are multiple of this value
- .. row 6
- uint32_t
- frequency_tolerance
- Tolerance of the frequency
- .. row 7
- uint32_t
- symbol_rate_min
- Minimal symbol rate (for Cable/Satellite systems), in bauds
- .. row 8
- uint32_t
- symbol_rate_max
- Maximal symbol rate (for Cable/Satellite systems), in bauds
- .. row 9
- uint32_t
- symbol_rate_tolerance
- Maximal symbol rate tolerance, in ppm
- .. row 10
- uint32_t
- notifier_delay
- **DEPRECATED**. Not used by any driver.
- .. row 11
- enum :ref:`fe_caps <fe-caps>`
- caps
- Capabilities supported by the frontend
NOTE: The frequencies are specified in Hz for Terrestrial and Cable
systems. They're specified in kHz for Satellite systems
.. _fe-caps-t:
frontend capabilities
=====================
Capabilities describe what a frontend can do. Some capabilities are
supported only on some specific frontend types.
.. _fe-caps:
.. flat-table:: enum fe_caps
:header-rows: 1
:stub-columns: 0
- .. row 1
- ID
- Description
- .. row 2
- .. _`FE-IS-STUPID`:
``FE_IS_STUPID``
- There's something wrong at the frontend, and it can't report its
capabilities
- .. row 3
- .. _`FE-CAN-INVERSION-AUTO`:
``FE_CAN_INVERSION_AUTO``
- The frontend is capable of auto-detecting inversion
- .. row 4
- .. _`FE-CAN-FEC-1-2`:
``FE_CAN_FEC_1_2``
- The frontend supports FEC 1/2
- .. row 5
- .. _`FE-CAN-FEC-2-3`:
``FE_CAN_FEC_2_3``
- The frontend supports FEC 2/3
- .. row 6
- .. _`FE-CAN-FEC-3-4`:
``FE_CAN_FEC_3_4``
- The frontend supports FEC 3/4
- .. row 7
- .. _`FE-CAN-FEC-4-5`:
``FE_CAN_FEC_4_5``
- The frontend supports FEC 4/5
- .. row 8
- .. _`FE-CAN-FEC-5-6`:
``FE_CAN_FEC_5_6``
- The frontend supports FEC 5/6
- .. row 9
- .. _`FE-CAN-FEC-6-7`:
``FE_CAN_FEC_6_7``
- The frontend supports FEC 6/7
- .. row 10
- .. _`FE-CAN-FEC-7-8`:
``FE_CAN_FEC_7_8``
- The frontend supports FEC 7/8
- .. row 11
- .. _`FE-CAN-FEC-8-9`:
``FE_CAN_FEC_8_9``
- The frontend supports FEC 8/9
- .. row 12
- .. _`FE-CAN-FEC-AUTO`:
``FE_CAN_FEC_AUTO``
- The frontend can autodetect FEC.
- .. row 13
- .. _`FE-CAN-QPSK`:
``FE_CAN_QPSK``
- The frontend supports QPSK modulation
- .. row 14
- .. _`FE-CAN-QAM-16`:
``FE_CAN_QAM_16``
- The frontend supports 16-QAM modulation
- .. row 15
- .. _`FE-CAN-QAM-32`:
``FE_CAN_QAM_32``
- The frontend supports 32-QAM modulation
- .. row 16
- .. _`FE-CAN-QAM-64`:
``FE_CAN_QAM_64``
- The frontend supports 64-QAM modulation
- .. row 17
- .. _`FE-CAN-QAM-128`:
``FE_CAN_QAM_128``
- The frontend supports 128-QAM modulation
- .. row 18
- .. _`FE-CAN-QAM-256`:
``FE_CAN_QAM_256``
- The frontend supports 256-QAM modulation
- .. row 19
- .. _`FE-CAN-QAM-AUTO`:
``FE_CAN_QAM_AUTO``
- The frontend can autodetect modulation
- .. row 20
- .. _`FE-CAN-TRANSMISSION-MODE-AUTO`:
``FE_CAN_TRANSMISSION_MODE_AUTO``
- The frontend can autodetect the transmission mode
- .. row 21
- .. _`FE-CAN-BANDWIDTH-AUTO`:
``FE_CAN_BANDWIDTH_AUTO``
- The frontend can autodetect the bandwidth
- .. row 22
- .. _`FE-CAN-GUARD-INTERVAL-AUTO`:
``FE_CAN_GUARD_INTERVAL_AUTO``
- The frontend can autodetect the guard interval
- .. row 23
- .. _`FE-CAN-HIERARCHY-AUTO`:
``FE_CAN_HIERARCHY_AUTO``
- The frontend can autodetect hierarch
- .. row 24
- .. _`FE-CAN-8VSB`:
``FE_CAN_8VSB``
- The frontend supports 8-VSB modulation
- .. row 25
- .. _`FE-CAN-16VSB`:
``FE_CAN_16VSB``
- The frontend supports 16-VSB modulation
- .. row 26
- .. _`FE-HAS-EXTENDED-CAPS`:
``FE_HAS_EXTENDED_CAPS``
- Currently, unused
- .. row 27
- .. _`FE-CAN-MULTISTREAM`:
``FE_CAN_MULTISTREAM``
- The frontend supports multistream filtering
- .. row 28
- .. _`FE-CAN-TURBO-FEC`:
``FE_CAN_TURBO_FEC``
- The frontend supports turbo FEC modulation
- .. row 29
- .. _`FE-CAN-2G-MODULATION`:
``FE_CAN_2G_MODULATION``
- The frontend supports "2nd generation modulation" (DVB-S2/T2)>
- .. row 30
- .. _`FE-NEEDS-BENDING`:
``FE_NEEDS_BENDING``
- Not supported anymore, don't use it
- .. row 31
- .. _`FE-CAN-RECOVER`:
``FE_CAN_RECOVER``
- The frontend can recover from a cable unplug automatically
- .. row 32
- .. _`FE-CAN-MUTE-TS`:
``FE_CAN_MUTE_TS``
- The frontend can stop spurious TS data output