Merge remote-tracking branches 'regulator/fix/88pm800', 'regulator/fix/max8973',...
[linux-drm-fsl-dcu.git] / Documentation / DocBook / media / dvb / fe-get-info.xml
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
53 kernel devices compatible with this specification and to obtain
54 information about driver and hardware capabilities. The ioctl takes a
55 pointer to dvb_frontend_info which is filled by the driver. When the
56 driver 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>