diff options
author | Steven Toth <stoth@kernellabs.com> | 2009-08-27 17:08:21 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-09-18 23:15:11 -0400 |
commit | 90e801acb2134d905d98152a919128b9f56bbd33 (patch) | |
tree | 4667dc81ece43eee21a98d8881806b211456e643 /drivers/media/video/saa7164 | |
parent | c64b2f78b7912bad38a73bf892fb6d0da4673c67 (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.c | 24 |
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 = { | |||
61 | static struct tda18271_config hauppauge_hvr22x0_tuner_config = { | 61 | static 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 | |||
67 | static 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 | ||
66 | static struct s5h1411_config hauppauge_s5h1411_config = { | 74 | static 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; |