summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2011-12-23 10:25:04 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-12-31 05:33:14 -0500
commitb09cf61dfe444810bbcf0b247a81146d4ef07218 (patch)
tree73a51ec9a940d47ac221b69b47acc9a008160a02
parenta0a9ff7f58c99bad8a57d5cafaa29b86cfda6186 (diff)
[media] saa7134: use DVBv5 parameters on set_params()
Instead of using DVBv3 parameters, rely on DVBv5 parameters to set the tuner Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/saa7134/saa7134-dvb.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
index 1e4ef1669887..5fdb8455fe8a 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -186,6 +186,7 @@ static int mt352_avermedia_xc3028_init(struct dvb_frontend *fe)
186static int mt352_pinnacle_tuner_set_params(struct dvb_frontend* fe, 186static int mt352_pinnacle_tuner_set_params(struct dvb_frontend* fe,
187 struct dvb_frontend_parameters* params) 187 struct dvb_frontend_parameters* params)
188{ 188{
189 struct dtv_frontend_properties *c = &fe->dtv_property_cache;
189 u8 off[] = { 0x00, 0xf1}; 190 u8 off[] = { 0x00, 0xf1};
190 u8 on[] = { 0x00, 0x71}; 191 u8 on[] = { 0x00, 0x71};
191 struct i2c_msg msg = {.addr=0x43, .flags=0, .buf=off, .len = sizeof(off)}; 192 struct i2c_msg msg = {.addr=0x43, .flags=0, .buf=off, .len = sizeof(off)};
@@ -196,7 +197,7 @@ static int mt352_pinnacle_tuner_set_params(struct dvb_frontend* fe,
196 /* set frequency (mt2050) */ 197 /* set frequency (mt2050) */
197 f.tuner = 0; 198 f.tuner = 0;
198 f.type = V4L2_TUNER_DIGITAL_TV; 199 f.type = V4L2_TUNER_DIGITAL_TV;
199 f.frequency = params->frequency / 1000 * 16 / 1000; 200 f.frequency = c->frequency / 1000 * 16 / 1000;
200 if (fe->ops.i2c_gate_ctrl) 201 if (fe->ops.i2c_gate_ctrl)
201 fe->ops.i2c_gate_ctrl(fe, 1); 202 fe->ops.i2c_gate_ctrl(fe, 1);
202 i2c_transfer(&dev->i2c_adap, &msg, 1); 203 i2c_transfer(&dev->i2c_adap, &msg, 1);
@@ -289,6 +290,7 @@ static int philips_tda1004x_request_firmware(struct dvb_frontend *fe,
289 290
290static int philips_tda6651_pll_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) 291static int philips_tda6651_pll_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *params)
291{ 292{
293 struct dtv_frontend_properties *c = &fe->dtv_property_cache;
292 struct saa7134_dev *dev = fe->dvb->priv; 294 struct saa7134_dev *dev = fe->dvb->priv;
293 struct tda1004x_state *state = fe->demodulator_priv; 295 struct tda1004x_state *state = fe->demodulator_priv;
294 u8 addr = state->config->tuner_address; 296 u8 addr = state->config->tuner_address;
@@ -299,7 +301,7 @@ static int philips_tda6651_pll_set(struct dvb_frontend *fe, struct dvb_frontend_
299 u8 band, cp, filter; 301 u8 band, cp, filter;
300 302
301 /* determine charge pump */ 303 /* determine charge pump */
302 tuner_frequency = params->frequency + 36166000; 304 tuner_frequency = c->frequency + 36166000;
303 if (tuner_frequency < 87000000) 305 if (tuner_frequency < 87000000)
304 return -EINVAL; 306 return -EINVAL;
305 else if (tuner_frequency < 130000000) 307 else if (tuner_frequency < 130000000)
@@ -324,28 +326,28 @@ static int philips_tda6651_pll_set(struct dvb_frontend *fe, struct dvb_frontend_
324 return -EINVAL; 326 return -EINVAL;
325 327
326 /* determine band */ 328 /* determine band */
327 if (params->frequency < 49000000) 329 if (c->frequency < 49000000)
328 return -EINVAL; 330 return -EINVAL;
329 else if (params->frequency < 161000000) 331 else if (c->frequency < 161000000)
330 band = 1; 332 band = 1;
331 else if (params->frequency < 444000000) 333 else if (c->frequency < 444000000)
332 band = 2; 334 band = 2;
333 else if (params->frequency < 861000000) 335 else if (c->frequency < 861000000)
334 band = 4; 336 band = 4;
335 else 337 else
336 return -EINVAL; 338 return -EINVAL;
337 339
338 /* setup PLL filter */ 340 /* setup PLL filter */
339 switch (params->u.ofdm.bandwidth) { 341 switch (c->bandwidth_hz) {
340 case BANDWIDTH_6_MHZ: 342 case 6000000:
341 filter = 0; 343 filter = 0;
342 break; 344 break;
343 345
344 case BANDWIDTH_7_MHZ: 346 case 7000000:
345 filter = 0; 347 filter = 0;
346 break; 348 break;
347 349
348 case BANDWIDTH_8_MHZ: 350 case 8000000:
349 filter = 1; 351 filter = 1;
350 break; 352 break;
351 353
@@ -356,7 +358,7 @@ static int philips_tda6651_pll_set(struct dvb_frontend *fe, struct dvb_frontend_
356 /* calculate divisor 358 /* calculate divisor
357 * ((36166000+((1000000/6)/2)) + Finput)/(1000000/6) 359 * ((36166000+((1000000/6)/2)) + Finput)/(1000000/6)
358 */ 360 */
359 tuner_frequency = (((params->frequency / 1000) * 6) + 217496) / 1000; 361 tuner_frequency = (((c->frequency / 1000) * 6) + 217496) / 1000;
360 362
361 /* setup tuner buffer */ 363 /* setup tuner buffer */
362 tuner_buf[0] = (tuner_frequency >> 8) & 0x7f; 364 tuner_buf[0] = (tuner_frequency >> 8) & 0x7f;