diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-12-23 10:25:04 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-12-31 05:33:14 -0500 |
commit | b09cf61dfe444810bbcf0b247a81146d4ef07218 (patch) | |
tree | 73a51ec9a940d47ac221b69b47acc9a008160a02 | |
parent | a0a9ff7f58c99bad8a57d5cafaa29b86cfda6186 (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.c | 24 |
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) | |||
186 | static int mt352_pinnacle_tuner_set_params(struct dvb_frontend* fe, | 186 | static 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 | ||
290 | static int philips_tda6651_pll_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) | 291 | static 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; |