diff options
author | Hartmut Hackmann <hartmut.hackmann@t\-online.de> | 2006-03-03 10:09:26 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-03-03 10:09:26 -0500 |
commit | df8cf70683ba3109756e20c50e0fefe24736564f (patch) | |
tree | ac156d40651bf23f1ff79a347b77ec357afc86a5 /drivers/media/video/saa7134/saa7134-dvb.c | |
parent | 4a287cfeea7056dc71d2bc352ae490a2a5bcceb0 (diff) |
V4L/DVB (3395): Fixed Pinnacle 300i DVB-T support
- fixed tda9886 port 2 setting
- turned remote control receiver off via saa7134 GPIO to avoid i2c hangs
- modified tda9886 client calls to direct i2c access to allow proper return
to analog mode
- allow mode change to V4L2_TUNER_DIGITAL_TV in tuner VIDIOC_S_FREQUENCY
client call
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-dvb.c')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index 757796259cf9..5969481ed4fb 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
@@ -110,6 +110,7 @@ static int mt352_pinnacle_init(struct dvb_frontend* fe) | |||
110 | mt352_write(fe, fsm_ctl_cfg, sizeof(fsm_ctl_cfg)); | 110 | mt352_write(fe, fsm_ctl_cfg, sizeof(fsm_ctl_cfg)); |
111 | mt352_write(fe, scan_ctl_cfg, sizeof(scan_ctl_cfg)); | 111 | mt352_write(fe, scan_ctl_cfg, sizeof(scan_ctl_cfg)); |
112 | mt352_write(fe, irq_cfg, sizeof(irq_cfg)); | 112 | mt352_write(fe, irq_cfg, sizeof(irq_cfg)); |
113 | |||
113 | return 0; | 114 | return 0; |
114 | } | 115 | } |
115 | 116 | ||
@@ -135,8 +136,10 @@ static int mt352_pinnacle_pll_set(struct dvb_frontend* fe, | |||
135 | struct dvb_frontend_parameters* params, | 136 | struct dvb_frontend_parameters* params, |
136 | u8* pllbuf) | 137 | u8* pllbuf) |
137 | { | 138 | { |
138 | static int on = TDA9887_PRESENT | TDA9887_PORT2_INACTIVE; | 139 | u8 off[] = { 0x00, 0xf1}; |
139 | static int off = TDA9887_PRESENT | TDA9887_PORT2_ACTIVE; | 140 | u8 on[] = { 0x00, 0x71}; |
141 | struct i2c_msg msg = {.addr=0x43, .flags=0, .buf=off, .len = sizeof(off)}; | ||
142 | |||
140 | struct saa7134_dev *dev = fe->dvb->priv; | 143 | struct saa7134_dev *dev = fe->dvb->priv; |
141 | struct v4l2_frequency f; | 144 | struct v4l2_frequency f; |
142 | 145 | ||
@@ -144,9 +147,10 @@ static int mt352_pinnacle_pll_set(struct dvb_frontend* fe, | |||
144 | f.tuner = 0; | 147 | f.tuner = 0; |
145 | f.type = V4L2_TUNER_DIGITAL_TV; | 148 | f.type = V4L2_TUNER_DIGITAL_TV; |
146 | f.frequency = params->frequency / 1000 * 16 / 1000; | 149 | f.frequency = params->frequency / 1000 * 16 / 1000; |
147 | saa7134_i2c_call_clients(dev,TDA9887_SET_CONFIG,&on); | 150 | i2c_transfer(&dev->i2c_adap, &msg, 1); |
148 | saa7134_i2c_call_clients(dev,VIDIOC_S_FREQUENCY,&f); | 151 | saa7134_i2c_call_clients(dev,VIDIOC_S_FREQUENCY,&f); |
149 | saa7134_i2c_call_clients(dev,TDA9887_SET_CONFIG,&off); | 152 | msg.buf = on; |
153 | i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
150 | 154 | ||
151 | pinnacle_antenna_pwr(dev, antenna_pwr); | 155 | pinnacle_antenna_pwr(dev, antenna_pwr); |
152 | 156 | ||