diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/dvb/frontend.h | 130 |
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 | ||
| 166 | typedef enum fe_transmit_mode { | 173 | typedef 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 | */ | ||
| 253 | typedef 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 | |||
| 309 | typedef enum fe_pilot { | ||
| 310 | PILOT_ON, | ||
| 311 | PILOT_OFF, | ||
| 312 | PILOT_AUTO, | ||
| 313 | } fe_pilot_t; | ||
| 314 | |||
| 315 | typedef enum fe_rolloff { | ||
| 316 | ROLLOFF_20, | ||
| 317 | ROLLOFF_25, | ||
| 318 | ROLLOFF_35, | ||
| 319 | ROLLOFF_AUTO, | ||
| 320 | } fe_rolloff_t; | ||
| 321 | |||
| 322 | typedef 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 | |||
| 340 | struct 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 | |||
| 351 | typedef 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 */ | ||
| 363 | typedef 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 |
