aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/dvb/frontend.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/dvb/frontend.h')
-rw-r--r--include/linux/dvb/frontend.h130
1 files changed, 128 insertions, 2 deletions
diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
index c8cbd90ba375..4d3770021736 100644
--- a/include/linux/dvb/frontend.h
+++ b/include/linux/dvb/frontend.h
@@ -62,6 +62,7 @@ typedef enum fe_caps {
62 FE_CAN_HIERARCHY_AUTO = 0x100000, 62 FE_CAN_HIERARCHY_AUTO = 0x100000,
63 FE_CAN_8VSB = 0x200000, 63 FE_CAN_8VSB = 0x200000,
64 FE_CAN_16VSB = 0x400000, 64 FE_CAN_16VSB = 0x400000,
65 FE_HAS_EXTENDED_CAPS = 0x800000, // We need more bitspace for newer APIs, indicate this.
65 FE_NEEDS_BENDING = 0x20000000, // not supported anymore, don't use (frontend requires frequency bending) 66 FE_NEEDS_BENDING = 0x20000000, // not supported anymore, don't use (frontend requires frequency bending)
66 FE_CAN_RECOVER = 0x40000000, // frontend can recover from a cable unplug automatically 67 FE_CAN_RECOVER = 0x40000000, // frontend can recover from a cable unplug automatically
67 FE_CAN_MUTE_TS = 0x80000000 // frontend can stop spurious TS data output 68 FE_CAN_MUTE_TS = 0x80000000 // frontend can stop spurious TS data output
@@ -147,7 +148,9 @@ typedef enum fe_code_rate {
147 FEC_6_7, 148 FEC_6_7,
148 FEC_7_8, 149 FEC_7_8,
149 FEC_8_9, 150 FEC_8_9,
150 FEC_AUTO 151 FEC_AUTO,
152 FEC_3_5,
153 FEC_9_10,
151} fe_code_rate_t; 154} fe_code_rate_t;
152 155
153 156
@@ -160,7 +163,11 @@ typedef enum fe_modulation {
160 QAM_256, 163 QAM_256,
161 QAM_AUTO, 164 QAM_AUTO,
162 VSB_8, 165 VSB_8,
163 VSB_16 166 VSB_16,
167 _8PSK,
168 _16APSK,
169 NBC_QPSK,
170 DQPSK,
164} fe_modulation_t; 171} fe_modulation_t;
165 172
166typedef enum fe_transmit_mode { 173typedef enum fe_transmit_mode {
@@ -239,6 +246,125 @@ struct dvb_frontend_event {
239 struct dvb_frontend_parameters parameters; 246 struct dvb_frontend_parameters parameters;
240}; 247};
241 248
249/* TODO: Turn this into a series of defines, so future maintainers
250 * don't insert random new commands and break backwards
251 * binary compatability.
252 */
253typedef enum tv_cmd_types {
254 TV_SEQ_UNDEFINED,
255 TV_SEQ_START,
256 TV_SEQ_CONTINUE,
257 TV_SEQ_COMPLETE,
258 TV_SEQ_TERMINATE,
259
260 TV_SET_FREQUENCY,
261 TV_SET_MODULATION,
262 TV_SET_BANDWIDTH,
263 TV_SET_INVERSION,
264 TV_SET_DISEQC_MASTER,
265 TV_SET_SYMBOLRATE,
266 TV_SET_INNERFEC,
267 TV_SET_VOLTAGE,
268 TV_SET_TONE,
269 TV_SET_PILOT,
270 TV_SET_ROLLOFF,
271
272 TV_GET_FREQUENCY,
273 TV_GET_MODULATION,
274 TV_GET_BANDWIDTH,
275 TV_GET_INVERSION,
276 TV_GET_DISEQC_SLAVE_REPLY,
277 TV_GET_SYMBOLRATE,
278 TV_GET_INNERFEC,
279 TV_GET_VOLTAGE,
280 TV_GET_TONE,
281 TV_GET_PILOT,
282 TV_GET_ROLLOFF,
283
284 /* Basic enumeration set for querying unlimited capabilities */
285 TV_GET_FE_CAPABILITY_COUNT,
286 TV_GET_FE_CAPABILITY,
287
288 /* New commands are always appended */
289 TV_SET_DELIVERY_SYSTEM,
290 TV_GET_DELIVERY_SYSTEM,
291
292 /* ISDB-T */
293 TV_SET_ISDB_SEGMENT_NUM,
294 TV_GET_ISDB_SEGMENT_NUM,
295 TV_SET_ISDB_SEGMENT_WIDTH,
296 TV_GET_ISDB_SEGMENT_WIDTH,
297 TV_GET_ISDB_LAYERA_FEC,
298 TV_GET_ISDB_LAYERA_MODULATION,
299 TV_GET_ISDB_LAYERA_SEGMENT_WIDTH,
300 TV_GET_ISDB_LAYERB_FEC,
301 TV_GET_ISDB_LAYERB_MODULATION,
302 TV_GET_ISDB_LAYERB_SEGMENT_WIDTH,
303 TV_GET_ISDB_LAYERC_FEC,
304 TV_GET_ISDB_LAYERC_MODULATION,
305 TV_GET_ISDB_LAYERC_SEGMENT_WIDTH,
306
307} tv_cmd_types_t;
308
309typedef enum fe_pilot {
310 PILOT_ON,
311 PILOT_OFF,
312 PILOT_AUTO,
313} fe_pilot_t;
314
315typedef enum fe_rolloff {
316 ROLLOFF_20,
317 ROLLOFF_25,
318 ROLLOFF_35,
319 ROLLOFF_AUTO,
320} fe_rolloff_t;
321
322typedef enum fe_delivery_system {
323 SYS_UNDEFINED,
324 SYS_DVBC_ANNEX_AC,
325 SYS_DVBC_ANNEX_B,
326 SYS_DVBT,
327 SYS_DVBS,
328 SYS_DVBS2,
329 SYS_DVBH,
330 SYS_ISDBT,
331 SYS_ISDBS,
332 SYS_ISDBC,
333 SYS_ATSC,
334 SYS_ATSCMH,
335 SYS_DMBTH,
336 SYS_CMMB,
337 SYS_DAB,
338} fe_delivery_system_t;
339
340struct tv_cmds_h {
341 char *name; /* A display name for debugging purposes */
342
343 __u32 cmd; /* A unique ID */
344
345 /* Flags */
346 __u32 set:1; /* Either a set or get property */
347 __u32 buffer:1; /* Does this property use the buffer? */
348 __u32 reserved:30; /* Align */
349};
350
351typedef struct {
352 __u32 cmd;
353 union {
354 __u32 data;
355 struct {
356 __u8 data[32];
357 __u32 len;
358 } buffer;
359 } u;
360} tv_property_t;
361
362/* No more than 16 properties during any given ioctl */
363typedef tv_property_t tv_properties_t[16];
364
365#define FE_SET_PROPERTY _IOW('o', 82, tv_properties_t)
366#define FE_GET_PROPERTY _IOR('o', 83, tv_properties_t)
367
242 368
243/** 369/**
244 * When set, this flag will disable any zigzagging or other "normal" tuning 370 * When set, this flag will disable any zigzagging or other "normal" tuning