diff options
Diffstat (limited to 'Documentation/DocBook/dvb/dvbproperty.xml')
-rw-r--r-- | Documentation/DocBook/dvb/dvbproperty.xml | 408 |
1 files changed, 340 insertions, 68 deletions
diff --git a/Documentation/DocBook/dvb/dvbproperty.xml b/Documentation/DocBook/dvb/dvbproperty.xml index 5f57c7ccd4ba..b5365f61d69b 100644 --- a/Documentation/DocBook/dvb/dvbproperty.xml +++ b/Documentation/DocBook/dvb/dvbproperty.xml | |||
@@ -1,6 +1,330 @@ | |||
1 | <section id="FE_GET_PROPERTY"> | 1 | <section id="FE_GET_SET_PROPERTY"> |
2 | <title>FE_GET_PROPERTY/FE_SET_PROPERTY</title> | 2 | <title>FE_GET_PROPERTY/FE_SET_PROPERTY</title> |
3 | 3 | ||
4 | <programlisting> | ||
5 | /* Reserved fields should be set to 0 */ | ||
6 | struct dtv_property { | ||
7 | __u32 cmd; | ||
8 | union { | ||
9 | __u32 data; | ||
10 | struct { | ||
11 | __u8 data[32]; | ||
12 | __u32 len; | ||
13 | __u32 reserved1[3]; | ||
14 | void *reserved2; | ||
15 | } buffer; | ||
16 | } u; | ||
17 | int result; | ||
18 | } __attribute__ ((packed)); | ||
19 | |||
20 | /* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ | ||
21 | #define DTV_IOCTL_MAX_MSGS 64 | ||
22 | |||
23 | struct dtv_properties { | ||
24 | __u32 num; | ||
25 | struct dtv_property *props; | ||
26 | }; | ||
27 | </programlisting> | ||
28 | |||
29 | <section id="FE_GET_PROPERTY"> | ||
30 | <title>FE_GET_PROPERTY</title> | ||
31 | <para>DESCRIPTION | ||
32 | </para> | ||
33 | <informaltable><tgroup cols="1"><tbody><row><entry | ||
34 | align="char"> | ||
35 | <para>This ioctl call returns one or more frontend properties. This call only | ||
36 | requires read-only access to the device.</para> | ||
37 | </entry> | ||
38 | </row></tbody></tgroup></informaltable> | ||
39 | <para>SYNOPSIS | ||
40 | </para> | ||
41 | <informaltable><tgroup cols="1"><tbody><row><entry | ||
42 | align="char"> | ||
43 | <para>int ioctl(int fd, int request = <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link>, | ||
44 | dtv_properties ⋆props);</para> | ||
45 | </entry> | ||
46 | </row></tbody></tgroup></informaltable> | ||
47 | <para>PARAMETERS | ||
48 | </para> | ||
49 | <informaltable><tgroup cols="2"><tbody><row><entry align="char"> | ||
50 | <para>int fd</para> | ||
51 | </entry><entry | ||
52 | align="char"> | ||
53 | <para>File descriptor returned by a previous call to open().</para> | ||
54 | </entry> | ||
55 | </row><row><entry | ||
56 | align="char"> | ||
57 | <para>int num</para> | ||
58 | </entry><entry | ||
59 | align="char"> | ||
60 | <para>Equals <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link> for this command.</para> | ||
61 | </entry> | ||
62 | </row><row><entry | ||
63 | align="char"> | ||
64 | <para>struct dtv_property *props</para> | ||
65 | </entry><entry | ||
66 | align="char"> | ||
67 | <para>Points to the location where the front-end property commands are stored.</para> | ||
68 | </entry> | ||
69 | </row></tbody></tgroup></informaltable> | ||
70 | <para>ERRORS</para> | ||
71 | <informaltable><tgroup cols="2"><tbody><row> | ||
72 | <entry align="char"><para>EINVAL</para></entry> | ||
73 | <entry align="char"><para>Invalid parameter(s) received or number of parameters out of the range.</para></entry> | ||
74 | </row><row> | ||
75 | <entry align="char"><para>ENOMEM</para></entry> | ||
76 | <entry align="char"><para>Out of memory.</para></entry> | ||
77 | </row><row> | ||
78 | <entry align="char"><para>EFAULT</para></entry> | ||
79 | <entry align="char"><para>Failure while copying data from/to userspace.</para></entry> | ||
80 | </row><row> | ||
81 | <entry align="char"><para>EOPNOTSUPP</para></entry> | ||
82 | <entry align="char"><para>Property type not supported.</para></entry> | ||
83 | </row></tbody></tgroup></informaltable> | ||
84 | </section> | ||
85 | |||
86 | <section id="FE_SET_PROPERTY"> | ||
87 | <title>FE_SET_PROPERTY</title> | ||
88 | <para>DESCRIPTION | ||
89 | </para> | ||
90 | <informaltable><tgroup cols="1"><tbody><row><entry | ||
91 | align="char"> | ||
92 | <para>This ioctl call sets one or more frontend properties. This call only | ||
93 | requires read-only access to the device.</para> | ||
94 | </entry> | ||
95 | </row></tbody></tgroup></informaltable> | ||
96 | <para>SYNOPSIS | ||
97 | </para> | ||
98 | <informaltable><tgroup cols="1"><tbody><row><entry | ||
99 | align="char"> | ||
100 | <para>int ioctl(int fd, int request = <link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link>, | ||
101 | dtv_properties ⋆props);</para> | ||
102 | </entry> | ||
103 | </row></tbody></tgroup></informaltable> | ||
104 | <para>PARAMETERS | ||
105 | </para> | ||
106 | <informaltable><tgroup cols="2"><tbody><row><entry align="char"> | ||
107 | <para>int fd</para> | ||
108 | </entry><entry | ||
109 | align="char"> | ||
110 | <para>File descriptor returned by a previous call to open().</para> | ||
111 | </entry> | ||
112 | </row><row><entry | ||
113 | align="char"> | ||
114 | <para>int num</para> | ||
115 | </entry><entry | ||
116 | align="char"> | ||
117 | <para>Equals <link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link> for this command.</para> | ||
118 | </entry> | ||
119 | </row><row><entry | ||
120 | align="char"> | ||
121 | <para>struct dtv_property *props</para> | ||
122 | </entry><entry | ||
123 | align="char"> | ||
124 | <para>Points to the location where the front-end property commands are stored.</para> | ||
125 | </entry> | ||
126 | </row></tbody></tgroup></informaltable> | ||
127 | <para>ERRORS | ||
128 | </para> | ||
129 | <informaltable><tgroup cols="2"><tbody><row> | ||
130 | <entry align="char"><para>EINVAL</para></entry> | ||
131 | <entry align="char"><para>Invalid parameter(s) received or number of parameters out of the range.</para></entry> | ||
132 | </row><row> | ||
133 | <entry align="char"><para>ENOMEM</para></entry> | ||
134 | <entry align="char"><para>Out of memory.</para></entry> | ||
135 | </row><row> | ||
136 | <entry align="char"><para>EFAULT</para></entry> | ||
137 | <entry align="char"><para>Failure while copying data from/to userspace.</para></entry> | ||
138 | </row><row> | ||
139 | <entry align="char"><para>EOPNOTSUPP</para></entry> | ||
140 | <entry align="char"><para>Property type not supported.</para></entry> | ||
141 | </row></tbody></tgroup></informaltable> | ||
142 | </section> | ||
143 | |||
144 | <section> | ||
145 | <title>Property types</title> | ||
146 | <para> | ||
147 | On <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link>/<link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link>, | ||
148 | the actual action is determined by the dtv_property cmd/data pairs. With one single ioctl, is possible to | ||
149 | get/set up to 64 properties. The actual meaning of each property is described on the next sections. | ||
150 | </para> | ||
151 | |||
152 | <para>The available frontend property types are:</para> | ||
153 | <programlisting> | ||
154 | #define DTV_UNDEFINED 0 | ||
155 | #define DTV_TUNE 1 | ||
156 | #define DTV_CLEAR 2 | ||
157 | #define DTV_FREQUENCY 3 | ||
158 | #define DTV_MODULATION 4 | ||
159 | #define DTV_BANDWIDTH_HZ 5 | ||
160 | #define DTV_INVERSION 6 | ||
161 | #define DTV_DISEQC_MASTER 7 | ||
162 | #define DTV_SYMBOL_RATE 8 | ||
163 | #define DTV_INNER_FEC 9 | ||
164 | #define DTV_VOLTAGE 10 | ||
165 | #define DTV_TONE 11 | ||
166 | #define DTV_PILOT 12 | ||
167 | #define DTV_ROLLOFF 13 | ||
168 | #define DTV_DISEQC_SLAVE_REPLY 14 | ||
169 | #define DTV_FE_CAPABILITY_COUNT 15 | ||
170 | #define DTV_FE_CAPABILITY 16 | ||
171 | #define DTV_DELIVERY_SYSTEM 17 | ||
172 | #define DTV_ISDBT_PARTIAL_RECEPTION 18 | ||
173 | #define DTV_ISDBT_SOUND_BROADCASTING 19 | ||
174 | #define DTV_ISDBT_SB_SUBCHANNEL_ID 20 | ||
175 | #define DTV_ISDBT_SB_SEGMENT_IDX 21 | ||
176 | #define DTV_ISDBT_SB_SEGMENT_COUNT 22 | ||
177 | #define DTV_ISDBT_LAYERA_FEC 23 | ||
178 | #define DTV_ISDBT_LAYERA_MODULATION 24 | ||
179 | #define DTV_ISDBT_LAYERA_SEGMENT_COUNT 25 | ||
180 | #define DTV_ISDBT_LAYERA_TIME_INTERLEAVING 26 | ||
181 | #define DTV_ISDBT_LAYERB_FEC 27 | ||
182 | #define DTV_ISDBT_LAYERB_MODULATION 28 | ||
183 | #define DTV_ISDBT_LAYERB_SEGMENT_COUNT 29 | ||
184 | #define DTV_ISDBT_LAYERB_TIME_INTERLEAVING 30 | ||
185 | #define DTV_ISDBT_LAYERC_FEC 31 | ||
186 | #define DTV_ISDBT_LAYERC_MODULATION 32 | ||
187 | #define DTV_ISDBT_LAYERC_SEGMENT_COUNT 33 | ||
188 | #define DTV_ISDBT_LAYERC_TIME_INTERLEAVING 34 | ||
189 | #define DTV_API_VERSION 35 | ||
190 | #define DTV_CODE_RATE_HP 36 | ||
191 | #define DTV_CODE_RATE_LP 37 | ||
192 | #define DTV_GUARD_INTERVAL 38 | ||
193 | #define DTV_TRANSMISSION_MODE 39 | ||
194 | #define DTV_HIERARCHY 40 | ||
195 | #define DTV_ISDBT_LAYER_ENABLED 41 | ||
196 | #define DTV_ISDBS_TS_ID 42 | ||
197 | </programlisting> | ||
198 | </section> | ||
199 | |||
200 | <section id="fe_property_common"> | ||
201 | <title>Parameters that are common to all Digital TV standards</title> | ||
202 | <section id="DTV_FREQUENCY"> | ||
203 | <title><constant>DTV_FREQUENCY</constant></title> | ||
204 | |||
205 | <para>Central frequency of the channel, in HZ.</para> | ||
206 | |||
207 | <para>Notes:</para> | ||
208 | <para>1)For ISDB-T, the channels are usually transmitted with an offset of 143kHz. | ||
209 | E.g. a valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of | ||
210 | the channel which is 6MHz.</para> | ||
211 | |||
212 | <para>2)As in ISDB-Tsb the channel consists of only one or three segments the | ||
213 | frequency step is 429kHz, 3*429 respectively. As for ISDB-T the | ||
214 | central frequency of the channel is expected.</para> | ||
215 | </section> | ||
216 | |||
217 | <section id="DTV_BANDWIDTH_HZ"> | ||
218 | <title><constant>DTV_BANDWIDTH_HZ</constant></title> | ||
219 | |||
220 | <para>Bandwidth for the channel, in HZ.</para> | ||
221 | |||
222 | <para>Possible values: | ||
223 | <constant>1712000</constant>, | ||
224 | <constant>5000000</constant>, | ||
225 | <constant>6000000</constant>, | ||
226 | <constant>7000000</constant>, | ||
227 | <constant>8000000</constant>, | ||
228 | <constant>10000000</constant>. | ||
229 | </para> | ||
230 | |||
231 | <para>Notes:</para> | ||
232 | |||
233 | <para>1) For ISDB-T it should be always 6000000Hz (6MHz)</para> | ||
234 | <para>2) For ISDB-Tsb it can vary depending on the number of connected segments</para> | ||
235 | <para>3) Bandwidth doesn't apply for DVB-C transmissions, as the bandwidth | ||
236 | for DVB-C depends on the symbol rate</para> | ||
237 | <para>4) Bandwidth in ISDB-T is fixed (6MHz) or can be easily derived from | ||
238 | other parameters (DTV_ISDBT_SB_SEGMENT_IDX, | ||
239 | DTV_ISDBT_SB_SEGMENT_COUNT).</para> | ||
240 | <para>5) DVB-T supports 6, 7 and 8MHz.</para> | ||
241 | <para>6) In addition, DVB-T2 supports 1.172, 5 and 10MHz.</para> | ||
242 | </section> | ||
243 | |||
244 | <section id="DTV_DELIVERY_SYSTEM"> | ||
245 | <title><constant>DTV_DELIVERY_SYSTEM</constant></title> | ||
246 | |||
247 | <para>Specifies the type of Delivery system</para> | ||
248 | |||
249 | <para>Possible values: </para> | ||
250 | <programlisting> | ||
251 | typedef enum fe_delivery_system { | ||
252 | SYS_UNDEFINED, | ||
253 | SYS_DVBC_ANNEX_AC, | ||
254 | SYS_DVBC_ANNEX_B, | ||
255 | SYS_DVBT, | ||
256 | SYS_DSS, | ||
257 | SYS_DVBS, | ||
258 | SYS_DVBS2, | ||
259 | SYS_DVBH, | ||
260 | SYS_ISDBT, | ||
261 | SYS_ISDBS, | ||
262 | SYS_ISDBC, | ||
263 | SYS_ATSC, | ||
264 | SYS_ATSCMH, | ||
265 | SYS_DMBTH, | ||
266 | SYS_CMMB, | ||
267 | SYS_DAB, | ||
268 | SYS_DVBT2, | ||
269 | } fe_delivery_system_t; | ||
270 | </programlisting> | ||
271 | |||
272 | </section> | ||
273 | |||
274 | <section id="DTV_TRANSMISSION_MODE"> | ||
275 | <title><constant>DTV_TRANSMISSION_MODE</constant></title> | ||
276 | |||
277 | <para>Specifies the number of carriers used by the standard</para> | ||
278 | |||
279 | <para>Possible values are:</para> | ||
280 | <programlisting> | ||
281 | typedef enum fe_transmit_mode { | ||
282 | TRANSMISSION_MODE_2K, | ||
283 | TRANSMISSION_MODE_8K, | ||
284 | TRANSMISSION_MODE_AUTO, | ||
285 | TRANSMISSION_MODE_4K, | ||
286 | TRANSMISSION_MODE_1K, | ||
287 | TRANSMISSION_MODE_16K, | ||
288 | TRANSMISSION_MODE_32K, | ||
289 | } fe_transmit_mode_t; | ||
290 | </programlisting> | ||
291 | |||
292 | <para>Notes:</para> | ||
293 | <para>1) ISDB-T supports three carrier/symbol-size: 8K, 4K, 2K. It is called | ||
294 | 'mode' in the standard: Mode 1 is 2K, mode 2 is 4K, mode 3 is 8K</para> | ||
295 | |||
296 | <para>2) If <constant>DTV_TRANSMISSION_MODE</constant> is set the <constant>TRANSMISSION_MODE_AUTO</constant> the | ||
297 | hardware will try to find the correct FFT-size (if capable) and will | ||
298 | use TMCC to fill in the missing parameters.</para> | ||
299 | <para>3) DVB-T specifies 2K and 8K as valid sizes.</para> | ||
300 | <para>4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K.</para> | ||
301 | </section> | ||
302 | |||
303 | <section id="DTV_GUARD_INTERVAL"> | ||
304 | <title><constant>DTV_GUARD_INTERVAL</constant></title> | ||
305 | |||
306 | <para>Possible values are:</para> | ||
307 | <programlisting> | ||
308 | typedef enum fe_guard_interval { | ||
309 | GUARD_INTERVAL_1_32, | ||
310 | GUARD_INTERVAL_1_16, | ||
311 | GUARD_INTERVAL_1_8, | ||
312 | GUARD_INTERVAL_1_4, | ||
313 | GUARD_INTERVAL_AUTO, | ||
314 | GUARD_INTERVAL_1_128, | ||
315 | GUARD_INTERVAL_19_128, | ||
316 | GUARD_INTERVAL_19_256, | ||
317 | } fe_guard_interval_t; | ||
318 | </programlisting> | ||
319 | |||
320 | <para>Notes:</para> | ||
321 | <para>1) If <constant>DTV_GUARD_INTERVAL</constant> is set the <constant>GUARD_INTERVAL_AUTO</constant> the hardware will | ||
322 | try to find the correct guard interval (if capable) and will use TMCC to fill | ||
323 | in the missing parameters.</para> | ||
324 | <para>2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present</para> | ||
325 | </section> | ||
326 | </section> | ||
327 | |||
4 | <section id="isdbt"> | 328 | <section id="isdbt"> |
5 | <title>ISDB-T frontend</title> | 329 | <title>ISDB-T frontend</title> |
6 | <para>This section describes shortly what are the possible parameters in the Linux | 330 | <para>This section describes shortly what are the possible parameters in the Linux |
@@ -32,73 +356,6 @@ | |||
32 | 356 | ||
33 | <para>Parameters used by ISDB-T and ISDB-Tsb.</para> | 357 | <para>Parameters used by ISDB-T and ISDB-Tsb.</para> |
34 | 358 | ||
35 | <section id="isdbt-parms"> | ||
36 | <title>Parameters that are common with DVB-T and ATSC</title> | ||
37 | |||
38 | <section id="isdbt-freq"> | ||
39 | <title><constant>DTV_FREQUENCY</constant></title> | ||
40 | |||
41 | <para>Central frequency of the channel.</para> | ||
42 | |||
43 | <para>For ISDB-T the channels are usally transmitted with an offset of 143kHz. E.g. a | ||
44 | valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of | ||
45 | the channel which is 6MHz.</para> | ||
46 | |||
47 | <para>As in ISDB-Tsb the channel consists of only one or three segments the | ||
48 | frequency step is 429kHz, 3*429 respectively. As for ISDB-T the | ||
49 | central frequency of the channel is expected.</para> | ||
50 | </section> | ||
51 | |||
52 | <section id="isdbt-bw"> | ||
53 | <title><constant>DTV_BANDWIDTH_HZ</constant> (optional)</title> | ||
54 | |||
55 | <para>Possible values:</para> | ||
56 | |||
57 | <para>For ISDB-T it should be always 6000000Hz (6MHz)</para> | ||
58 | <para>For ISDB-Tsb it can vary depending on the number of connected segments</para> | ||
59 | |||
60 | <para>Note: Hardware specific values might be given here, but standard | ||
61 | applications should not bother to set a value to this field as | ||
62 | standard demods are ignoring it anyway.</para> | ||
63 | |||
64 | <para>Bandwidth in ISDB-T is fixed (6MHz) or can be easily derived from | ||
65 | other parameters (DTV_ISDBT_SB_SEGMENT_IDX, | ||
66 | DTV_ISDBT_SB_SEGMENT_COUNT).</para> | ||
67 | </section> | ||
68 | |||
69 | <section id="isdbt-delivery-sys"> | ||
70 | <title><constant>DTV_DELIVERY_SYSTEM</constant></title> | ||
71 | |||
72 | <para>Possible values: <constant>SYS_ISDBT</constant></para> | ||
73 | </section> | ||
74 | |||
75 | <section id="isdbt-tx-mode"> | ||
76 | <title><constant>DTV_TRANSMISSION_MODE</constant></title> | ||
77 | |||
78 | <para>ISDB-T supports three carrier/symbol-size: 8K, 4K, 2K. It is called | ||
79 | 'mode' in the standard: Mode 1 is 2K, mode 2 is 4K, mode 3 is 8K</para> | ||
80 | |||
81 | <para>Possible values: <constant>TRANSMISSION_MODE_2K</constant>, <constant>TRANSMISSION_MODE_8K</constant>, | ||
82 | <constant>TRANSMISSION_MODE_AUTO</constant>, <constant>TRANSMISSION_MODE_4K</constant></para> | ||
83 | |||
84 | <para>If <constant>DTV_TRANSMISSION_MODE</constant> is set the <constant>TRANSMISSION_MODE_AUTO</constant> the | ||
85 | hardware will try to find the correct FFT-size (if capable) and will | ||
86 | use TMCC to fill in the missing parameters.</para> | ||
87 | |||
88 | <para><constant>TRANSMISSION_MODE_4K</constant> is added at the same time as the other new parameters.</para> | ||
89 | </section> | ||
90 | |||
91 | <section id="isdbt-guard-interval"> | ||
92 | <title><constant>DTV_GUARD_INTERVAL</constant></title> | ||
93 | |||
94 | <para>Possible values: <constant>GUARD_INTERVAL_1_32</constant>, <constant>GUARD_INTERVAL_1_16</constant>, <constant>GUARD_INTERVAL_1_8</constant>, | ||
95 | <constant>GUARD_INTERVAL_1_4</constant>, <constant>GUARD_INTERVAL_AUTO</constant></para> | ||
96 | |||
97 | <para>If <constant>DTV_GUARD_INTERVAL</constant> is set the <constant>GUARD_INTERVAL_AUTO</constant> the hardware will | ||
98 | try to find the correct guard interval (if capable) and will use TMCC to fill | ||
99 | in the missing parameters.</para> | ||
100 | </section> | ||
101 | </section> | ||
102 | <section id="isdbt-new-parms"> | 359 | <section id="isdbt-new-parms"> |
103 | <title>ISDB-T only parameters</title> | 360 | <title>ISDB-T only parameters</title> |
104 | 361 | ||
@@ -314,5 +571,20 @@ | |||
314 | </section> | 571 | </section> |
315 | </section> | 572 | </section> |
316 | </section> | 573 | </section> |
574 | <section id="dvbt2-params"> | ||
575 | <title>DVB-T2 parameters</title> | ||
576 | |||
577 | <para>This section covers parameters that apply only to the DVB-T2 delivery method. DVB-T2 | ||
578 | support is currently in the early stages development so expect this section to grow | ||
579 | and become more detailed with time.</para> | ||
580 | |||
581 | <section id="dvbt2-plp-id"> | ||
582 | <title><constant>DTV_DVBT2_PLP_ID</constant></title> | ||
583 | |||
584 | <para>DVB-T2 supports Physical Layer Pipes (PLP) to allow transmission of | ||
585 | many data types via a single multiplex. The API will soon support this | ||
586 | at which point this section will be expanded.</para> | ||
587 | </section> | ||
588 | </section> | ||
317 | </section> | 589 | </section> |
318 | </section> | 590 | </section> |