linux/Documentation/media/uapi/dvb/fe-get-info.rst
Mauro Carvalho Chehab 5bd4bb7817 [media] docs-rst: add tabularcolumns to all tables
LaTeX doesn't handle too well auto-width on tables, and ReST
markup requires an special tag to give it the needed hints.

As we're using A4 paper, we have 17cm of useful spaces. As
most media tables have widths, let's use it to generate the
needed via the following perl script:

my ($line_size, $table_header, $has_cols) = (17.5, 0, 0);
my $out;
my $header = "";
my @widths = ();
sub round { $_[0] > 0 ? int($_[0] + .5) : -int(-$_[0] + .5) }
while (<>) {
	if (!$table_header) {
		$has_cols = 1 if (m/..\s+tabularcolumns::/);
		if (m/..\s+flat-table::/) {
			$table_header = 1;
			$header = $_;
			next;
		}
		$out .= $_;
		next;
	}
	$header .= $_;
	@widths = split(/ /, $1) if (m/:widths:\s+(.*)/);
	if (m/^\n$/) {
		if (!$has_cols && @widths) {
			my ($tot, $t, $i) = (0, 0, 0);
			foreach my $v(@widths) { $tot += $v; };
			$out .= ".. tabularcolumns:: |";
			for ($i = 0; $i < scalar @widths - 1; $i++) {
				my $v = $widths[$i];
				my $w = round(10 * ($v * $line_size) / $tot) / 10;
				$out .= sprintf "p{%.1fcm}|", $w;
				$t += $w;
			}
			my $w = $line_size - $t;
			$out .= sprintf "p{%.1fcm}|\n\n", $w;
		}
		$out .= $header;
		$table_header = 0;
		$has_cols = 0;
		$header = "";
		@widths = ();
	}
}
print $out;

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2016-08-22 10:07:12 -03:00

433 lines
7.1 KiB
ReStructuredText

.. -*- 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.
.. _dvb-frontend-info:
struct dvb_frontend_info
========================
.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
.. 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
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.