aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/firewire/firedtv-fe.c
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
commitc71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch)
treeecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /drivers/media/dvb/firewire/firedtv-fe.c
parentea53c912f8a86a8567697115b6a0d8152beee5c8 (diff)
parent6a00f206debf8a5c8899055726ad127dbeeed098 (diff)
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts: litmus/sched_cedf.c
Diffstat (limited to 'drivers/media/dvb/firewire/firedtv-fe.c')
-rw-r--r--drivers/media/dvb/firewire/firedtv-fe.c44
1 files changed, 38 insertions, 6 deletions
diff --git a/drivers/media/dvb/firewire/firedtv-fe.c b/drivers/media/dvb/firewire/firedtv-fe.c
index e49cdc88b0c7..8748a61be73d 100644
--- a/drivers/media/dvb/firewire/firedtv-fe.c
+++ b/drivers/media/dvb/firewire/firedtv-fe.c
@@ -36,14 +36,14 @@ static int fdtv_dvb_init(struct dvb_frontend *fe)
36 return err; 36 return err;
37 } 37 }
38 38
39 return fdtv->backend->start_iso(fdtv); 39 return fdtv_start_iso(fdtv);
40} 40}
41 41
42static int fdtv_sleep(struct dvb_frontend *fe) 42static int fdtv_sleep(struct dvb_frontend *fe)
43{ 43{
44 struct firedtv *fdtv = fe->sec_priv; 44 struct firedtv *fdtv = fe->sec_priv;
45 45
46 fdtv->backend->stop_iso(fdtv); 46 fdtv_stop_iso(fdtv);
47 cmp_break_pp_connection(fdtv, fdtv->subunit, fdtv->isochannel); 47 cmp_break_pp_connection(fdtv, fdtv->subunit, fdtv->isochannel);
48 fdtv->isochannel = -1; 48 fdtv->isochannel = -1;
49 return 0; 49 return 0;
@@ -155,7 +155,17 @@ static int fdtv_get_frontend(struct dvb_frontend *fe,
155 return -EOPNOTSUPP; 155 return -EOPNOTSUPP;
156} 156}
157 157
158void fdtv_frontend_init(struct firedtv *fdtv) 158static int fdtv_get_property(struct dvb_frontend *fe, struct dtv_property *tvp)
159{
160 return 0;
161}
162
163static int fdtv_set_property(struct dvb_frontend *fe, struct dtv_property *tvp)
164{
165 return 0;
166}
167
168void fdtv_frontend_init(struct firedtv *fdtv, const char *name)
159{ 169{
160 struct dvb_frontend_ops *ops = &fdtv->fe.ops; 170 struct dvb_frontend_ops *ops = &fdtv->fe.ops;
161 struct dvb_frontend_info *fi = &ops->info; 171 struct dvb_frontend_info *fi = &ops->info;
@@ -166,6 +176,9 @@ void fdtv_frontend_init(struct firedtv *fdtv)
166 ops->set_frontend = fdtv_set_frontend; 176 ops->set_frontend = fdtv_set_frontend;
167 ops->get_frontend = fdtv_get_frontend; 177 ops->get_frontend = fdtv_get_frontend;
168 178
179 ops->get_property = fdtv_get_property;
180 ops->set_property = fdtv_set_property;
181
169 ops->read_status = fdtv_read_status; 182 ops->read_status = fdtv_read_status;
170 ops->read_ber = fdtv_read_ber; 183 ops->read_ber = fdtv_read_ber;
171 ops->read_signal_strength = fdtv_read_signal_strength; 184 ops->read_signal_strength = fdtv_read_signal_strength;
@@ -179,7 +192,6 @@ void fdtv_frontend_init(struct firedtv *fdtv)
179 192
180 switch (fdtv->type) { 193 switch (fdtv->type) {
181 case FIREDTV_DVB_S: 194 case FIREDTV_DVB_S:
182 case FIREDTV_DVB_S2:
183 fi->type = FE_QPSK; 195 fi->type = FE_QPSK;
184 196
185 fi->frequency_min = 950000; 197 fi->frequency_min = 950000;
@@ -188,7 +200,7 @@ void fdtv_frontend_init(struct firedtv *fdtv)
188 fi->symbol_rate_min = 1000000; 200 fi->symbol_rate_min = 1000000;
189 fi->symbol_rate_max = 40000000; 201 fi->symbol_rate_max = 40000000;
190 202
191 fi->caps = FE_CAN_INVERSION_AUTO | 203 fi->caps = FE_CAN_INVERSION_AUTO |
192 FE_CAN_FEC_1_2 | 204 FE_CAN_FEC_1_2 |
193 FE_CAN_FEC_2_3 | 205 FE_CAN_FEC_2_3 |
194 FE_CAN_FEC_3_4 | 206 FE_CAN_FEC_3_4 |
@@ -198,6 +210,26 @@ void fdtv_frontend_init(struct firedtv *fdtv)
198 FE_CAN_QPSK; 210 FE_CAN_QPSK;
199 break; 211 break;
200 212
213 case FIREDTV_DVB_S2:
214 fi->type = FE_QPSK;
215
216 fi->frequency_min = 950000;
217 fi->frequency_max = 2150000;
218 fi->frequency_stepsize = 125;
219 fi->symbol_rate_min = 1000000;
220 fi->symbol_rate_max = 40000000;
221
222 fi->caps = FE_CAN_INVERSION_AUTO |
223 FE_CAN_FEC_1_2 |
224 FE_CAN_FEC_2_3 |
225 FE_CAN_FEC_3_4 |
226 FE_CAN_FEC_5_6 |
227 FE_CAN_FEC_7_8 |
228 FE_CAN_FEC_AUTO |
229 FE_CAN_QPSK |
230 FE_CAN_2G_MODULATION;
231 break;
232
201 case FIREDTV_DVB_C: 233 case FIREDTV_DVB_C:
202 fi->type = FE_QAM; 234 fi->type = FE_QAM;
203 235
@@ -234,7 +266,7 @@ void fdtv_frontend_init(struct firedtv *fdtv)
234 dev_err(fdtv->device, "no frontend for model type %d\n", 266 dev_err(fdtv->device, "no frontend for model type %d\n",
235 fdtv->type); 267 fdtv->type);
236 } 268 }
237 strcpy(fi->name, fdtv_model_names[fdtv->type]); 269 strcpy(fi->name, name);
238 270
239 fdtv->fe.dvb = &fdtv->adapter; 271 fdtv->fe.dvb = &fdtv->adapter;
240 fdtv->fe.sec_priv = fdtv; 272 fdtv->fe.sec_priv = fdtv;