aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/saa7164
diff options
context:
space:
mode:
authorSteven Toth <stoth@kernellabs.com>2009-08-27 17:08:21 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-18 23:15:11 -0400
commit90e801acb2134d905d98152a919128b9f56bbd33 (patch)
tree4667dc81ece43eee21a98d8881806b211456e643 /drivers/media/video/saa7164
parentc64b2f78b7912bad38a73bf892fb6d0da4673c67 (diff)
V4L/DVB (12942): SAA7164: HVR2250 changes related to attach time tuner configuration
Ensure that by default all tuners are set correctly to master/slave mode. For all HVR2250's, ensure slave based tuners are caliberated during attach to avoid locking problems on tuner# above channel 91. HVR2200 tuner attach time to be reviewed in a future patch. Signed-off-by: Steven Toth <stoth@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/saa7164')
-rw-r--r--drivers/media/video/saa7164/saa7164-dvb.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/drivers/media/video/saa7164/saa7164-dvb.c b/drivers/media/video/saa7164/saa7164-dvb.c
index 258eab562f42..238efc9149b9 100644
--- a/drivers/media/video/saa7164/saa7164-dvb.c
+++ b/drivers/media/video/saa7164/saa7164-dvb.c
@@ -61,6 +61,14 @@ static struct tda18271_std_map hauppauge_tda18271_std_map = {
61static struct tda18271_config hauppauge_hvr22x0_tuner_config = { 61static struct tda18271_config hauppauge_hvr22x0_tuner_config = {
62 .std_map = &hauppauge_tda18271_std_map, 62 .std_map = &hauppauge_tda18271_std_map,
63 .gate = TDA18271_GATE_ANALOG, 63 .gate = TDA18271_GATE_ANALOG,
64 .role = TDA18271_MASTER,
65};
66
67static struct tda18271_config hauppauge_hvr22x0s_tuner_config = {
68 .std_map = &hauppauge_tda18271_std_map,
69 .gate = TDA18271_GATE_ANALOG,
70 .role = TDA18271_SLAVE,
71 .rf_cal_on_startup = 1
64}; 72};
65 73
66static struct s5h1411_config hauppauge_s5h1411_config = { 74static struct s5h1411_config hauppauge_s5h1411_config = {
@@ -554,10 +562,18 @@ int saa7164_dvb_register(struct saa7164_tsport *port)
554 &i2c_bus->i2c_adap); 562 &i2c_bus->i2c_adap);
555 563
556 if (port->dvb.frontend != NULL) { 564 if (port->dvb.frontend != NULL) {
557 /* TODO: addr is in the card struct */ 565 if (port->nr == 0) {
558 dvb_attach(tda18271_attach, port->dvb.frontend, 566 /* Master TDA18271 */
559 0xc0 >> 1, &i2c_bus->i2c_adap, 567 /* TODO: addr is in the card struct */
560 &hauppauge_hvr22x0_tuner_config); 568 dvb_attach(tda18271_attach, port->dvb.frontend,
569 0xc0 >> 1, &i2c_bus->i2c_adap,
570 &hauppauge_hvr22x0_tuner_config);
571 } else {
572 /* Slave TDA18271 */
573 dvb_attach(tda18271_attach, port->dvb.frontend,
574 0xc0 >> 1, &i2c_bus->i2c_adap,
575 &hauppauge_hvr22x0s_tuner_config);
576 }
561 } 577 }
562 578
563 break; 579 break;