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.h110
1 files changed, 108 insertions, 2 deletions
diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
index c8cbd90ba375..6e4ace270276 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,10 @@ 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 PSK_8,
168 APSK_16,
169 DQPSK,
164} fe_modulation_t; 170} fe_modulation_t;
165 171
166typedef enum fe_transmit_mode { 172typedef enum fe_transmit_mode {
@@ -239,6 +245,106 @@ struct dvb_frontend_event {
239 struct dvb_frontend_parameters parameters; 245 struct dvb_frontend_parameters parameters;
240}; 246};
241 247
248/* S2API Commands */
249#define DTV_UNDEFINED 0
250#define DTV_TUNE 1
251#define DTV_CLEAR 2
252#define DTV_FREQUENCY 3
253#define DTV_MODULATION 4
254#define DTV_BANDWIDTH_HZ 5
255#define DTV_INVERSION 6
256#define DTV_DISEQC_MASTER 7
257#define DTV_SYMBOL_RATE 8
258#define DTV_INNER_FEC 9
259#define DTV_VOLTAGE 10
260#define DTV_TONE 11
261#define DTV_PILOT 12
262#define DTV_ROLLOFF 13
263#define DTV_DISEQC_SLAVE_REPLY 14
264
265/* Basic enumeration set for querying unlimited capabilities */
266#define DTV_FE_CAPABILITY_COUNT 15
267#define DTV_FE_CAPABILITY 16
268#define DTV_DELIVERY_SYSTEM 17
269
270#define DTV_API_VERSION 35
271#define DTV_API_VERSION 35
272#define DTV_CODE_RATE_HP 36
273#define DTV_CODE_RATE_LP 37
274#define DTV_GUARD_INTERVAL 38
275#define DTV_TRANSMISSION_MODE 39
276#define DTV_HIERARCHY 40
277
278#define DTV_MAX_COMMAND DTV_HIERARCHY
279
280typedef enum fe_pilot {
281 PILOT_ON,
282 PILOT_OFF,
283 PILOT_AUTO,
284} fe_pilot_t;
285
286typedef enum fe_rolloff {
287 ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */
288 ROLLOFF_20,
289 ROLLOFF_25,
290 ROLLOFF_AUTO,
291} fe_rolloff_t;
292
293typedef enum fe_delivery_system {
294 SYS_UNDEFINED,
295 SYS_DVBC_ANNEX_AC,
296 SYS_DVBC_ANNEX_B,
297 SYS_DVBT,
298 SYS_DVBS,
299 SYS_DVBS2,
300 SYS_DVBH,
301 SYS_ISDBT,
302 SYS_ISDBS,
303 SYS_ISDBC,
304 SYS_ATSC,
305 SYS_ATSCMH,
306 SYS_DMBTH,
307 SYS_CMMB,
308 SYS_DAB,
309} fe_delivery_system_t;
310
311struct dtv_cmds_h {
312 char *name; /* A display name for debugging purposes */
313
314 __u32 cmd; /* A unique ID */
315
316 /* Flags */
317 __u32 set:1; /* Either a set or get property */
318 __u32 buffer:1; /* Does this property use the buffer? */
319 __u32 reserved:30; /* Align */
320};
321
322struct dtv_property {
323 __u32 cmd;
324 __u32 reserved[3];
325 union {
326 __u32 data;
327 struct {
328 __u8 data[32];
329 __u32 len;
330 __u32 reserved1[3];
331 void *reserved2;
332 } buffer;
333 } u;
334 int result;
335} __attribute__ ((packed));
336
337/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */
338#define DTV_IOCTL_MAX_MSGS 64
339
340struct dtv_properties {
341 __u32 num;
342 struct dtv_property *props;
343};
344
345#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties)
346#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties)
347
242 348
243/** 349/**
244 * When set, this flag will disable any zigzagging or other "normal" tuning 350 * When set, this flag will disable any zigzagging or other "normal" tuning