1<refentry id="FE_GET_INFO">
2  <refmeta>
3    <refentrytitle>ioctl FE_GET_INFO</refentrytitle>
4    &manvol;
5  </refmeta>
6
7  <refnamediv>
8    <refname>FE_GET_INFO</refname>
9    <refpurpose>Query DVB frontend capabilities and returns information about
10	the front-end. This call only requires read-only access to the device</refpurpose>
11  </refnamediv>
12
13  <refsynopsisdiv>
14    <funcsynopsis>
15      <funcprototype>
16	<funcdef>int <function>ioctl</function></funcdef>
17	<paramdef>int <parameter>fd</parameter></paramdef>
18	<paramdef>int <parameter>request</parameter></paramdef>
19	<paramdef>struct dvb_frontend_info *<parameter>argp</parameter></paramdef>
20      </funcprototype>
21    </funcsynopsis>
22  </refsynopsisdiv>
23
24  <refsect1>
25    <title>Arguments</title>
26        <variablelist>
27      <varlistentry>
28	<term><parameter>fd</parameter></term>
29	<listitem>
30	  <para>&fe_fd;</para>
31	</listitem>
32      </varlistentry>
33      <varlistentry>
34	<term><parameter>request</parameter></term>
35	<listitem>
36	  <para>FE_GET_INFO</para>
37	</listitem>
38      </varlistentry>
39      <varlistentry>
40	<term><parameter>argp</parameter></term>
41	<listitem>
42	    <para>pointer to struct &dvb-frontend-info;</para>
43	</listitem>
44      </varlistentry>
45    </variablelist>
46  </refsect1>
47
48  <refsect1>
49    <title>Description</title>
50
51    <para>All DVB frontend devices support the
52<constant>FE_GET_INFO</constant> ioctl. It is used to identify
53kernel devices compatible with this specification and to obtain
54information about driver and hardware capabilities. The ioctl takes a
55pointer to dvb_frontend_info which is filled by the driver. When the
56driver is not compatible with this specification the ioctl returns an error.
57</para>
58&return-value-dvb;
59
60    <table pgwide="1" frame="none" id="dvb-frontend-info">
61      <title>struct <structname>dvb_frontend_info</structname></title>
62      <tgroup cols="3">
63	&cs-str;
64	<tbody valign="top">
65	  <row>
66	    <entry>char</entry>
67	    <entry>name[128]</entry>
68	    <entry>Name of the frontend</entry>
69	  </row><row>
70	    <entry>fe_type_t</entry>
71	    <entry>type</entry>
72	    <entry><emphasis role="bold">DEPRECATED</emphasis>. DVBv3 type. Should not be used on modern programs, as a
73		frontend may have more than one type. So, the DVBv5 API should
74		be used instead to enumerate and select the frontend type.</entry>
75	  </row><row>
76	    <entry>uint32_t</entry>
77	    <entry>frequency_min</entry>
78	    <entry>Minimal frequency supported by the frontend</entry>
79	  </row><row>
80	    <entry>uint32_t</entry>
81	    <entry>frequency_max</entry>
82	    <entry>Maximal frequency supported by the frontend</entry>
83	  </row><row>
84	    <entry>uint32_t</entry>
85	    <entry>frequency_stepsize</entry>
86	    <entry>Frequency step - all frequencies are multiple of this value</entry>
87	  </row><row>
88	    <entry>uint32_t</entry>
89	    <entry>frequency_tolerance</entry>
90	    <entry>Tolerance of the frequency</entry>
91	  </row><row>
92	    <entry>uint32_t</entry>
93	    <entry>symbol_rate_min</entry>
94	    <entry>Minimal symbol rate (for Cable/Satellite systems), in bauds</entry>
95	  </row><row>
96	    <entry>uint32_t</entry>
97	    <entry>symbol_rate_max</entry>
98	    <entry>Maximal symbol rate (for Cable/Satellite systems), in bauds</entry>
99	  </row><row>
100	    <entry>uint32_t</entry>
101	    <entry>symbol_rate_tolerance</entry>
102	    <entry>Maximal symbol rate tolerance, in ppm</entry>
103	  </row><row>
104	    <entry>uint32_t</entry>
105	    <entry>notifier_delay</entry>
106	    <entry><emphasis role="bold">DEPRECATED</emphasis>. Not used by any driver.</entry>
107	  </row><row>
108	    <entry>&fe-caps;</entry>
109	    <entry>caps</entry>
110	    <entry>Capabilities supported by the frontend</entry>
111          </row>
112	</tbody>
113      </tgroup>
114    </table>
115
116  <para>NOTE: The frequencies are specified in Hz for Terrestrial and Cable
117      systems. They're specified in kHz for Satellite systems</para>
118  </refsect1>
119
120<refsect1 id="fe-caps-t">
121<title>frontend capabilities</title>
122
123<para>Capabilities describe what a frontend can do. Some capabilities are
124    supported only on some specific frontend types.</para>
125
126<table pgwide="1" frame="none" id="fe-caps">
127    <title>enum fe_caps</title>
128    <tgroup cols="2">
129	&cs-def;
130	<thead>
131	<row>
132	    <entry>ID</entry>
133	    <entry>Description</entry>
134	</row>
135	</thead>
136	<tbody valign="top">
137	<row>
138	<entry id="FE-IS-STUPID"><constant>FE_IS_STUPID</constant></entry>
139	<entry>There's something wrong at the frontend, and it can't
140	    report its capabilities</entry>
141	</row>
142	<row>
143	<entry id="FE-CAN-INVERSION-AUTO"><constant>FE_CAN_INVERSION_AUTO</constant></entry>
144	<entry>The frontend is capable of auto-detecting inversion</entry>
145	</row>
146	<row>
147	<entry id="FE-CAN-FEC-1-2"><constant>FE_CAN_FEC_1_2</constant></entry>
148	<entry>The frontend supports FEC 1/2</entry>
149	</row>
150	<row>
151	<entry id="FE-CAN-FEC-2-3"><constant>FE_CAN_FEC_2_3</constant></entry>
152	<entry>The frontend supports FEC 2/3</entry>
153	</row>
154	<row>
155	<entry id="FE-CAN-FEC-3-4"><constant>FE_CAN_FEC_3_4</constant></entry>
156	<entry>The frontend supports FEC 3/4</entry>
157	</row>
158	<row>
159	<entry id="FE-CAN-FEC-4-5"><constant>FE_CAN_FEC_4_5</constant></entry>
160	<entry>The frontend supports FEC 4/5</entry>
161	</row>
162	<row>
163	<entry id="FE-CAN-FEC-5-6"><constant>FE_CAN_FEC_5_6</constant></entry>
164	<entry>The frontend supports FEC 5/6</entry>
165	</row>
166	<row>
167	<entry id="FE-CAN-FEC-6-7"><constant>FE_CAN_FEC_6_7</constant></entry>
168	<entry>The frontend supports FEC 6/7</entry>
169	</row>
170	<row>
171	<entry id="FE-CAN-FEC-7-8"><constant>FE_CAN_FEC_7_8</constant></entry>
172	<entry>The frontend supports FEC 7/8</entry>
173	</row>
174	<row>
175	<entry id="FE-CAN-FEC-8-9"><constant>FE_CAN_FEC_8_9</constant></entry>
176	<entry>The frontend supports FEC 8/9</entry>
177	</row>
178	<row>
179	<entry id="FE-CAN-FEC-AUTO"><constant>FE_CAN_FEC_AUTO</constant></entry>
180	<entry>The frontend can autodetect FEC.</entry>
181	</row>
182	<row>
183	<entry id="FE-CAN-QPSK"><constant>FE_CAN_QPSK</constant></entry>
184	<entry>The frontend supports QPSK modulation</entry>
185	</row>
186	<row>
187	<entry id="FE-CAN-QAM-16"><constant>FE_CAN_QAM_16</constant></entry>
188	<entry>The frontend supports 16-QAM modulation</entry>
189	</row>
190	<row>
191	<entry id="FE-CAN-QAM-32"><constant>FE_CAN_QAM_32</constant></entry>
192	<entry>The frontend supports 32-QAM modulation</entry>
193	</row>
194	<row>
195	<entry id="FE-CAN-QAM-64"><constant>FE_CAN_QAM_64</constant></entry>
196	<entry>The frontend supports 64-QAM modulation</entry>
197	</row>
198	<row>
199	<entry id="FE-CAN-QAM-128"><constant>FE_CAN_QAM_128</constant></entry>
200	<entry>The frontend supports 128-QAM modulation</entry>
201	</row>
202	<row>
203	<entry id="FE-CAN-QAM-256"><constant>FE_CAN_QAM_256</constant></entry>
204	<entry>The frontend supports 256-QAM modulation</entry>
205	</row>
206	<row>
207	<entry id="FE-CAN-QAM-AUTO"><constant>FE_CAN_QAM_AUTO</constant></entry>
208	<entry>The frontend can autodetect modulation</entry>
209	</row>
210	<row>
211	<entry id="FE-CAN-TRANSMISSION-MODE-AUTO"><constant>FE_CAN_TRANSMISSION_MODE_AUTO</constant></entry>
212	<entry>The frontend can autodetect the transmission mode</entry>
213	</row>
214	<row>
215	<entry id="FE-CAN-BANDWIDTH-AUTO"><constant>FE_CAN_BANDWIDTH_AUTO</constant></entry>
216	<entry>The frontend can autodetect the bandwidth</entry>
217	</row>
218	<row>
219	<entry id="FE-CAN-GUARD-INTERVAL-AUTO"><constant>FE_CAN_GUARD_INTERVAL_AUTO</constant></entry>
220	<entry>The frontend can autodetect the guard interval</entry>
221	</row>
222	<row>
223	<entry id="FE-CAN-HIERARCHY-AUTO"><constant>FE_CAN_HIERARCHY_AUTO</constant></entry>
224	<entry>The frontend can autodetect hierarch</entry>
225	</row>
226	<row>
227	<entry id="FE-CAN-8VSB"><constant>FE_CAN_8VSB</constant></entry>
228	<entry>The frontend supports 8-VSB modulation</entry>
229	</row>
230	<row>
231	<entry id="FE-CAN-16VSB"><constant>FE_CAN_16VSB</constant></entry>
232	<entry>The frontend supports 16-VSB modulation</entry>
233	</row>
234	<row>
235	<entry id="FE-HAS-EXTENDED-CAPS"><constant>FE_HAS_EXTENDED_CAPS</constant></entry>
236	<entry>Currently, unused</entry>
237	</row>
238	<row>
239	<entry id="FE-CAN-MULTISTREAM"><constant>FE_CAN_MULTISTREAM</constant></entry>
240	<entry>The frontend supports multistream filtering</entry>
241	</row>
242	<row>
243	<entry id="FE-CAN-TURBO-FEC"><constant>FE_CAN_TURBO_FEC</constant></entry>
244	<entry>The frontend supports turbo FEC modulation</entry>
245	</row>
246	<row>
247	<entry id="FE-CAN-2G-MODULATION"><constant>FE_CAN_2G_MODULATION</constant></entry>
248	<entry>The frontend supports "2nd generation modulation" (DVB-S2/T2)></entry>
249	</row>
250	<row>
251	<entry id="FE-NEEDS-BENDING"><constant>FE_NEEDS_BENDING</constant></entry>
252	<entry>Not supported anymore, don't use it</entry>
253	</row>
254	<row>
255	<entry id="FE-CAN-RECOVER"><constant>FE_CAN_RECOVER</constant></entry>
256	<entry>The frontend can recover from a cable unplug automatically</entry>
257	</row>
258	<row>
259	<entry id="FE-CAN-MUTE-TS"><constant>FE_CAN_MUTE_TS</constant></entry>
260	<entry>The frontend can stop spurious TS data output</entry>
261	</row>
262        </tbody>
263    </tgroup>
264</table>
265</refsect1>
266</refentry>
267