About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / DocBook / media / dvb / frontend_legacy_api.xml


Based on kernel version 4.7.2. Page generated on 2016-08-22 22:44 EST.

1	<section id="frontend_legacy_types">
2	<title>Frontend Legacy Data Types</title>
3	
4	<section id="fe-type-t">
5	<title>Frontend type</title>
6	
7	<para>For historical reasons, frontend types are named by the type of modulation
8	    used in transmission. The fontend types are given by fe_type_t type, defined as:</para>
9	
10	<table pgwide="1" frame="none" id="fe-type">
11	<title>Frontend types</title>
12	<tgroup cols="3">
13	   &cs-def;
14	   <thead>
15	     <row>
16	       <entry>fe_type</entry>
17	       <entry>Description</entry>
18	       <entry><link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> equivalent type</entry>
19	     </row>
20	  </thead>
21	  <tbody valign="top">
22	  <row>
23	     <entry id="FE-QPSK"><constant>FE_QPSK</constant></entry>
24	     <entry>For DVB-S standard</entry>
25	     <entry><constant>SYS_DVBS</constant></entry>
26	  </row>
27	  <row>
28	     <entry id="FE-QAM"><constant>FE_QAM</constant></entry>
29	     <entry>For DVB-C annex A standard</entry>
30	     <entry><constant>SYS_DVBC_ANNEX_A</constant></entry>
31	  </row>
32	  <row>
33	     <entry id="FE-OFDM"><constant>FE_OFDM</constant></entry>
34	     <entry>For DVB-T standard</entry>
35	     <entry><constant>SYS_DVBT</constant></entry>
36	  </row>
37	  <row>
38	     <entry id="FE-ATSC"><constant>FE_ATSC</constant></entry>
39	     <entry>For ATSC standard (terrestrial) or for DVB-C Annex B (cable) used in US.</entry>
40	     <entry><constant>SYS_ATSC</constant> (terrestrial) or <constant>SYS_DVBC_ANNEX_B</constant> (cable)</entry>
41	  </row>
42	</tbody></tgroup></table>
43	
44	<para>Newer formats like DVB-S2, ISDB-T, ISDB-S and DVB-T2 are not described at the above, as they're
45	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.
46	</para>
47	
48	<para>In the old days, &dvb-frontend-info; used to contain
49	    <constant>fe_type_t</constant> field to indicate the delivery systems,
50	    filled with either FE_QPSK, FE_QAM, FE_OFDM or FE_ATSC. While this is
51	    still filled to keep backward compatibility, the usage of this
52	    field is deprecated, as it can report just one delivery system, but some
53	    devices support multiple delivery systems. Please use
54	    <link linkend="DTV-ENUM-DELSYS">DTV_ENUM_DELSYS</link> instead.
55	</para>
56	<para>On devices that support multiple delivery systems,
57	    &dvb-frontend-info;::<constant>fe_type_t</constant> is filled with the
58	    currently standard, as selected by the last call to
59	    <link linkend="FE_GET_PROPERTY">FE_SET_PROPERTY</link>
60	    using the &DTV-DELIVERY-SYSTEM; property.</para>
61	</section>
62	
63	<section id="fe-bandwidth-t">
64	<title>Frontend bandwidth</title>
65	
66	<table pgwide="1" frame="none" id="fe-bandwidth">
67	    <title>enum fe_bandwidth</title>
68	    <tgroup cols="2">
69		&cs-def;
70		<thead>
71		<row>
72		    <entry>ID</entry>
73		    <entry>Description</entry>
74		</row>
75		</thead>
76		<tbody valign="top">
77		<row>
78		    <entry id="BANDWIDTH-AUTO"><constant>BANDWIDTH_AUTO</constant></entry>
79		    <entry>Autodetect bandwidth (if supported)</entry>
80		</row><row>
81		    <entry id="BANDWIDTH-1-712-MHZ"><constant>BANDWIDTH_1_712_MHZ</constant></entry>
82		    <entry>1.712 MHz</entry>
83		</row><row>
84		    <entry id="BANDWIDTH-5-MHZ"><constant>BANDWIDTH_5_MHZ</constant></entry>
85		    <entry>5 MHz</entry>
86		</row><row>
87		    <entry id="BANDWIDTH-6-MHZ"><constant>BANDWIDTH_6_MHZ</constant></entry>
88		    <entry>6 MHz</entry>
89		</row><row>
90		    <entry id="BANDWIDTH-7-MHZ"><constant>BANDWIDTH_7_MHZ</constant></entry>
91		    <entry>7 MHz</entry>
92		</row><row>
93		    <entry id="BANDWIDTH-8-MHZ"><constant>BANDWIDTH_8_MHZ</constant></entry>
94		    <entry>8 MHz</entry>
95		</row><row>
96		    <entry id="BANDWIDTH-10-MHZ"><constant>BANDWIDTH_10_MHZ</constant></entry>
97		    <entry>10 MHz</entry>
98		</row>
99	        </tbody>
100	    </tgroup>
101	</table>
102	
103	</section>
104	
105	<section id="dvb-frontend-parameters">
106	<title>frontend parameters</title>
107	<para>The kind of parameters passed to the frontend device for tuning depend on
108	the kind of hardware you are using.</para>
109	<para>The struct <constant>dvb_frontend_parameters</constant> uses an
110	union with specific per-system parameters. However, as newer delivery systems
111	required more data, the structure size weren't enough to fit, and just
112	extending its size would break the existing applications. So, those parameters
113	were replaced by the usage of <link linkend="FE_GET_PROPERTY">
114	<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> ioctl's. The
115	new API is flexible enough to add new parameters to existing delivery systems,
116	and to add newer delivery systems.</para>
117	<para>So, newer applications should use <link linkend="FE_GET_PROPERTY">
118	<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> instead, in
119	order to be able to support the newer System Delivery like  DVB-S2, DVB-T2,
120	DVB-C2, ISDB, etc.</para>
121	<para>All kinds of parameters are combined as an union in the FrontendParameters structure:
122	<programlisting>
123	struct dvb_frontend_parameters {
124		uint32_t frequency;     /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/
125					/&#x22C6; intermediate frequency in kHz for QPSK &#x22C6;/
126		&fe-spectral-inversion-t; inversion;
127		union {
128			struct dvb_qpsk_parameters qpsk;
129			struct dvb_qam_parameters  qam;
130			struct dvb_ofdm_parameters ofdm;
131			struct dvb_vsb_parameters  vsb;
132		} u;
133	};
134	</programlisting></para>
135	<para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate
136	frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of
137	the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and
138	OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz.
139	</para>
140	
141	<section id="dvb-qpsk-parameters">
142	<title>QPSK parameters</title>
143	<para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para>
144	<programlisting>
145	 struct dvb_qpsk_parameters {
146		 uint32_t        symbol_rate;  /&#x22C6; symbol rate in Symbols per second &#x22C6;/
147		 &fe-code-rate-t;  fec_inner;    /&#x22C6; forward error correction (see above) &#x22C6;/
148	 };
149	</programlisting>
150	</section>
151	
152	<section id="dvb-qam-parameters">
153	<title>QAM parameters</title>
154	<para>for cable QAM frontend you use the <constant>dvb_qam_parameters</constant> structure:</para>
155	<programlisting>
156	 struct dvb_qam_parameters {
157		 uint32_t         symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/
158		 &fe-code-rate-t;   fec_inner;   /&#x22C6; forward error correction (see above) &#x22C6;/
159		 &fe-modulation-t;  modulation;  /&#x22C6; modulation type (see above) &#x22C6;/
160	 };
161	</programlisting>
162	</section>
163	
164	<section id="dvb-vsb-parameters">
165	<title>VSB parameters</title>
166	<para>ATSC frontends are supported by the <constant>dvb_vsb_parameters</constant> structure:</para>
167	<programlisting>
168	struct dvb_vsb_parameters {
169		&fe-modulation-t; modulation;	/&#x22C6; modulation type (see above) &#x22C6;/
170	};
171	</programlisting>
172	</section>
173	
174	<section id="dvb-ofdm-parameters">
175	<title>OFDM parameters</title>
176	<para>DVB-T frontends are supported by the <constant>dvb_ofdm_parameters</constant> structure:</para>
177	<programlisting>
178	 struct dvb_ofdm_parameters {
179		 &fe-bandwidth-t;      bandwidth;
180		 &fe-code-rate-t;      code_rate_HP;  /&#x22C6; high priority stream code rate &#x22C6;/
181		 &fe-code-rate-t;      code_rate_LP;  /&#x22C6; low priority stream code rate &#x22C6;/
182		 &fe-modulation-t;     constellation; /&#x22C6; modulation type (see above) &#x22C6;/
183		 &fe-transmit-mode-t;  transmission_mode;
184		 &fe-guard-interval-t; guard_interval;
185		 &fe-hierarchy-t;      hierarchy_information;
186	 };
187	</programlisting>
188	</section>
189	</section>
190	
191	<section id="dvb-frontend-event">
192	<title>frontend events</title>
193	 <programlisting>
194	 struct dvb_frontend_event {
195		 fe_status_t status;
196		 struct dvb_frontend_parameters parameters;
197	 };
198	</programlisting>
199	 </section>
200	</section>
201	
202	<section id="frontend_legacy_fcalls">
203	<title>Frontend Legacy Function Calls</title>
204	
205	<para>Those functions are defined at DVB version 3. The support is kept in
206	    the kernel due to compatibility issues only. Their usage is strongly
207	    not recommended</para>
208	
209	<section id="FE_READ_BER">
210	<title>FE_READ_BER</title>
211	<para>DESCRIPTION
212	</para>
213	<informaltable><tgroup cols="1"><tbody><row><entry
214	 align="char">
215	<para>This ioctl call returns the bit error rate for the signal currently
216	 received/demodulated by the front-end. For this command, read-only access to
217	 the device is sufficient.</para>
218	</entry>
219	 </row></tbody></tgroup></informaltable>
220	<para>SYNOPSIS
221	</para>
222	<informaltable><tgroup cols="1"><tbody><row><entry
223	 align="char">
224	<para>int ioctl(int fd, int request = <link linkend="FE_READ_BER">FE_READ_BER</link>,
225	 uint32_t &#x22C6;ber);</para>
226	</entry>
227	 </row></tbody></tgroup></informaltable>
228	<para>PARAMETERS
229	</para>
230	<informaltable><tgroup cols="2"><tbody><row><entry
231	 align="char">
232	<para>int fd</para>
233	</entry><entry
234	 align="char">
235	<para>File descriptor returned by a previous call to open().</para>
236	</entry>
237	 </row><row><entry
238	 align="char">
239	<para>int request</para>
240	</entry><entry
241	 align="char">
242	<para>Equals <link linkend="FE_READ_BER">FE_READ_BER</link> for this command.</para>
243	</entry>
244	 </row><row><entry
245	 align="char">
246	<para>uint32_t *ber</para>
247	</entry><entry
248	 align="char">
249	<para>The bit error rate is stored into *ber.</para>
250	</entry>
251	 </row></tbody></tgroup></informaltable>
252	
253	&return-value-dvb;
254	</section>
255	
256	<section id="FE_READ_SNR">
257	<title>FE_READ_SNR</title>
258	
259	<para>DESCRIPTION
260	</para>
261	<informaltable><tgroup cols="1"><tbody><row><entry
262	 align="char">
263	<para>This ioctl call returns the signal-to-noise ratio for the signal currently received
264	 by the front-end. For this command, read-only access to the device is sufficient.</para>
265	</entry>
266	 </row></tbody></tgroup></informaltable>
267	<para>SYNOPSIS
268	</para>
269	<informaltable><tgroup cols="1"><tbody><row><entry
270	 align="char">
271	<para>int ioctl(int fd, int request = <link linkend="FE_READ_SNR">FE_READ_SNR</link>, uint16_t
272	 &#x22C6;snr);</para>
273	</entry>
274	 </row></tbody></tgroup></informaltable>
275	<para>PARAMETERS
276	</para>
277	<informaltable><tgroup cols="2"><tbody><row><entry
278	 align="char">
279	<para>int fd</para>
280	</entry><entry
281	 align="char">
282	<para>File descriptor returned by a previous call to open().</para>
283	</entry>
284	 </row><row><entry
285	 align="char">
286	<para>int request</para>
287	</entry><entry
288	 align="char">
289	<para>Equals <link linkend="FE_READ_SNR">FE_READ_SNR</link> for this command.</para>
290	</entry>
291	 </row><row><entry
292	 align="char">
293	<para>uint16_t *snr</para>
294	</entry><entry
295	 align="char">
296	<para>The signal-to-noise ratio is stored into *snr.</para>
297	</entry>
298	 </row></tbody></tgroup></informaltable>
299	
300	&return-value-dvb;
301	</section>
302	
303	<section id="FE_READ_SIGNAL_STRENGTH">
304	<title>FE_READ_SIGNAL_STRENGTH</title>
305	<para>DESCRIPTION
306	</para>
307	<informaltable><tgroup cols="1"><tbody><row><entry
308	 align="char">
309	<para>This ioctl call returns the signal strength value for the signal currently received
310	 by the front-end. For this command, read-only access to the device is sufficient.</para>
311	</entry>
312	 </row></tbody></tgroup></informaltable>
313	<para>SYNOPSIS
314	</para>
315	<informaltable><tgroup cols="1"><tbody><row><entry
316	 align="char">
317	<para>int ioctl( int fd, int request =
318	 <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link>, uint16_t &#x22C6;strength);</para>
319	</entry>
320	 </row></tbody></tgroup></informaltable>
321	
322	<para>PARAMETERS
323	</para>
324	<informaltable><tgroup cols="2"><tbody><row><entry
325	 align="char">
326	<para>int fd</para>
327	</entry><entry
328	 align="char">
329	<para>File descriptor returned by a previous call to open().</para>
330	</entry>
331	 </row><row><entry
332	 align="char">
333	<para>int request</para>
334	</entry><entry
335	 align="char">
336	<para>Equals <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link> for this
337	 command.</para>
338	</entry>
339	 </row><row><entry
340	 align="char">
341	<para>uint16_t *strength</para>
342	</entry><entry
343	 align="char">
344	<para>The signal strength value is stored into *strength.</para>
345	</entry>
346	 </row></tbody></tgroup></informaltable>
347	
348	&return-value-dvb;
349	</section>
350	
351	<section id="FE_READ_UNCORRECTED_BLOCKS">
352	<title>FE_READ_UNCORRECTED_BLOCKS</title>
353	<para>DESCRIPTION
354	</para>
355	<informaltable><tgroup cols="1"><tbody><row><entry
356	 align="char">
357	<para>This ioctl call returns the number of uncorrected blocks detected by the device
358	 driver during its lifetime. For meaningful measurements, the increment in block
359	 count during a specific time interval should be calculated. For this command,
360	 read-only access to the device is sufficient.</para>
361	</entry>
362	 </row><row><entry
363	 align="char">
364	<para>Note that the counter will wrap to zero after its maximum count has been
365	 reached.</para>
366	</entry>
367	 </row></tbody></tgroup></informaltable>
368	<para>SYNOPSIS
369	</para>
370	<informaltable><tgroup cols="1"><tbody><row><entry
371	 align="char">
372	<para>int ioctl( int fd, int request =
373	 <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link>, uint32_t &#x22C6;ublocks);</para>
374	</entry>
375	 </row></tbody></tgroup></informaltable>
376	<para>PARAMETERS
377	</para>
378	<informaltable><tgroup cols="2"><tbody><row><entry
379	 align="char">
380	<para>int fd</para>
381	</entry><entry
382	 align="char">
383	<para>File descriptor returned by a previous call to open().</para>
384	</entry>
385	 </row><row><entry
386	 align="char">
387	<para>int request</para>
388	</entry><entry
389	 align="char">
390	<para>Equals <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link> for this
391	 command.</para>
392	</entry>
393	 </row><row><entry
394	 align="char">
395	<para>uint32_t *ublocks</para>
396	</entry><entry
397	 align="char">
398	<para>The total number of uncorrected blocks seen by the driver
399	 so far.</para>
400	</entry>
401	 </row></tbody></tgroup></informaltable>
402	
403	&return-value-dvb;
404	</section>
405	
406	<section id="FE_SET_FRONTEND">
407	<title>FE_SET_FRONTEND</title>
408	<para>DESCRIPTION
409	</para>
410	<informaltable><tgroup cols="1"><tbody><row><entry
411	 align="char">
412	<para>This ioctl call starts a tuning operation using specified parameters. The result
413	 of this call will be successful if the parameters were valid and the tuning could
414	 be initiated. The result of the tuning operation in itself, however, will arrive
415	 asynchronously as an event (see documentation for <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> and
416	 FrontendEvent.) If a new <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> operation is initiated before
417	 the previous one was completed, the previous operation will be aborted in favor
418	 of the new one. This command requires read/write access to the device.</para>
419	</entry>
420	 </row></tbody></tgroup></informaltable>
421	
422	<para>SYNOPSIS
423	</para>
424	<informaltable><tgroup cols="1"><tbody><row><entry
425	 align="char">
426	<para>int ioctl(int fd, int request = <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link>,
427	 struct dvb_frontend_parameters &#x22C6;p);</para>
428	</entry>
429	 </row></tbody></tgroup></informaltable>
430	<para>PARAMETERS
431	</para>
432	<informaltable><tgroup cols="2"><tbody><row><entry
433	 align="char">
434	<para>int fd</para>
435	</entry><entry
436	 align="char">
437	<para>File descriptor returned by a previous call to open().</para>
438	</entry>
439	 </row><row><entry
440	 align="char">
441	<para>int request</para>
442	</entry><entry
443	 align="char">
444	<para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
445	</entry>
446	 </row><row><entry
447	 align="char">
448	<para>struct
449	 dvb_frontend_parameters
450	 *p</para>
451	</entry><entry
452	 align="char">
453	<para>Points to parameters for tuning operation.</para>
454	</entry>
455	 </row></tbody></tgroup></informaltable>
456	
457	&return-value-dvb;
458	<informaltable><tgroup cols="2"><tbody><row><entry
459	 align="char">
460	<para>EINVAL</para>
461	</entry><entry
462	 align="char">
463	<para>Maximum supported symbol rate reached.</para>
464	</entry>
465	</row></tbody></tgroup></informaltable>
466	</section>
467	
468	<section id="FE_GET_FRONTEND">
469	<title>FE_GET_FRONTEND</title>
470	<para>DESCRIPTION
471	</para>
472	<informaltable><tgroup cols="1"><tbody><row><entry
473	 align="char">
474	<para>This ioctl call queries the currently effective frontend parameters. For this
475	 command, read-only access to the device is sufficient.</para>
476	</entry>
477	 </row></tbody></tgroup></informaltable>
478	
479	<para>SYNOPSIS
480	</para>
481	<informaltable><tgroup cols="1"><tbody><row><entry
482	 align="char">
483	<para>int ioctl(int fd, int request = <link linkend="FE_GET_FRONTEND">FE_GET_FRONTEND</link>,
484	 struct dvb_frontend_parameters &#x22C6;p);</para>
485	</entry>
486	 </row></tbody></tgroup></informaltable>
487	
488	<para>PARAMETERS
489	</para>
490	<informaltable><tgroup cols="2"><tbody><row><entry
491	 align="char">
492	<para>int fd</para>
493	</entry><entry
494	 align="char">
495	<para>File descriptor returned by a previous call to open().</para>
496	</entry>
497	 </row><row><entry
498	 align="char">
499	<para>int request</para>
500	</entry><entry
501	 align="char">
502	<para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
503	</entry>
504	 </row><row><entry
505	 align="char">
506	<para>struct
507	 dvb_frontend_parameters
508	 *p</para>
509	</entry><entry
510	 align="char">
511	<para>Points to parameters for tuning operation.</para>
512	</entry>
513	 </row></tbody></tgroup></informaltable>
514	
515	&return-value-dvb;
516	<informaltable><tgroup cols="2"><tbody><row><entry
517	 align="char">
518	<para>EINVAL</para>
519	</entry><entry
520	 align="char">
521	<para>Maximum supported symbol rate reached.</para>
522	</entry>
523	 </row></tbody></tgroup></informaltable>
524	
525	</section>
526	
527	<section id="FE_GET_EVENT">
528	<title>FE_GET_EVENT</title>
529	<para>DESCRIPTION
530	</para>
531	<informaltable><tgroup cols="1"><tbody><row><entry
532	 align="char">
533	<para>This ioctl call returns a frontend event if available. If an event is not
534	 available, the behavior depends on whether the device is in blocking or
535	 non-blocking mode. In the latter case, the call fails immediately with errno
536	 set to EWOULDBLOCK. In the former case, the call blocks until an event
537	 becomes available.</para>
538	</entry>
539	 </row><row><entry
540	 align="char">
541	<para>The standard Linux poll() and/or select() system calls can be used with the
542	 device file descriptor to watch for new events. For select(), the file descriptor
543	 should be included in the exceptfds argument, and for poll(), POLLPRI should
544	 be specified as the wake-up condition. Since the event queue allocated is
545	 rather small (room for 8 events), the queue must be serviced regularly to avoid
546	 overflow. If an overflow happens, the oldest event is discarded from the queue,
547	 and an error (EOVERFLOW) occurs the next time the queue is read. After
548	 reporting the error condition in this fashion, subsequent
549	 <link linkend="FE_GET_EVENT">FE_GET_EVENT</link>
550	 calls will return events from the queue as usual.</para>
551	</entry>
552	 </row><row><entry
553	 align="char">
554	<para>For the sake of implementation simplicity, this command requires read/write
555	 access to the device.</para>
556	</entry>
557	 </row></tbody></tgroup></informaltable>
558	
559	<para>SYNOPSIS
560	</para>
561	<informaltable><tgroup cols="1"><tbody><row><entry
562	 align="char">
563	<para>int ioctl(int fd, int request = QPSK_GET_EVENT,
564	 struct dvb_frontend_event &#x22C6;ev);</para>
565	</entry>
566	 </row></tbody></tgroup></informaltable>
567	
568	<para>PARAMETERS
569	</para>
570	<informaltable><tgroup cols="2"><tbody><row><entry
571	 align="char">
572	<para>int fd</para>
573	</entry><entry
574	 align="char">
575	<para>File descriptor returned by a previous call to open().</para>
576	</entry>
577	 </row><row><entry
578	 align="char">
579	<para>int request</para>
580	</entry><entry
581	 align="char">
582	<para>Equals <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> for this command.</para>
583	</entry>
584	 </row><row><entry
585	 align="char">
586	<para>struct
587	 dvb_frontend_event
588	 *ev</para>
589	</entry><entry
590	 align="char">
591	<para>Points to the location where the event,</para>
592	</entry>
593	 </row><row><entry
594	 align="char">
595	</entry><entry
596	 align="char">
597	<para>if any, is to be stored.</para>
598	</entry>
599	 </row></tbody></tgroup></informaltable>
600	
601	&return-value-dvb;
602	<informaltable><tgroup cols="2"><tbody><row><entry
603	 align="char">
604	<para>EWOULDBLOCK</para>
605	</entry><entry
606	 align="char">
607	<para>There is no event pending, and the device is in
608	 non-blocking mode.</para>
609	</entry>
610	 </row><row><entry
611	 align="char">
612	<para>EOVERFLOW</para>
613	</entry><entry
614	 align="char">
615	<para>Overflow in event queue - one or more events were lost.</para>
616	</entry>
617	</row></tbody></tgroup></informaltable>
618	</section>
619	
620	<section id="FE_DISHNETWORK_SEND_LEGACY_CMD">
621		<title>FE_DISHNETWORK_SEND_LEGACY_CMD</title>
622	<para>DESCRIPTION</para>
623	<informaltable><tgroup cols="1"><tbody><row>
624	<entry align="char">
625	<para>WARNING: This is a very obscure legacy command, used only at stv0299 driver. Should not be used on newer drivers.</para>
626	<para>It provides a non-standard method for selecting Diseqc voltage on the frontend, for Dish Network legacy switches.</para>
627	<para>As support for this ioctl were added in 2004, this means that such dishes were already legacy in 2004.</para>
628	</entry>
629	</row></tbody></tgroup></informaltable>
630	
631	<para>SYNOPSIS</para>
632	<informaltable><tgroup cols="1"><tbody><row>
633	<entry align="char">
634	<para>int ioctl(int fd, int request =
635		<link linkend="FE_DISHNETWORK_SEND_LEGACY_CMD">FE_DISHNETWORK_SEND_LEGACY_CMD</link>, unsigned long cmd);</para>
636	</entry>
637	</row></tbody></tgroup></informaltable>
638	
639	<para>PARAMETERS</para>
640	<informaltable><tgroup cols="2"><tbody><row>
641	<entry align="char">
642		<para>unsigned long cmd</para>
643	</entry>
644	<entry align="char">
645	<para>
646	sends the specified raw cmd to the dish via DISEqC.
647	</para>
648	</entry>
649	 </row></tbody></tgroup></informaltable>
650	
651	&return-value-dvb;
652	</section>
653	
654	</section>
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog