diff options
Diffstat (limited to 'drivers/media/dvb/firewire/firedtv.h')
-rw-r--r-- | drivers/media/dvb/firewire/firedtv.h | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/drivers/media/dvb/firewire/firedtv.h b/drivers/media/dvb/firewire/firedtv.h new file mode 100644 index 00000000000..bd00b04e079 --- /dev/null +++ b/drivers/media/dvb/firewire/firedtv.h | |||
@@ -0,0 +1,168 @@ | |||
1 | /* | ||
2 | * FireDTV driver (formerly known as FireSAT) | ||
3 | * | ||
4 | * Copyright (C) 2004 Andreas Monitzer <andy@monitzer.com> | ||
5 | * Copyright (C) 2008 Henrik Kurelid <henrik@kurelid.se> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or | ||
8 | * modify it under the terms of the GNU General Public License as | ||
9 | * published by the Free Software Foundation; either version 2 of | ||
10 | * the License, or (at your option) any later version. | ||
11 | */ | ||
12 | |||
13 | #ifndef _FIREDTV_H | ||
14 | #define _FIREDTV_H | ||
15 | |||
16 | #include <linux/dvb/dmx.h> | ||
17 | #include <linux/dvb/frontend.h> | ||
18 | #include <linux/list.h> | ||
19 | #include <linux/mod_devicetable.h> | ||
20 | #include <linux/mutex.h> | ||
21 | #include <linux/spinlock_types.h> | ||
22 | #include <linux/types.h> | ||
23 | #include <linux/wait.h> | ||
24 | #include <linux/workqueue.h> | ||
25 | |||
26 | #include <demux.h> | ||
27 | #include <dmxdev.h> | ||
28 | #include <dvb_demux.h> | ||
29 | #include <dvb_frontend.h> | ||
30 | #include <dvb_net.h> | ||
31 | #include <dvbdev.h> | ||
32 | |||
33 | struct firedtv_tuner_status { | ||
34 | unsigned active_system:8; | ||
35 | unsigned searching:1; | ||
36 | unsigned moving:1; | ||
37 | unsigned no_rf:1; | ||
38 | unsigned input:1; | ||
39 | unsigned selected_antenna:7; | ||
40 | unsigned ber:32; | ||
41 | unsigned signal_strength:8; | ||
42 | unsigned raster_frequency:2; | ||
43 | unsigned rf_frequency:22; | ||
44 | unsigned man_dep_info_length:8; | ||
45 | unsigned front_end_error:1; | ||
46 | unsigned antenna_error:1; | ||
47 | unsigned front_end_power_status:1; | ||
48 | unsigned power_supply:1; | ||
49 | unsigned carrier_noise_ratio:16; | ||
50 | unsigned power_supply_voltage:8; | ||
51 | unsigned antenna_voltage:8; | ||
52 | unsigned firewire_bus_voltage:8; | ||
53 | unsigned ca_mmi:1; | ||
54 | unsigned ca_pmt_reply:1; | ||
55 | unsigned ca_date_time_request:1; | ||
56 | unsigned ca_application_info:1; | ||
57 | unsigned ca_module_present_status:1; | ||
58 | unsigned ca_dvb_flag:1; | ||
59 | unsigned ca_error_flag:1; | ||
60 | unsigned ca_initialization_status:1; | ||
61 | }; | ||
62 | |||
63 | enum model_type { | ||
64 | FIREDTV_UNKNOWN = 0, | ||
65 | FIREDTV_DVB_S = 1, | ||
66 | FIREDTV_DVB_C = 2, | ||
67 | FIREDTV_DVB_T = 3, | ||
68 | FIREDTV_DVB_S2 = 4, | ||
69 | }; | ||
70 | |||
71 | struct device; | ||
72 | struct input_dev; | ||
73 | struct fdtv_ir_context; | ||
74 | |||
75 | struct firedtv { | ||
76 | struct device *device; | ||
77 | struct list_head list; | ||
78 | |||
79 | struct dvb_adapter adapter; | ||
80 | struct dmxdev dmxdev; | ||
81 | struct dvb_demux demux; | ||
82 | struct dmx_frontend frontend; | ||
83 | struct dvb_net dvbnet; | ||
84 | struct dvb_frontend fe; | ||
85 | |||
86 | struct dvb_device *cadev; | ||
87 | int ca_last_command; | ||
88 | int ca_time_interval; | ||
89 | |||
90 | struct mutex avc_mutex; | ||
91 | wait_queue_head_t avc_wait; | ||
92 | bool avc_reply_received; | ||
93 | struct work_struct remote_ctrl_work; | ||
94 | struct input_dev *remote_ctrl_dev; | ||
95 | |||
96 | enum model_type type; | ||
97 | char subunit; | ||
98 | char isochannel; | ||
99 | struct fdtv_ir_context *ir_context; | ||
100 | |||
101 | fe_sec_voltage_t voltage; | ||
102 | fe_sec_tone_mode_t tone; | ||
103 | |||
104 | struct mutex demux_mutex; | ||
105 | unsigned long channel_active; | ||
106 | u16 channel_pid[16]; | ||
107 | |||
108 | int avc_data_length; | ||
109 | u8 avc_data[512]; | ||
110 | }; | ||
111 | |||
112 | /* firedtv-avc.c */ | ||
113 | int avc_recv(struct firedtv *fdtv, void *data, size_t length); | ||
114 | int avc_tuner_status(struct firedtv *fdtv, struct firedtv_tuner_status *stat); | ||
115 | struct dvb_frontend_parameters; | ||
116 | int avc_tuner_dsd(struct firedtv *fdtv, struct dvb_frontend_parameters *params); | ||
117 | int avc_tuner_set_pids(struct firedtv *fdtv, unsigned char pidc, u16 pid[]); | ||
118 | int avc_tuner_get_ts(struct firedtv *fdtv); | ||
119 | int avc_identify_subunit(struct firedtv *fdtv); | ||
120 | struct dvb_diseqc_master_cmd; | ||
121 | int avc_lnb_control(struct firedtv *fdtv, char voltage, char burst, | ||
122 | char conttone, char nrdiseq, | ||
123 | struct dvb_diseqc_master_cmd *diseqcmd); | ||
124 | void avc_remote_ctrl_work(struct work_struct *work); | ||
125 | int avc_register_remote_control(struct firedtv *fdtv); | ||
126 | int avc_ca_app_info(struct firedtv *fdtv, char *app_info, unsigned int *len); | ||
127 | int avc_ca_info(struct firedtv *fdtv, char *app_info, unsigned int *len); | ||
128 | int avc_ca_reset(struct firedtv *fdtv); | ||
129 | int avc_ca_pmt(struct firedtv *fdtv, char *app_info, int length); | ||
130 | int avc_ca_get_time_date(struct firedtv *fdtv, int *interval); | ||
131 | int avc_ca_enter_menu(struct firedtv *fdtv); | ||
132 | int avc_ca_get_mmi(struct firedtv *fdtv, char *mmi_object, unsigned int *len); | ||
133 | int cmp_establish_pp_connection(struct firedtv *fdtv, int plug, int channel); | ||
134 | void cmp_break_pp_connection(struct firedtv *fdtv, int plug, int channel); | ||
135 | |||
136 | /* firedtv-ci.c */ | ||
137 | int fdtv_ca_register(struct firedtv *fdtv); | ||
138 | void fdtv_ca_release(struct firedtv *fdtv); | ||
139 | |||
140 | /* firedtv-dvb.c */ | ||
141 | int fdtv_start_feed(struct dvb_demux_feed *dvbdmxfeed); | ||
142 | int fdtv_stop_feed(struct dvb_demux_feed *dvbdmxfeed); | ||
143 | int fdtv_dvb_register(struct firedtv *fdtv, const char *name); | ||
144 | void fdtv_dvb_unregister(struct firedtv *fdtv); | ||
145 | |||
146 | /* firedtv-fe.c */ | ||
147 | void fdtv_frontend_init(struct firedtv *fdtv, const char *name); | ||
148 | |||
149 | /* firedtv-fw.c */ | ||
150 | int fdtv_lock(struct firedtv *fdtv, u64 addr, void *data); | ||
151 | int fdtv_read(struct firedtv *fdtv, u64 addr, void *data); | ||
152 | int fdtv_write(struct firedtv *fdtv, u64 addr, void *data, size_t len); | ||
153 | int fdtv_start_iso(struct firedtv *fdtv); | ||
154 | void fdtv_stop_iso(struct firedtv *fdtv); | ||
155 | |||
156 | /* firedtv-rc.c */ | ||
157 | #ifdef CONFIG_DVB_FIREDTV_INPUT | ||
158 | int fdtv_register_rc(struct firedtv *fdtv, struct device *dev); | ||
159 | void fdtv_unregister_rc(struct firedtv *fdtv); | ||
160 | void fdtv_handle_rc(struct firedtv *fdtv, unsigned int code); | ||
161 | #else | ||
162 | static inline int fdtv_register_rc(struct firedtv *fdtv, | ||
163 | struct device *dev) { return 0; } | ||
164 | static inline void fdtv_unregister_rc(struct firedtv *fdtv) {} | ||
165 | static inline void fdtv_handle_rc(struct firedtv *fdtv, unsigned int code) {} | ||
166 | #endif | ||
167 | |||
168 | #endif /* _FIREDTV_H */ | ||