aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/DocBook
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-12-09 22:50:49 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2009-12-09 22:50:49 -0500
commit3e7468313758913c5e4d372f35b271b96bad1298 (patch)
treeeb612d252a9e2349a1173451cd779beebd18a33e /Documentation/DocBook
parent6825fbc4cb219f2c98bb7d157915d797cf5cb823 (diff)
parente97f4677961f68e29bd906022ebf60a6df7f530a (diff)
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (345 commits) V4L/DVB (13542): ir-keytable: Allow dynamic table change V4L/DVB (13541): atbm8830: replace 64-bit division and floating point usage V4L/DVB (13540): ir-common: Cleanup get key evdev code V4L/DVB (13539): ir-common: add __func__ for debug messages V4L/DVB (13538): ir-common: Use a dynamic keycode table V4L/DVB (13537): ir: Prepare the code for dynamic keycode table allocation V4L/DVB (13536): em28xx: Use the full RC5 code on HVR-950 Remote Controller V4L/DVB (13535): ir-common: Add a hauppauge new table with the complete RC5 code V4L/DVB (13534): ir-common: Remove some unused fields/structs V4L/DVB (13533): ir: use dynamic tables, instead of static ones V4L/DVB (13532): ir-common: Add infrastructure to use a dynamic keycode table V4L/DVB (13531): ir-common: rename the debug routine to allow exporting it V4L/DVB (13458): go7007: subdev conversion V4L/DVB (13457): s2250: subdev conversion V4L/DVB (13456): s2250: Change module structure V4L/DVB (13528): em28xx: add support for em2800 VC211A card em28xx: don't reduce scale to half size for em2800 em28xx: don't load audio modules when AC97 is mis-detected em28xx: em2800 chips support max width of 640 V4L/DVB (13523): dvb-bt8xx: fix compile warning ... Fix up trivial conflicts due to spelling fixes from the trivial tree in Documentation/video4linux/gspca.txt drivers/media/video/cx18/cx18-mailbox.h
Diffstat (limited to 'Documentation/DocBook')
-rw-r--r--Documentation/DocBook/dvb/dvbapi.xml13
-rw-r--r--Documentation/DocBook/dvb/dvbproperty.xml (renamed from Documentation/DocBook/dvb/isdbt.xml)4
-rw-r--r--Documentation/DocBook/dvb/frontend.h.xml415
-rw-r--r--Documentation/DocBook/dvb/frontend.xml185
-rw-r--r--Documentation/DocBook/media-entities.tmpl3
-rw-r--r--Documentation/DocBook/v4l/controls.xml20
-rw-r--r--Documentation/DocBook/v4l/pixfmt.xml5
-rw-r--r--Documentation/DocBook/v4l/videodev2.h.xml7
-rw-r--r--Documentation/DocBook/v4l/vidioc-g-fbuf.xml17
9 files changed, 613 insertions, 56 deletions
diff --git a/Documentation/DocBook/dvb/dvbapi.xml b/Documentation/DocBook/dvb/dvbapi.xml
index 4fc5b23470a3..63c528fee624 100644
--- a/Documentation/DocBook/dvb/dvbapi.xml
+++ b/Documentation/DocBook/dvb/dvbapi.xml
@@ -30,6 +30,14 @@
30<revhistory> 30<revhistory>
31<!-- Put document revisions here, newest first. --> 31<!-- Put document revisions here, newest first. -->
32<revision> 32<revision>
33 <revnumber>2.0.2</revnumber>
34 <date>2009-10-25</date>
35 <authorinitials>mcc</authorinitials>
36 <revremark>
37 documents FE_SET_FRONTEND_TUNE_MODE and FE_DISHETWORK_SEND_LEGACY_CMD ioctls.
38 </revremark>
39</revision>
40<revision>
33<revnumber>2.0.1</revnumber> 41<revnumber>2.0.1</revnumber>
34<date>2009-09-16</date> 42<date>2009-09-16</date>
35<authorinitials>mcc</authorinitials> 43<authorinitials>mcc</authorinitials>
@@ -85,3 +93,8 @@ Added ISDB-T test originally written by Patrick Boettcher
85 &sub-examples; 93 &sub-examples;
86 </chapter> 94 </chapter>
87<!-- END OF CHAPTERS --> 95<!-- END OF CHAPTERS -->
96 <appendix id="frontend_h">
97 <title>DVB Frontend Header File</title>
98 &sub-frontend-h;
99 </appendix>
100
diff --git a/Documentation/DocBook/dvb/isdbt.xml b/Documentation/DocBook/dvb/dvbproperty.xml
index 92855222fccb..5f57c7ccd4ba 100644
--- a/Documentation/DocBook/dvb/isdbt.xml
+++ b/Documentation/DocBook/dvb/dvbproperty.xml
@@ -1,3 +1,6 @@
1<section id="FE_GET_PROPERTY">
2<title>FE_GET_PROPERTY/FE_SET_PROPERTY</title>
3
1<section id="isdbt"> 4<section id="isdbt">
2 <title>ISDB-T frontend</title> 5 <title>ISDB-T frontend</title>
3 <para>This section describes shortly what are the possible parameters in the Linux 6 <para>This section describes shortly what are the possible parameters in the Linux
@@ -312,3 +315,4 @@
312 </section> 315 </section>
313 </section> 316 </section>
314</section> 317</section>
318</section>
diff --git a/Documentation/DocBook/dvb/frontend.h.xml b/Documentation/DocBook/dvb/frontend.h.xml
new file mode 100644
index 000000000000..b99644f5340a
--- /dev/null
+++ b/Documentation/DocBook/dvb/frontend.h.xml
@@ -0,0 +1,415 @@
1<programlisting>
2/*
3 * frontend.h
4 *
5 * Copyright (C) 2000 Marcus Metzler &lt;marcus@convergence.de&gt;
6 * Ralph Metzler &lt;ralph@convergence.de&gt;
7 * Holger Waechtler &lt;holger@convergence.de&gt;
8 * Andre Draszik &lt;ad@convergence.de&gt;
9 * for convergence integrated media GmbH
10 *
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU Lesser General Public License
13 * as published by the Free Software Foundation; either version 2.1
14 * of the License, or (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24 *
25 */
26
27#ifndef _DVBFRONTEND_H_
28#define _DVBFRONTEND_H_
29
30#include &lt;linux/types.h&gt;
31
32typedef enum fe_type {
33 FE_QPSK,
34 FE_QAM,
35 FE_OFDM,
36 FE_ATSC
37} fe_type_t;
38
39
40typedef enum fe_caps {
41 FE_IS_STUPID = 0,
42 FE_CAN_INVERSION_AUTO = 0x1,
43 FE_CAN_FEC_1_2 = 0x2,
44 FE_CAN_FEC_2_3 = 0x4,
45 FE_CAN_FEC_3_4 = 0x8,
46 FE_CAN_FEC_4_5 = 0x10,
47 FE_CAN_FEC_5_6 = 0x20,
48 FE_CAN_FEC_6_7 = 0x40,
49 FE_CAN_FEC_7_8 = 0x80,
50 FE_CAN_FEC_8_9 = 0x100,
51 FE_CAN_FEC_AUTO = 0x200,
52 FE_CAN_QPSK = 0x400,
53 FE_CAN_QAM_16 = 0x800,
54 FE_CAN_QAM_32 = 0x1000,
55 FE_CAN_QAM_64 = 0x2000,
56 FE_CAN_QAM_128 = 0x4000,
57 FE_CAN_QAM_256 = 0x8000,
58 FE_CAN_QAM_AUTO = 0x10000,
59 FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000,
60 FE_CAN_BANDWIDTH_AUTO = 0x40000,
61 FE_CAN_GUARD_INTERVAL_AUTO = 0x80000,
62 FE_CAN_HIERARCHY_AUTO = 0x100000,
63 FE_CAN_8VSB = 0x200000,
64 FE_CAN_16VSB = 0x400000,
65 FE_HAS_EXTENDED_CAPS = 0x800000, /* We need more bitspace for newer APIs, indicate this. */
66 FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
67 FE_NEEDS_BENDING = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */
68 FE_CAN_RECOVER = 0x40000000, /* frontend can recover from a cable unplug automatically */
69 FE_CAN_MUTE_TS = 0x80000000 /* frontend can stop spurious TS data output */
70} fe_caps_t;
71
72
73struct dvb_frontend_info {
74 char name[128];
75 fe_type_t type;
76 __u32 frequency_min;
77 __u32 frequency_max;
78 __u32 frequency_stepsize;
79 __u32 frequency_tolerance;
80 __u32 symbol_rate_min;
81 __u32 symbol_rate_max;
82 __u32 symbol_rate_tolerance; /* ppm */
83 __u32 notifier_delay; /* DEPRECATED */
84 fe_caps_t caps;
85};
86
87
88/**
89 * Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for
90 * the meaning of this struct...
91 */
92struct dvb_diseqc_master_cmd {
93 __u8 msg [6]; /* { framing, address, command, data [3] } */
94 __u8 msg_len; /* valid values are 3...6 */
95};
96
97
98struct dvb_diseqc_slave_reply {
99 __u8 msg [4]; /* { framing, data [3] } */
100 __u8 msg_len; /* valid values are 0...4, 0 means no msg */
101 int timeout; /* return from ioctl after timeout ms with */
102}; /* errorcode when no message was received */
103
104
105typedef enum fe_sec_voltage {
106 SEC_VOLTAGE_13,
107 SEC_VOLTAGE_18,
108 SEC_VOLTAGE_OFF
109} fe_sec_voltage_t;
110
111
112typedef enum fe_sec_tone_mode {
113 SEC_TONE_ON,
114 SEC_TONE_OFF
115} fe_sec_tone_mode_t;
116
117
118typedef enum fe_sec_mini_cmd {
119 SEC_MINI_A,
120 SEC_MINI_B
121} fe_sec_mini_cmd_t;
122
123
124typedef enum fe_status {
125 FE_HAS_SIGNAL = 0x01, /* found something above the noise level */
126 FE_HAS_CARRIER = 0x02, /* found a DVB signal */
127 FE_HAS_VITERBI = 0x04, /* FEC is stable */
128 FE_HAS_SYNC = 0x08, /* found sync bytes */
129 FE_HAS_LOCK = 0x10, /* everything's working... */
130 FE_TIMEDOUT = 0x20, /* no lock within the last ~2 seconds */
131 FE_REINIT = 0x40 /* frontend was reinitialized, */
132} fe_status_t; /* application is recommended to reset */
133 /* DiSEqC, tone and parameters */
134
135typedef enum fe_spectral_inversion {
136 INVERSION_OFF,
137 INVERSION_ON,
138 INVERSION_AUTO
139} fe_spectral_inversion_t;
140
141
142typedef enum fe_code_rate {
143 FEC_NONE = 0,
144 FEC_1_2,
145 FEC_2_3,
146 FEC_3_4,
147 FEC_4_5,
148 FEC_5_6,
149 FEC_6_7,
150 FEC_7_8,
151 FEC_8_9,
152 FEC_AUTO,
153 FEC_3_5,
154 FEC_9_10,
155} fe_code_rate_t;
156
157
158typedef enum fe_modulation {
159 QPSK,
160 QAM_16,
161 QAM_32,
162 QAM_64,
163 QAM_128,
164 QAM_256,
165 QAM_AUTO,
166 VSB_8,
167 VSB_16,
168 PSK_8,
169 APSK_16,
170 APSK_32,
171 DQPSK,
172} fe_modulation_t;
173
174typedef enum fe_transmit_mode {
175 TRANSMISSION_MODE_2K,
176 TRANSMISSION_MODE_8K,
177 TRANSMISSION_MODE_AUTO,
178 TRANSMISSION_MODE_4K
179} fe_transmit_mode_t;
180
181typedef enum fe_bandwidth {
182 BANDWIDTH_8_MHZ,
183 BANDWIDTH_7_MHZ,
184 BANDWIDTH_6_MHZ,
185 BANDWIDTH_AUTO
186} fe_bandwidth_t;
187
188
189typedef enum fe_guard_interval {
190 GUARD_INTERVAL_1_32,
191 GUARD_INTERVAL_1_16,
192 GUARD_INTERVAL_1_8,
193 GUARD_INTERVAL_1_4,
194 GUARD_INTERVAL_AUTO
195} fe_guard_interval_t;
196
197
198typedef enum fe_hierarchy {
199 HIERARCHY_NONE,
200 HIERARCHY_1,
201 HIERARCHY_2,
202 HIERARCHY_4,
203 HIERARCHY_AUTO
204} fe_hierarchy_t;
205
206
207struct dvb_qpsk_parameters {
208 __u32 symbol_rate; /* symbol rate in Symbols per second */
209 fe_code_rate_t fec_inner; /* forward error correction (see above) */
210};
211
212struct dvb_qam_parameters {
213 __u32 symbol_rate; /* symbol rate in Symbols per second */
214 fe_code_rate_t fec_inner; /* forward error correction (see above) */
215 fe_modulation_t modulation; /* modulation type (see above) */
216};
217
218struct dvb_vsb_parameters {
219 fe_modulation_t modulation; /* modulation type (see above) */
220};
221
222struct dvb_ofdm_parameters {
223 fe_bandwidth_t bandwidth;
224 fe_code_rate_t code_rate_HP; /* high priority stream code rate */
225 fe_code_rate_t code_rate_LP; /* low priority stream code rate */
226 fe_modulation_t constellation; /* modulation type (see above) */
227 fe_transmit_mode_t transmission_mode;
228 fe_guard_interval_t guard_interval;
229 fe_hierarchy_t hierarchy_information;
230};
231
232
233struct dvb_frontend_parameters {
234 __u32 frequency; /* (absolute) frequency in Hz for QAM/OFDM/ATSC */
235 /* intermediate frequency in kHz for QPSK */
236 fe_spectral_inversion_t inversion;
237 union {
238 struct dvb_qpsk_parameters qpsk;
239 struct dvb_qam_parameters qam;
240 struct dvb_ofdm_parameters ofdm;
241 struct dvb_vsb_parameters vsb;
242 } u;
243};
244
245
246struct dvb_frontend_event {
247 fe_status_t status;
248 struct dvb_frontend_parameters parameters;
249};
250
251/* S2API Commands */
252#define DTV_UNDEFINED 0
253#define DTV_TUNE 1
254#define DTV_CLEAR 2
255#define DTV_FREQUENCY 3
256#define DTV_MODULATION 4
257#define DTV_BANDWIDTH_HZ 5
258#define DTV_INVERSION 6
259#define DTV_DISEQC_MASTER 7
260#define DTV_SYMBOL_RATE 8
261#define DTV_INNER_FEC 9
262#define DTV_VOLTAGE 10
263#define DTV_TONE 11
264#define DTV_PILOT 12
265#define DTV_ROLLOFF 13
266#define DTV_DISEQC_SLAVE_REPLY 14
267
268/* Basic enumeration set for querying unlimited capabilities */
269#define DTV_FE_CAPABILITY_COUNT 15
270#define DTV_FE_CAPABILITY 16
271#define DTV_DELIVERY_SYSTEM 17
272
273/* ISDB-T and ISDB-Tsb */
274#define DTV_ISDBT_PARTIAL_RECEPTION 18
275#define DTV_ISDBT_SOUND_BROADCASTING 19
276
277#define DTV_ISDBT_SB_SUBCHANNEL_ID 20
278#define DTV_ISDBT_SB_SEGMENT_IDX 21
279#define DTV_ISDBT_SB_SEGMENT_COUNT 22
280
281#define DTV_ISDBT_LAYERA_FEC 23
282#define DTV_ISDBT_LAYERA_MODULATION 24
283#define DTV_ISDBT_LAYERA_SEGMENT_COUNT 25
284#define DTV_ISDBT_LAYERA_TIME_INTERLEAVING 26
285
286#define DTV_ISDBT_LAYERB_FEC 27
287#define DTV_ISDBT_LAYERB_MODULATION 28
288#define DTV_ISDBT_LAYERB_SEGMENT_COUNT 29
289#define DTV_ISDBT_LAYERB_TIME_INTERLEAVING 30
290
291#define DTV_ISDBT_LAYERC_FEC 31
292#define DTV_ISDBT_LAYERC_MODULATION 32
293#define DTV_ISDBT_LAYERC_SEGMENT_COUNT 33
294#define DTV_ISDBT_LAYERC_TIME_INTERLEAVING 34
295
296#define DTV_API_VERSION 35
297
298#define DTV_CODE_RATE_HP 36
299#define DTV_CODE_RATE_LP 37
300#define DTV_GUARD_INTERVAL 38
301#define DTV_TRANSMISSION_MODE 39
302#define DTV_HIERARCHY 40
303
304#define DTV_ISDBT_LAYER_ENABLED 41
305
306#define DTV_ISDBS_TS_ID 42
307
308#define DTV_MAX_COMMAND DTV_ISDBS_TS_ID
309
310typedef enum fe_pilot {
311 PILOT_ON,
312 PILOT_OFF,
313 PILOT_AUTO,
314} fe_pilot_t;
315
316typedef enum fe_rolloff {
317 ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */
318 ROLLOFF_20,
319 ROLLOFF_25,
320 ROLLOFF_AUTO,
321} fe_rolloff_t;
322
323typedef enum fe_delivery_system {
324 SYS_UNDEFINED,
325 SYS_DVBC_ANNEX_AC,
326 SYS_DVBC_ANNEX_B,
327 SYS_DVBT,
328 SYS_DSS,
329 SYS_DVBS,
330 SYS_DVBS2,
331 SYS_DVBH,
332 SYS_ISDBT,
333 SYS_ISDBS,
334 SYS_ISDBC,
335 SYS_ATSC,
336 SYS_ATSCMH,
337 SYS_DMBTH,
338 SYS_CMMB,
339 SYS_DAB,
340} fe_delivery_system_t;
341
342struct dtv_cmds_h {
343 char *name; /* A display name for debugging purposes */
344
345 __u32 cmd; /* A unique ID */
346
347 /* Flags */
348 __u32 set:1; /* Either a set or get property */
349 __u32 buffer:1; /* Does this property use the buffer? */
350 __u32 reserved:30; /* Align */
351};
352
353struct dtv_property {
354 __u32 cmd;
355 __u32 reserved[3];
356 union {
357 __u32 data;
358 struct {
359 __u8 data[32];
360 __u32 len;
361 __u32 reserved1[3];
362 void *reserved2;
363 } buffer;
364 } u;
365 int result;
366} __attribute__ ((packed));
367
368/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */
369#define DTV_IOCTL_MAX_MSGS 64
370
371struct dtv_properties {
372 __u32 num;
373 struct dtv_property *props;
374};
375
376#define <link linkend="FE_GET_PROPERTY">FE_SET_PROPERTY</link> _IOW('o', 82, struct dtv_properties)
377#define <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link> _IOR('o', 83, struct dtv_properties)
378
379
380/**
381 * When set, this flag will disable any zigzagging or other "normal" tuning
382 * behaviour. Additionally, there will be no automatic monitoring of the lock
383 * status, and hence no frontend events will be generated. If a frontend device
384 * is closed, this flag will be automatically turned off when the device is
385 * reopened read-write.
386 */
387#define FE_TUNE_MODE_ONESHOT 0x01
388
389
390#define <link linkend="FE_GET_INFO">FE_GET_INFO</link> _IOR('o', 61, struct dvb_frontend_info)
391
392#define <link linkend="FE_DISEQC_RESET_OVERLOAD">FE_DISEQC_RESET_OVERLOAD</link> _IO('o', 62)
393#define <link linkend="FE_DISEQC_SEND_MASTER_CMD">FE_DISEQC_SEND_MASTER_CMD</link> _IOW('o', 63, struct dvb_diseqc_master_cmd)
394#define <link linkend="FE_DISEQC_RECV_SLAVE_REPLY">FE_DISEQC_RECV_SLAVE_REPLY</link> _IOR('o', 64, struct dvb_diseqc_slave_reply)
395#define <link linkend="FE_DISEQC_SEND_BURST">FE_DISEQC_SEND_BURST</link> _IO('o', 65) /* fe_sec_mini_cmd_t */
396
397#define <link linkend="FE_SET_TONE">FE_SET_TONE</link> _IO('o', 66) /* fe_sec_tone_mode_t */
398#define <link linkend="FE_SET_VOLTAGE">FE_SET_VOLTAGE</link> _IO('o', 67) /* fe_sec_voltage_t */
399#define <link linkend="FE_ENABLE_HIGH_LNB_VOLTAGE">FE_ENABLE_HIGH_LNB_VOLTAGE</link> _IO('o', 68) /* int */
400
401#define <link linkend="FE_READ_STATUS">FE_READ_STATUS</link> _IOR('o', 69, fe_status_t)
402#define <link linkend="FE_READ_BER">FE_READ_BER</link> _IOR('o', 70, __u32)
403#define <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link> _IOR('o', 71, __u16)
404#define <link linkend="FE_READ_SNR">FE_READ_SNR</link> _IOR('o', 72, __u16)
405#define <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link> _IOR('o', 73, __u32)
406
407#define <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> _IOW('o', 76, struct dvb_frontend_parameters)
408#define <link linkend="FE_GET_FRONTEND">FE_GET_FRONTEND</link> _IOR('o', 77, struct dvb_frontend_parameters)
409#define <link linkend="FE_SET_FRONTEND_TUNE_MODE">FE_SET_FRONTEND_TUNE_MODE</link> _IO('o', 81) /* unsigned int */
410#define <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> _IOR('o', 78, struct dvb_frontend_event)
411
412#define <link linkend="FE_DISHNETWORK_SEND_LEGACY_CMD">FE_DISHNETWORK_SEND_LEGACY_CMD</link> _IO('o', 80) /* unsigned int */
413
414#endif /*_DVBFRONTEND_H_*/
415</programlisting>
diff --git a/Documentation/DocBook/dvb/frontend.xml b/Documentation/DocBook/dvb/frontend.xml
index 9d89a7b94fd5..300ba1f04177 100644
--- a/Documentation/DocBook/dvb/frontend.xml
+++ b/Documentation/DocBook/dvb/frontend.xml
@@ -73,7 +73,8 @@ a specific frontend type.</para>
73<section id="frontend_info"> 73<section id="frontend_info">
74<title>frontend information</title> 74<title>frontend information</title>
75 75
76<para>Information about the frontend ca be queried with FE_GET_INFO.</para> 76<para>Information about the frontend ca be queried with
77 <link linkend="FE_GET_INFO">FE_GET_INFO</link>.</para>
77 78
78<programlisting> 79<programlisting>
79 struct dvb_frontend_info { 80 struct dvb_frontend_info {
@@ -338,7 +339,7 @@ modulation mode which can be one of the following:
338<entry align="char"> 339<entry align="char">
339<para>This system call opens a named frontend device (/dev/dvb/adapter0/frontend0) 340<para>This system call opens a named frontend device (/dev/dvb/adapter0/frontend0)
340 for subsequent use. Usually the first thing to do after a successful open is to 341 for subsequent use. Usually the first thing to do after a successful open is to
341 find out the frontend type with FE_GET_INFO.</para> 342 find out the frontend type with <link linkend="FE_GET_INFO">FE_GET_INFO</link>.</para>
342<para>The device can be opened in read-only mode, which only allows monitoring of 343<para>The device can be opened in read-only mode, which only allows monitoring of
343 device status and statistics, or read/write mode, which allows any kind of use 344 device status and statistics, or read/write mode, which allows any kind of use
344 (e.g. performing tuning operations.) 345 (e.g. performing tuning operations.)
@@ -478,7 +479,7 @@ modulation mode which can be one of the following:
478 </row></tbody></tgroup></informaltable> 479 </row></tbody></tgroup></informaltable>
479</section> 480</section>
480 481
481<section id="frontend_read_status"> 482<section id="FE_READ_STATUS">
482<title>FE_READ_STATUS</title> 483<title>FE_READ_STATUS</title>
483<para>DESCRIPTION 484<para>DESCRIPTION
484</para> 485</para>
@@ -492,7 +493,7 @@ modulation mode which can be one of the following:
492</para> 493</para>
493<informaltable><tgroup cols="1"><tbody><row><entry 494<informaltable><tgroup cols="1"><tbody><row><entry
494 align="char"> 495 align="char">
495<para>int ioctl(int fd, int request = FE_READ_STATUS, 496<para>int ioctl(int fd, int request = <link linkend="FE_READ_STATUS">FE_READ_STATUS</link>,
496 fe_status_t &#x22C6;status);</para> 497 fe_status_t &#x22C6;status);</para>
497</entry> 498</entry>
498 </row></tbody></tgroup></informaltable> 499 </row></tbody></tgroup></informaltable>
@@ -511,7 +512,7 @@ modulation mode which can be one of the following:
511<para>int request</para> 512<para>int request</para>
512</entry><entry 513</entry><entry
513 align="char"> 514 align="char">
514<para>Equals FE_READ_STATUS for this command.</para> 515<para>Equals <link linkend="FE_READ_STATUS">FE_READ_STATUS</link> for this command.</para>
515</entry> 516</entry>
516 </row><row><entry 517 </row><row><entry
517 align="char"> 518 align="char">
@@ -542,7 +543,7 @@ modulation mode which can be one of the following:
542 </row></tbody></tgroup></informaltable> 543 </row></tbody></tgroup></informaltable>
543</section> 544</section>
544 545
545<section id="frontend_read_ber"> 546<section id="FE_READ_BER">
546<title>FE_READ_BER</title> 547<title>FE_READ_BER</title>
547<para>DESCRIPTION 548<para>DESCRIPTION
548</para> 549</para>
@@ -557,7 +558,7 @@ modulation mode which can be one of the following:
557</para> 558</para>
558<informaltable><tgroup cols="1"><tbody><row><entry 559<informaltable><tgroup cols="1"><tbody><row><entry
559 align="char"> 560 align="char">
560<para>int ioctl(int fd, int request = FE_READ_BER, 561<para>int ioctl(int fd, int request = <link linkend="FE_READ_BER">FE_READ_BER</link>,
561 uint32_t &#x22C6;ber);</para> 562 uint32_t &#x22C6;ber);</para>
562</entry> 563</entry>
563 </row></tbody></tgroup></informaltable> 564 </row></tbody></tgroup></informaltable>
@@ -575,7 +576,7 @@ modulation mode which can be one of the following:
575<para>int request</para> 576<para>int request</para>
576</entry><entry 577</entry><entry
577 align="char"> 578 align="char">
578<para>Equals FE_READ_BER for this command.</para> 579<para>Equals <link linkend="FE_READ_BER">FE_READ_BER</link> for this command.</para>
579</entry> 580</entry>
580 </row><row><entry 581 </row><row><entry
581 align="char"> 582 align="char">
@@ -619,7 +620,7 @@ modulation mode which can be one of the following:
619 </row></tbody></tgroup></informaltable> 620 </row></tbody></tgroup></informaltable>
620</section> 621</section>
621 622
622<section id="frontend_read_snr"> 623<section id="FE_READ_SNR">
623<title>FE_READ_SNR</title> 624<title>FE_READ_SNR</title>
624 625
625<para>DESCRIPTION 626<para>DESCRIPTION
@@ -634,7 +635,7 @@ modulation mode which can be one of the following:
634</para> 635</para>
635<informaltable><tgroup cols="1"><tbody><row><entry 636<informaltable><tgroup cols="1"><tbody><row><entry
636 align="char"> 637 align="char">
637<para>int ioctl(int fd, int request = FE_READ_SNR, int16_t 638<para>int ioctl(int fd, int request = <link linkend="FE_READ_SNR">FE_READ_SNR</link>, int16_t
638 &#x22C6;snr);</para> 639 &#x22C6;snr);</para>
639</entry> 640</entry>
640 </row></tbody></tgroup></informaltable> 641 </row></tbody></tgroup></informaltable>
@@ -652,7 +653,7 @@ modulation mode which can be one of the following:
652<para>int request</para> 653<para>int request</para>
653</entry><entry 654</entry><entry
654 align="char"> 655 align="char">
655<para>Equals FE_READ_SNR for this command.</para> 656<para>Equals <link linkend="FE_READ_SNR">FE_READ_SNR</link> for this command.</para>
656</entry> 657</entry>
657 </row><row><entry 658 </row><row><entry
658 align="char"> 659 align="char">
@@ -697,7 +698,7 @@ modulation mode which can be one of the following:
697 </row></tbody></tgroup></informaltable> 698 </row></tbody></tgroup></informaltable>
698</section> 699</section>
699 700
700<section id="frontend_read_signal_strength"> 701<section id="FE_READ_SIGNAL_STRENGTH">
701<title>FE_READ_SIGNAL_STRENGTH</title> 702<title>FE_READ_SIGNAL_STRENGTH</title>
702<para>DESCRIPTION 703<para>DESCRIPTION
703</para> 704</para>
@@ -712,7 +713,7 @@ modulation mode which can be one of the following:
712<informaltable><tgroup cols="1"><tbody><row><entry 713<informaltable><tgroup cols="1"><tbody><row><entry
713 align="char"> 714 align="char">
714<para>int ioctl( int fd, int request = 715<para>int ioctl( int fd, int request =
715 FE_READ_SIGNAL_STRENGTH, int16_t &#x22C6;strength);</para> 716 <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link>, int16_t &#x22C6;strength);</para>
716</entry> 717</entry>
717 </row></tbody></tgroup></informaltable> 718 </row></tbody></tgroup></informaltable>
718 719
@@ -730,7 +731,7 @@ modulation mode which can be one of the following:
730<para>int request</para> 731<para>int request</para>
731</entry><entry 732</entry><entry
732 align="char"> 733 align="char">
733<para>Equals FE_READ_SIGNAL_STRENGTH for this 734<para>Equals <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link> for this
734 command.</para> 735 command.</para>
735</entry> 736</entry>
736 </row><row><entry 737 </row><row><entry
@@ -775,7 +776,7 @@ modulation mode which can be one of the following:
775 </row></tbody></tgroup></informaltable> 776 </row></tbody></tgroup></informaltable>
776</section> 777</section>
777 778
778<section id="frontend_read_ub"> 779<section id="FE_READ_UNCORRECTED_BLOCKS">
779<title>FE_READ_UNCORRECTED_BLOCKS</title> 780<title>FE_READ_UNCORRECTED_BLOCKS</title>
780<para>DESCRIPTION 781<para>DESCRIPTION
781</para> 782</para>
@@ -797,7 +798,7 @@ modulation mode which can be one of the following:
797<informaltable><tgroup cols="1"><tbody><row><entry 798<informaltable><tgroup cols="1"><tbody><row><entry
798 align="char"> 799 align="char">
799<para>int ioctl( int fd, int request = 800<para>int ioctl( int fd, int request =
800 FE_READ_UNCORRECTED_BLOCKS, uint32_t &#x22C6;ublocks);</para> 801 <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link>, uint32_t &#x22C6;ublocks);</para>
801</entry> 802</entry>
802 </row></tbody></tgroup></informaltable> 803 </row></tbody></tgroup></informaltable>
803<para>PARAMETERS 804<para>PARAMETERS
@@ -814,7 +815,7 @@ modulation mode which can be one of the following:
814<para>int request</para> 815<para>int request</para>
815</entry><entry 816</entry><entry
816 align="char"> 817 align="char">
817<para>Equals FE_READ_UNCORRECTED_BLOCKS for this 818<para>Equals <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link> for this
818 command.</para> 819 command.</para>
819</entry> 820</entry>
820 </row><row><entry 821 </row><row><entry
@@ -852,7 +853,7 @@ modulation mode which can be one of the following:
852 </row></tbody></tgroup></informaltable> 853 </row></tbody></tgroup></informaltable>
853</section> 854</section>
854 855
855<section id="frontend_set_fe"> 856<section id="FE_SET_FRONTEND">
856<title>FE_SET_FRONTEND</title> 857<title>FE_SET_FRONTEND</title>
857<para>DESCRIPTION 858<para>DESCRIPTION
858</para> 859</para>
@@ -861,8 +862,8 @@ modulation mode which can be one of the following:
861<para>This ioctl call starts a tuning operation using specified parameters. The result 862<para>This ioctl call starts a tuning operation using specified parameters. The result
862 of this call will be successful if the parameters were valid and the tuning could 863 of this call will be successful if the parameters were valid and the tuning could
863 be initiated. The result of the tuning operation in itself, however, will arrive 864 be initiated. The result of the tuning operation in itself, however, will arrive
864 asynchronously as an event (see documentation for FE_GET_EVENT and 865 asynchronously as an event (see documentation for <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> and
865 FrontendEvent.) If a new FE_SET_FRONTEND operation is initiated before 866 FrontendEvent.) If a new <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> operation is initiated before
866 the previous one was completed, the previous operation will be aborted in favor 867 the previous one was completed, the previous operation will be aborted in favor
867 of the new one. This command requires read/write access to the device.</para> 868 of the new one. This command requires read/write access to the device.</para>
868</entry> 869</entry>
@@ -872,7 +873,7 @@ modulation mode which can be one of the following:
872</para> 873</para>
873<informaltable><tgroup cols="1"><tbody><row><entry 874<informaltable><tgroup cols="1"><tbody><row><entry
874 align="char"> 875 align="char">
875<para>int ioctl(int fd, int request = FE_SET_FRONTEND, 876<para>int ioctl(int fd, int request = <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link>,
876 struct dvb_frontend_parameters &#x22C6;p);</para> 877 struct dvb_frontend_parameters &#x22C6;p);</para>
877</entry> 878</entry>
878 </row></tbody></tgroup></informaltable> 879 </row></tbody></tgroup></informaltable>
@@ -890,7 +891,7 @@ modulation mode which can be one of the following:
890<para>int request</para> 891<para>int request</para>
891</entry><entry 892</entry><entry
892 align="char"> 893 align="char">
893<para>Equals FE_SET_FRONTEND for this command.</para> 894<para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
894</entry> 895</entry>
895 </row><row><entry 896 </row><row><entry
896 align="char"> 897 align="char">
@@ -928,7 +929,7 @@ modulation mode which can be one of the following:
928</row></tbody></tgroup></informaltable> 929</row></tbody></tgroup></informaltable>
929</section> 930</section>
930 931
931<section id="frontend_get_fe"> 932<section id="FE_GET_FRONTEND">
932<title>FE_GET_FRONTEND</title> 933<title>FE_GET_FRONTEND</title>
933<para>DESCRIPTION 934<para>DESCRIPTION
934</para> 935</para>
@@ -943,7 +944,7 @@ modulation mode which can be one of the following:
943</para> 944</para>
944<informaltable><tgroup cols="1"><tbody><row><entry 945<informaltable><tgroup cols="1"><tbody><row><entry
945 align="char"> 946 align="char">
946<para>int ioctl(int fd, int request = FE_GET_FRONTEND, 947<para>int ioctl(int fd, int request = <link linkend="FE_GET_FRONTEND">FE_GET_FRONTEND</link>,
947 struct dvb_frontend_parameters &#x22C6;p);</para> 948 struct dvb_frontend_parameters &#x22C6;p);</para>
948</entry> 949</entry>
949 </row></tbody></tgroup></informaltable> 950 </row></tbody></tgroup></informaltable>
@@ -962,7 +963,7 @@ modulation mode which can be one of the following:
962<para>int request</para> 963<para>int request</para>
963</entry><entry 964</entry><entry
964 align="char"> 965 align="char">
965<para>Equals FE_SET_FRONTEND for this command.</para> 966<para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
966</entry> 967</entry>
967 </row><row><entry 968 </row><row><entry
968 align="char"> 969 align="char">
@@ -1003,7 +1004,7 @@ modulation mode which can be one of the following:
1003 1004
1004</section> 1005</section>
1005 1006
1006<section id="frontend_get_event"> 1007<section id="FE_GET_EVENT">
1007<title>FE_GET_EVENT</title> 1008<title>FE_GET_EVENT</title>
1008<para>DESCRIPTION 1009<para>DESCRIPTION
1009</para> 1010</para>
@@ -1024,7 +1025,8 @@ modulation mode which can be one of the following:
1024 rather small (room for 8 events), the queue must be serviced regularly to avoid 1025 rather small (room for 8 events), the queue must be serviced regularly to avoid
1025 overflow. If an overflow happens, the oldest event is discarded from the queue, 1026 overflow. If an overflow happens, the oldest event is discarded from the queue,
1026 and an error (EOVERFLOW) occurs the next time the queue is read. After 1027 and an error (EOVERFLOW) occurs the next time the queue is read. After
1027 reporting the error condition in this fashion, subsequent FE_GET_EVENT 1028 reporting the error condition in this fashion, subsequent
1029 <link linkend="FE_GET_EVENT">FE_GET_EVENT</link>
1028 calls will return events from the queue as usual.</para> 1030 calls will return events from the queue as usual.</para>
1029</entry> 1031</entry>
1030 </row><row><entry 1032 </row><row><entry
@@ -1057,7 +1059,7 @@ modulation mode which can be one of the following:
1057<para>int request</para> 1059<para>int request</para>
1058</entry><entry 1060</entry><entry
1059 align="char"> 1061 align="char">
1060<para>Equals FE_GET_EVENT for this command.</para> 1062<para>Equals <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> for this command.</para>
1061</entry> 1063</entry>
1062 </row><row><entry 1064 </row><row><entry
1063 align="char"> 1065 align="char">
@@ -1115,7 +1117,7 @@ modulation mode which can be one of the following:
1115</row></tbody></tgroup></informaltable> 1117</row></tbody></tgroup></informaltable>
1116</section> 1118</section>
1117 1119
1118<section id="frontend_get_info"> 1120<section id="FE_GET_INFO">
1119<title>FE_GET_INFO</title> 1121<title>FE_GET_INFO</title>
1120<para>DESCRIPTION 1122<para>DESCRIPTION
1121</para> 1123</para>
@@ -1130,7 +1132,7 @@ modulation mode which can be one of the following:
1130 1132
1131<informaltable><tgroup cols="1"><tbody><row><entry 1133<informaltable><tgroup cols="1"><tbody><row><entry
1132 align="char"> 1134 align="char">
1133<para> int ioctl(int fd, int request = FE_GET_INFO, struct 1135<para> int ioctl(int fd, int request = <link linkend="FE_GET_INFO">FE_GET_INFO</link>, struct
1134 dvb_frontend_info &#x22C6;info);</para> 1136 dvb_frontend_info &#x22C6;info);</para>
1135</entry> 1137</entry>
1136 </row></tbody></tgroup></informaltable> 1138 </row></tbody></tgroup></informaltable>
@@ -1149,7 +1151,7 @@ modulation mode which can be one of the following:
1149<para>int request</para> 1151<para>int request</para>
1150</entry><entry 1152</entry><entry
1151 align="char"> 1153 align="char">
1152<para>Equals FE_GET_INFO for this command.</para> 1154<para>Equals <link linkend="FE_GET_INFO">FE_GET_INFO</link> for this command.</para>
1153</entry> 1155</entry>
1154 </row><row><entry 1156 </row><row><entry
1155 align="char"> 1157 align="char">
@@ -1181,7 +1183,7 @@ modulation mode which can be one of the following:
1181</row></tbody></tgroup></informaltable> 1183</row></tbody></tgroup></informaltable>
1182</section> 1184</section>
1183 1185
1184<section id="frontend_diseqc_reset_overload"> 1186<section id="FE_DISEQC_RESET_OVERLOAD">
1185<title>FE_DISEQC_RESET_OVERLOAD</title> 1187<title>FE_DISEQC_RESET_OVERLOAD</title>
1186<para>DESCRIPTION 1188<para>DESCRIPTION
1187</para> 1189</para>
@@ -1199,7 +1201,7 @@ modulation mode which can be one of the following:
1199<informaltable><tgroup cols="1"><tbody><row><entry 1201<informaltable><tgroup cols="1"><tbody><row><entry
1200 align="char"> 1202 align="char">
1201<para>int ioctl(int fd, int request = 1203<para>int ioctl(int fd, int request =
1202 FE_DISEQC_RESET_OVERLOAD);</para> 1204 <link linkend="FE_DISEQC_RESET_OVERLOAD">FE_DISEQC_RESET_OVERLOAD</link>);</para>
1203</entry> 1205</entry>
1204 </row></tbody></tgroup></informaltable> 1206 </row></tbody></tgroup></informaltable>
1205<para>PARAMETERS 1207<para>PARAMETERS
@@ -1216,7 +1218,7 @@ modulation mode which can be one of the following:
1216<para>int request</para> 1218<para>int request</para>
1217</entry><entry 1219</entry><entry
1218 align="char"> 1220 align="char">
1219<para>Equals FE_DISEQC_RESET_OVERLOAD for this 1221<para>Equals <link linkend="FE_DISEQC_RESET_OVERLOAD">FE_DISEQC_RESET_OVERLOAD</link> for this
1220 command.</para> 1222 command.</para>
1221</entry> 1223</entry>
1222 </row></tbody></tgroup></informaltable> 1224 </row></tbody></tgroup></informaltable>
@@ -1247,7 +1249,7 @@ modulation mode which can be one of the following:
1247</row></tbody></tgroup></informaltable> 1249</row></tbody></tgroup></informaltable>
1248</section> 1250</section>
1249 1251
1250<section id="frontend_diseqc_send_master_cmd"> 1252<section id="FE_DISEQC_SEND_MASTER_CMD">
1251<title>FE_DISEQC_SEND_MASTER_CMD</title> 1253<title>FE_DISEQC_SEND_MASTER_CMD</title>
1252<para>DESCRIPTION 1254<para>DESCRIPTION
1253</para> 1255</para>
@@ -1261,7 +1263,7 @@ modulation mode which can be one of the following:
1261<informaltable><tgroup cols="1"><tbody><row><entry 1263<informaltable><tgroup cols="1"><tbody><row><entry
1262 align="char"> 1264 align="char">
1263<para>int ioctl(int fd, int request = 1265<para>int ioctl(int fd, int request =
1264 FE_DISEQC_SEND_MASTER_CMD, struct 1266 <link linkend="FE_DISEQC_SEND_MASTER_CMD">FE_DISEQC_SEND_MASTER_CMD</link>, struct
1265 dvb_diseqc_master_cmd &#x22C6;cmd);</para> 1267 dvb_diseqc_master_cmd &#x22C6;cmd);</para>
1266</entry> 1268</entry>
1267 </row></tbody></tgroup></informaltable> 1269 </row></tbody></tgroup></informaltable>
@@ -1280,7 +1282,7 @@ modulation mode which can be one of the following:
1280<para>int request</para> 1282<para>int request</para>
1281</entry><entry 1283</entry><entry
1282 align="char"> 1284 align="char">
1283<para>Equals FE_DISEQC_SEND_MASTER_CMD for this 1285<para>Equals <link linkend="FE_DISEQC_SEND_MASTER_CMD">FE_DISEQC_SEND_MASTER_CMD</link> for this
1284 command.</para> 1286 command.</para>
1285</entry> 1287</entry>
1286 </row><row><entry 1288 </row><row><entry
@@ -1335,7 +1337,7 @@ modulation mode which can be one of the following:
1335</row></tbody></tgroup></informaltable> 1337</row></tbody></tgroup></informaltable>
1336</section> 1338</section>
1337 1339
1338<section id="frontend_diseqc_recv_slave_reply"> 1340<section id="FE_DISEQC_RECV_SLAVE_REPLY">
1339<title>FE_DISEQC_RECV_SLAVE_REPLY</title> 1341<title>FE_DISEQC_RECV_SLAVE_REPLY</title>
1340<para>DESCRIPTION 1342<para>DESCRIPTION
1341</para> 1343</para>
@@ -1350,7 +1352,7 @@ modulation mode which can be one of the following:
1350<informaltable><tgroup cols="1"><tbody><row><entry 1352<informaltable><tgroup cols="1"><tbody><row><entry
1351 align="char"> 1353 align="char">
1352<para>int ioctl(int fd, int request = 1354<para>int ioctl(int fd, int request =
1353 FE_DISEQC_RECV_SLAVE_REPLY, struct 1355 <link linkend="FE_DISEQC_RECV_SLAVE_REPLY">FE_DISEQC_RECV_SLAVE_REPLY</link>, struct
1354 dvb_diseqc_slave_reply &#x22C6;reply);</para> 1356 dvb_diseqc_slave_reply &#x22C6;reply);</para>
1355</entry> 1357</entry>
1356 </row></tbody></tgroup></informaltable> 1358 </row></tbody></tgroup></informaltable>
@@ -1369,7 +1371,7 @@ modulation mode which can be one of the following:
1369<para>int request</para> 1371<para>int request</para>
1370</entry><entry 1372</entry><entry
1371 align="char"> 1373 align="char">
1372<para>Equals FE_DISEQC_RECV_SLAVE_REPLY for this 1374<para>Equals <link linkend="FE_DISEQC_RECV_SLAVE_REPLY">FE_DISEQC_RECV_SLAVE_REPLY</link> for this
1373 command.</para> 1375 command.</para>
1374</entry> 1376</entry>
1375 </row><row><entry 1377 </row><row><entry
@@ -1423,7 +1425,7 @@ modulation mode which can be one of the following:
1423 </row></tbody></tgroup></informaltable> 1425 </row></tbody></tgroup></informaltable>
1424</section> 1426</section>
1425 1427
1426<section id="frontend_diseqc_send_burst"> 1428<section id="FE_DISEQC_SEND_BURST">
1427<title>FE_DISEQC_SEND_BURST</title> 1429<title>FE_DISEQC_SEND_BURST</title>
1428<para>DESCRIPTION 1430<para>DESCRIPTION
1429</para> 1431</para>
@@ -1438,7 +1440,7 @@ modulation mode which can be one of the following:
1438<informaltable><tgroup cols="1"><tbody><row><entry 1440<informaltable><tgroup cols="1"><tbody><row><entry
1439 align="char"> 1441 align="char">
1440<para>int ioctl(int fd, int request = 1442<para>int ioctl(int fd, int request =
1441 FE_DISEQC_SEND_BURST, fe_sec_mini_cmd_t burst);</para> 1443 <link linkend="FE_DISEQC_SEND_BURST">FE_DISEQC_SEND_BURST</link>, fe_sec_mini_cmd_t burst);</para>
1442</entry> 1444</entry>
1443 </row></tbody></tgroup></informaltable> 1445 </row></tbody></tgroup></informaltable>
1444 1446
@@ -1456,7 +1458,7 @@ modulation mode which can be one of the following:
1456<para>int request</para> 1458<para>int request</para>
1457</entry><entry 1459</entry><entry
1458 align="char"> 1460 align="char">
1459<para>Equals FE_DISEQC_SEND_BURST for this command.</para> 1461<para>Equals <link linkend="FE_DISEQC_SEND_BURST">FE_DISEQC_SEND_BURST</link> for this command.</para>
1460</entry> 1462</entry>
1461 </row><row><entry 1463 </row><row><entry
1462 align="char"> 1464 align="char">
@@ -1509,7 +1511,7 @@ modulation mode which can be one of the following:
1509</row></tbody></tgroup></informaltable> 1511</row></tbody></tgroup></informaltable>
1510</section> 1512</section>
1511 1513
1512<section id="frontend_set_tone"> 1514<section id="FE_SET_TONE">
1513<title>FE_SET_TONE</title> 1515<title>FE_SET_TONE</title>
1514<para>DESCRIPTION 1516<para>DESCRIPTION
1515</para> 1517</para>
@@ -1523,7 +1525,7 @@ modulation mode which can be one of the following:
1523</para> 1525</para>
1524<informaltable><tgroup cols="1"><tbody><row><entry 1526<informaltable><tgroup cols="1"><tbody><row><entry
1525 align="char"> 1527 align="char">
1526<para>int ioctl(int fd, int request = FE_SET_TONE, 1528<para>int ioctl(int fd, int request = <link linkend="FE_SET_TONE">FE_SET_TONE</link>,
1527 fe_sec_tone_mode_t tone);</para> 1529 fe_sec_tone_mode_t tone);</para>
1528</entry> 1530</entry>
1529 </row></tbody></tgroup></informaltable> 1531 </row></tbody></tgroup></informaltable>
@@ -1541,7 +1543,7 @@ modulation mode which can be one of the following:
1541<para>int request</para> 1543<para>int request</para>
1542</entry><entry 1544</entry><entry
1543 align="char"> 1545 align="char">
1544<para>Equals FE_SET_TONE for this command.</para> 1546<para>Equals <link linkend="FE_SET_TONE">FE_SET_TONE</link> for this command.</para>
1545</entry> 1547</entry>
1546 </row><row><entry 1548 </row><row><entry
1547 align="char"> 1549 align="char">
@@ -1592,7 +1594,7 @@ modulation mode which can be one of the following:
1592</row></tbody></tgroup></informaltable> 1594</row></tbody></tgroup></informaltable>
1593</section> 1595</section>
1594 1596
1595<section id="fe_set_voltage"> 1597<section id="FE_SET_VOLTAGE">
1596<title>FE_SET_VOLTAGE</title> 1598<title>FE_SET_VOLTAGE</title>
1597<para>DESCRIPTION 1599<para>DESCRIPTION
1598</para> 1600</para>
@@ -1606,7 +1608,7 @@ modulation mode which can be one of the following:
1606</para> 1608</para>
1607<informaltable><tgroup cols="1"><tbody><row><entry 1609<informaltable><tgroup cols="1"><tbody><row><entry
1608 align="char"> 1610 align="char">
1609<para>int ioctl(int fd, int request = FE_SET_VOLTAGE, 1611<para>int ioctl(int fd, int request = <link linkend="FE_SET_VOLTAGE">FE_SET_VOLTAGE</link>,
1610 fe_sec_voltage_t voltage);</para> 1612 fe_sec_voltage_t voltage);</para>
1611</entry> 1613</entry>
1612 </row></tbody></tgroup></informaltable> 1614 </row></tbody></tgroup></informaltable>
@@ -1625,7 +1627,7 @@ modulation mode which can be one of the following:
1625<para>int request</para> 1627<para>int request</para>
1626</entry><entry 1628</entry><entry
1627 align="char"> 1629 align="char">
1628<para>Equals FE_SET_VOLTAGE for this command.</para> 1630<para>Equals <link linkend="FE_SET_VOLTAGE">FE_SET_VOLTAGE</link> for this command.</para>
1629</entry> 1631</entry>
1630 </row><row><entry 1632 </row><row><entry
1631 align="char"> 1633 align="char">
@@ -1677,7 +1679,7 @@ modulation mode which can be one of the following:
1677 </row></tbody></tgroup></informaltable> 1679 </row></tbody></tgroup></informaltable>
1678</section> 1680</section>
1679 1681
1680<section id="frontend_enable_high_lnb_volt"> 1682<section id="FE_ENABLE_HIGH_LNB_VOLTAGE">
1681<title>FE_ENABLE_HIGH_LNB_VOLTAGE</title> 1683<title>FE_ENABLE_HIGH_LNB_VOLTAGE</title>
1682<para>DESCRIPTION 1684<para>DESCRIPTION
1683</para> 1685</para>
@@ -1694,7 +1696,7 @@ modulation mode which can be one of the following:
1694<informaltable><tgroup cols="1"><tbody><row><entry 1696<informaltable><tgroup cols="1"><tbody><row><entry
1695 align="char"> 1697 align="char">
1696<para>int ioctl(int fd, int request = 1698<para>int ioctl(int fd, int request =
1697 FE_ENABLE_HIGH_LNB_VOLTAGE, int high);</para> 1699 <link linkend="FE_ENABLE_HIGH_LNB_VOLTAGE">FE_ENABLE_HIGH_LNB_VOLTAGE</link>, int high);</para>
1698</entry> 1700</entry>
1699 </row></tbody></tgroup></informaltable> 1701 </row></tbody></tgroup></informaltable>
1700 1702
@@ -1712,7 +1714,7 @@ modulation mode which can be one of the following:
1712<para>int request</para> 1714<para>int request</para>
1713</entry><entry 1715</entry><entry
1714 align="char"> 1716 align="char">
1715<para>Equals FE_SET_VOLTAGE for this command.</para> 1717<para>Equals <link linkend="FE_SET_VOLTAGE">FE_SET_VOLTAGE</link> for this command.</para>
1716</entry> 1718</entry>
1717 </row><row><entry 1719 </row><row><entry
1718 align="char"> 1720 align="char">
@@ -1762,5 +1764,82 @@ modulation mode which can be one of the following:
1762</entry> 1764</entry>
1763 </row></tbody></tgroup></informaltable> 1765 </row></tbody></tgroup></informaltable>
1764</section> 1766</section>
1767
1768<section id="FE_SET_FRONTEND_TUNE_MODE">
1769<title>FE_SET_FRONTEND_TUNE_MODE</title>
1770<para>DESCRIPTION</para>
1771<informaltable><tgroup cols="1"><tbody><row>
1772<entry align="char">
1773<para>Allow setting tuner mode flags to the frontend.</para>
1774</entry>
1775</row></tbody></tgroup></informaltable>
1776
1777<para>SYNOPSIS</para>
1778<informaltable><tgroup cols="1"><tbody><row>
1779<entry align="char">
1780<para>int ioctl(int fd, int request =
1781<link linkend="FE_SET_FRONTEND_TUNE_MODE">FE_SET_FRONTEND_TUNE_MODE</link>, unsigned int flags);</para>
1782</entry>
1783</row></tbody></tgroup></informaltable>
1784
1785<para>PARAMETERS</para>
1786<informaltable><tgroup cols="2"><tbody><row>
1787<entry align="char">
1788 <para>unsigned int flags</para>
1789</entry>
1790<entry align="char">
1791<para>
1792FE_TUNE_MODE_ONESHOT When set, this flag will disable any zigzagging or other "normal" tuning behaviour. Additionally, there will be no automatic monitoring of the lock status, and hence no frontend events will be generated. If a frontend device is closed, this flag will be automatically turned off when the device is reopened read-write.
1793</para>
1794</entry>
1795 </row></tbody></tgroup></informaltable>
1796
1797<para>ERRORS</para>
1798<informaltable><tgroup cols="2"><tbody><row>
1799<entry align="char"><para>EINVAL</para></entry>
1800<entry align="char"><para>Invalid argument.</para></entry>
1801 </row></tbody></tgroup></informaltable>
1765</section> 1802</section>
1766&sub-isdbt; 1803
1804<section id="FE_DISHNETWORK_SEND_LEGACY_CMD">
1805 <title>FE_DISHNETWORK_SEND_LEGACY_CMD</title>
1806<para>DESCRIPTION</para>
1807<informaltable><tgroup cols="1"><tbody><row>
1808<entry align="char">
1809<para>WARNING: This is a very obscure legacy command, used only at stv0299 driver. Should not be used on newer drivers.</para>
1810<para>It provides a non-standard method for selecting Diseqc voltage on the frontend, for Dish Network legacy switches.</para>
1811<para>As support for this ioctl were added in 2004, this means that such dishes were already legacy in 2004.</para>
1812</entry>
1813</row></tbody></tgroup></informaltable>
1814
1815<para>SYNOPSIS</para>
1816<informaltable><tgroup cols="1"><tbody><row>
1817<entry align="char">
1818<para>int ioctl(int fd, int request =
1819 <link linkend="FE_DISHNETWORK_SEND_LEGACY_CMD">FE_DISHNETWORK_SEND_LEGACY_CMD</link>, unsigned long cmd);</para>
1820</entry>
1821</row></tbody></tgroup></informaltable>
1822
1823<para>PARAMETERS</para>
1824<informaltable><tgroup cols="2"><tbody><row>
1825<entry align="char">
1826 <para>unsigned long cmd</para>
1827</entry>
1828<entry align="char">
1829<para>
1830sends the specified raw cmd to the dish via DISEqC.
1831</para>
1832</entry>
1833 </row></tbody></tgroup></informaltable>
1834
1835<para>ERRORS</para>
1836<informaltable><tgroup cols="1"><tbody><row>
1837<entry align="char">
1838 <para>There are no errors in use for this call</para>
1839</entry>
1840</row></tbody></tgroup></informaltable>
1841</section>
1842
1843</section>
1844
1845&sub-dvbproperty;
diff --git a/Documentation/DocBook/media-entities.tmpl b/Documentation/DocBook/media-entities.tmpl
index 0eb43c1970bb..bb5ab741220e 100644
--- a/Documentation/DocBook/media-entities.tmpl
+++ b/Documentation/DocBook/media-entities.tmpl
@@ -280,7 +280,7 @@
280<!ENTITY sub-v4l2 SYSTEM "v4l/v4l2.xml"> 280<!ENTITY sub-v4l2 SYSTEM "v4l/v4l2.xml">
281<!ENTITY sub-intro SYSTEM "dvb/intro.xml"> 281<!ENTITY sub-intro SYSTEM "dvb/intro.xml">
282<!ENTITY sub-frontend SYSTEM "dvb/frontend.xml"> 282<!ENTITY sub-frontend SYSTEM "dvb/frontend.xml">
283<!ENTITY sub-isdbt SYSTEM "dvb/isdbt.xml"> 283<!ENTITY sub-dvbproperty SYSTEM "dvb/dvbproperty.xml">
284<!ENTITY sub-demux SYSTEM "dvb/demux.xml"> 284<!ENTITY sub-demux SYSTEM "dvb/demux.xml">
285<!ENTITY sub-video SYSTEM "dvb/video.xml"> 285<!ENTITY sub-video SYSTEM "dvb/video.xml">
286<!ENTITY sub-audio SYSTEM "dvb/audio.xml"> 286<!ENTITY sub-audio SYSTEM "dvb/audio.xml">
@@ -288,6 +288,7 @@
288<!ENTITY sub-net SYSTEM "dvb/net.xml"> 288<!ENTITY sub-net SYSTEM "dvb/net.xml">
289<!ENTITY sub-kdapi SYSTEM "dvb/kdapi.xml"> 289<!ENTITY sub-kdapi SYSTEM "dvb/kdapi.xml">
290<!ENTITY sub-examples SYSTEM "dvb/examples.xml"> 290<!ENTITY sub-examples SYSTEM "dvb/examples.xml">
291<!ENTITY sub-frontend-h SYSTEM "dvb/frontend.h.xml">
291<!ENTITY sub-dvbapi SYSTEM "dvb/dvbapi.xml"> 292<!ENTITY sub-dvbapi SYSTEM "dvb/dvbapi.xml">
292<!ENTITY sub-media SYSTEM "media.xml"> 293<!ENTITY sub-media SYSTEM "media.xml">
293<!ENTITY sub-media-entities SYSTEM "media-entities.tmpl"> 294<!ENTITY sub-media-entities SYSTEM "media-entities.tmpl">
diff --git a/Documentation/DocBook/v4l/controls.xml b/Documentation/DocBook/v4l/controls.xml
index f492accb691d..f46450610412 100644
--- a/Documentation/DocBook/v4l/controls.xml
+++ b/Documentation/DocBook/v4l/controls.xml
@@ -281,10 +281,28 @@ minimum value disables backlight compensation.</entry>
281<constant>V4L2_COLORFX_SEPIA</constant> (2).</entry> 281<constant>V4L2_COLORFX_SEPIA</constant> (2).</entry>
282 </row> 282 </row>
283 <row> 283 <row>
284 <entry><constant>V4L2_CID_ROTATE</constant></entry>
285 <entry>integer</entry>
286 <entry>Rotates the image by specified angle. Common angles are 90,
287 270 and 180. Rotating the image to 90 and 270 will reverse the height
288 and width of the display window. It is necessary to set the new height and
289 width of the picture using the &VIDIOC-S-FMT; ioctl according to
290 the rotation angle selected.</entry>
291 </row>
292 <row>
293 <entry><constant>V4L2_CID_BG_COLOR</constant></entry>
294 <entry>integer</entry>
295 <entry>Sets the background color on the current output device.
296 Background color needs to be specified in the RGB24 format. The
297 supplied 32 bit value is interpreted as bits 0-7 Red color information,
298 bits 8-15 Green color information, bits 16-23 Blue color
299 information and bits 24-31 must be zero.</entry>
300 </row>
301 <row>
284 <entry><constant>V4L2_CID_LASTP1</constant></entry> 302 <entry><constant>V4L2_CID_LASTP1</constant></entry>
285 <entry></entry> 303 <entry></entry>
286 <entry>End of the predefined control IDs (currently 304 <entry>End of the predefined control IDs (currently
287<constant>V4L2_CID_COLORFX</constant> + 1).</entry> 305<constant>V4L2_CID_BG_COLOR</constant> + 1).</entry>
288 </row> 306 </row>
289 <row> 307 <row>
290 <entry><constant>V4L2_CID_PRIVATE_BASE</constant></entry> 308 <entry><constant>V4L2_CID_PRIVATE_BASE</constant></entry>
diff --git a/Documentation/DocBook/v4l/pixfmt.xml b/Documentation/DocBook/v4l/pixfmt.xml
index 7d396a3785f5..885968d6a2fc 100644
--- a/Documentation/DocBook/v4l/pixfmt.xml
+++ b/Documentation/DocBook/v4l/pixfmt.xml
@@ -770,6 +770,11 @@ kernel sources in the file <filename>Documentation/video4linux/cx2341x/README.hm
770 <entry>'S920'</entry> 770 <entry>'S920'</entry>
771 <entry>YUV 4:2:0 format of the gspca sn9c20x driver.</entry> 771 <entry>YUV 4:2:0 format of the gspca sn9c20x driver.</entry>
772 </row> 772 </row>
773 <row id="V4L2-PIX-FMT-STV0680">
774 <entry><constant>V4L2_PIX_FMT_STV0680</constant></entry>
775 <entry>'S680'</entry>
776 <entry>Bayer format of the gspca stv0680 driver.</entry>
777 </row>
773 <row id="V4L2-PIX-FMT-WNVA"> 778 <row id="V4L2-PIX-FMT-WNVA">
774 <entry><constant>V4L2_PIX_FMT_WNVA</constant></entry> 779 <entry><constant>V4L2_PIX_FMT_WNVA</constant></entry>
775 <entry>'WNVA'</entry> 780 <entry>'WNVA'</entry>
diff --git a/Documentation/DocBook/v4l/videodev2.h.xml b/Documentation/DocBook/v4l/videodev2.h.xml
index 26303e58345f..3e282ed9f593 100644
--- a/Documentation/DocBook/v4l/videodev2.h.xml
+++ b/Documentation/DocBook/v4l/videodev2.h.xml
@@ -363,6 +363,7 @@ struct <link linkend="v4l2-pix-format">v4l2_pix_format</link> {
363#define <link linkend="V4L2-PIX-FMT-OV511">V4L2_PIX_FMT_OV511</link> v4l2_fourcc('O', '5', '1', '1') /* ov511 JPEG */ 363#define <link linkend="V4L2-PIX-FMT-OV511">V4L2_PIX_FMT_OV511</link> v4l2_fourcc('O', '5', '1', '1') /* ov511 JPEG */
364#define <link linkend="V4L2-PIX-FMT-OV518">V4L2_PIX_FMT_OV518</link> v4l2_fourcc('O', '5', '1', '8') /* ov518 JPEG */ 364#define <link linkend="V4L2-PIX-FMT-OV518">V4L2_PIX_FMT_OV518</link> v4l2_fourcc('O', '5', '1', '8') /* ov518 JPEG */
365#define <link linkend="V4L2-PIX-FMT-TM6000">V4L2_PIX_FMT_TM6000</link> v4l2_fourcc('T', 'M', '6', '0') /* tm5600/tm60x0 */ 365#define <link linkend="V4L2-PIX-FMT-TM6000">V4L2_PIX_FMT_TM6000</link> v4l2_fourcc('T', 'M', '6', '0') /* tm5600/tm60x0 */
366#define <link linkend="V4L2-PIX-FMT-STV0680">V4L2_PIX_FMT_STV0680</link> v4l2_fourcc('S', '6', '8', '0') /* stv0680 bayer */
366 367
367/* 368/*
368 * F O R M A T E N U M E R A T I O N 369 * F O R M A T E N U M E R A T I O N
@@ -565,6 +566,7 @@ struct <link linkend="v4l2-framebuffer">v4l2_framebuffer</link> {
565#define V4L2_FBUF_CAP_LOCAL_ALPHA 0x0010 566#define V4L2_FBUF_CAP_LOCAL_ALPHA 0x0010
566#define V4L2_FBUF_CAP_GLOBAL_ALPHA 0x0020 567#define V4L2_FBUF_CAP_GLOBAL_ALPHA 0x0020
567#define V4L2_FBUF_CAP_LOCAL_INV_ALPHA 0x0040 568#define V4L2_FBUF_CAP_LOCAL_INV_ALPHA 0x0040
569#define V4L2_FBUF_CAP_SRC_CHROMAKEY 0x0080
568/* Flags for the 'flags' field. */ 570/* Flags for the 'flags' field. */
569#define V4L2_FBUF_FLAG_PRIMARY 0x0001 571#define V4L2_FBUF_FLAG_PRIMARY 0x0001
570#define V4L2_FBUF_FLAG_OVERLAY 0x0002 572#define V4L2_FBUF_FLAG_OVERLAY 0x0002
@@ -572,6 +574,7 @@ struct <link linkend="v4l2-framebuffer">v4l2_framebuffer</link> {
572#define V4L2_FBUF_FLAG_LOCAL_ALPHA 0x0008 574#define V4L2_FBUF_FLAG_LOCAL_ALPHA 0x0008
573#define V4L2_FBUF_FLAG_GLOBAL_ALPHA 0x0010 575#define V4L2_FBUF_FLAG_GLOBAL_ALPHA 0x0010
574#define V4L2_FBUF_FLAG_LOCAL_INV_ALPHA 0x0020 576#define V4L2_FBUF_FLAG_LOCAL_INV_ALPHA 0x0020
577#define V4L2_FBUF_FLAG_SRC_CHROMAKEY 0x0040
575 578
576struct <link linkend="v4l2-clip">v4l2_clip</link> { 579struct <link linkend="v4l2-clip">v4l2_clip</link> {
577 struct <link linkend="v4l2-rect">v4l2_rect</link> c; 580 struct <link linkend="v4l2-rect">v4l2_rect</link> c;
@@ -914,8 +917,10 @@ enum <link linkend="v4l2-colorfx">v4l2_colorfx</link> {
914#define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32) 917#define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32)
915#define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33) 918#define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33)
916 919
920#define V4L2_CID_ROTATE (V4L2_CID_BASE+34)
921#define V4L2_CID_BG_COLOR (V4L2_CID_BASE+35)
917/* last CID + 1 */ 922/* last CID + 1 */
918#define V4L2_CID_LASTP1 (V4L2_CID_BASE+34) 923#define V4L2_CID_LASTP1 (V4L2_CID_BASE+36)
919 924
920/* MPEG-class control IDs defined by V4L2 */ 925/* MPEG-class control IDs defined by V4L2 */
921#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) 926#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
diff --git a/Documentation/DocBook/v4l/vidioc-g-fbuf.xml b/Documentation/DocBook/v4l/vidioc-g-fbuf.xml
index f7017062656e..e7dda4822f04 100644
--- a/Documentation/DocBook/v4l/vidioc-g-fbuf.xml
+++ b/Documentation/DocBook/v4l/vidioc-g-fbuf.xml
@@ -336,6 +336,13 @@ alpha value. Alpha blending makes no sense for destructive overlays.</entry>
336inverted alpha channel of the framebuffer or VGA signal. Alpha 336inverted alpha channel of the framebuffer or VGA signal. Alpha
337blending makes no sense for destructive overlays.</entry> 337blending makes no sense for destructive overlays.</entry>
338 </row> 338 </row>
339 <row>
340 <entry><constant>V4L2_FBUF_CAP_SRC_CHROMAKEY</constant></entry>
341 <entry>0x0080</entry>
342 <entry>The device supports Source Chroma-keying. Framebuffer pixels
343with the chroma-key colors are replaced by video pixels, which is exactly opposite of
344<constant>V4L2_FBUF_CAP_CHROMAKEY</constant></entry>
345 </row>
339 </tbody> 346 </tbody>
340 </tgroup> 347 </tgroup>
341 </table> 348 </table>
@@ -411,6 +418,16 @@ images, but with an inverted alpha value. The blend function is:
411output = framebuffer pixel * (1 - alpha) + video pixel * alpha. The 418output = framebuffer pixel * (1 - alpha) + video pixel * alpha. The
412actual alpha depth depends on the framebuffer pixel format.</entry> 419actual alpha depth depends on the framebuffer pixel format.</entry>
413 </row> 420 </row>
421 <row>
422 <entry><constant>V4L2_FBUF_FLAG_SRC_CHROMAKEY</constant></entry>
423 <entry>0x0040</entry>
424 <entry>Use source chroma-keying. The source chroma-key color is
425determined by the <structfield>chromakey</structfield> field of
426&v4l2-window; and negotiated with the &VIDIOC-S-FMT; ioctl, see <xref
427linkend="overlay" /> and <xref linkend="osd" />.
428Both chroma-keying are mutual exclusive to each other, so same
429<structfield>chromakey</structfield> field of &v4l2-window; is being used.</entry>
430 </row>
414 </tbody> 431 </tbody>
415 </tgroup> 432 </tgroup>
416 </table> 433 </table>