aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2007-06-24 17:14:52 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-07-18 13:24:24 -0400
commitcd2cd0aad0c8d5d29492335307b371f247b7a60f (patch)
tree2fe21541a7a73d245f859597ff5d137a33410dca
parentf1b24397e86c4c5b6984e2e67c17a53cdab14b35 (diff)
V4L/DVB (5799): Or51211: remove hardcoded fcv1236d tuner programming
- Remove hardcoded fcv1236d tuner programmming from or51211.c - Alter dvb-bt8xx for the pcHDTV-2000 to use dvb-pll for fcv1236d support. Thanks to Jarom Hatch <jshatch@gmail.com> for testing this change. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/dvb/bt8xx/dvb-bt8xx.c3
-rw-r--r--drivers/media/dvb/frontends/or51211.c31
2 files changed, 6 insertions, 28 deletions
diff --git a/drivers/media/dvb/bt8xx/dvb-bt8xx.c b/drivers/media/dvb/bt8xx/dvb-bt8xx.c
index 5120af41a818..67613eb6fa3d 100644
--- a/drivers/media/dvb/bt8xx/dvb-bt8xx.c
+++ b/drivers/media/dvb/bt8xx/dvb-bt8xx.c
@@ -692,6 +692,9 @@ static void frontend_init(struct dvb_bt8xx_card *card, u32 type)
692 692
693 case BTTV_BOARD_PC_HDTV: 693 case BTTV_BOARD_PC_HDTV:
694 card->fe = dvb_attach(or51211_attach, &or51211_config, card->i2c_adapter); 694 card->fe = dvb_attach(or51211_attach, &or51211_config, card->i2c_adapter);
695 if (card->fe != NULL)
696 dvb_attach(dvb_pll_attach, card->fe, 0x61,
697 card->i2c_adapter, DVB_PLL_FCV1236D);
695 break; 698 break;
696 } 699 }
697 700
diff --git a/drivers/media/dvb/frontends/or51211.c b/drivers/media/dvb/frontends/or51211.c
index 048d7cfe12d3..f46d5a46683a 100644
--- a/drivers/media/dvb/frontends/or51211.c
+++ b/drivers/media/dvb/frontends/or51211.c
@@ -223,38 +223,13 @@ static int or51211_set_parameters(struct dvb_frontend* fe,
223 struct dvb_frontend_parameters *param) 223 struct dvb_frontend_parameters *param)
224{ 224{
225 struct or51211_state* state = fe->demodulator_priv; 225 struct or51211_state* state = fe->demodulator_priv;
226 u32 freq = 0;
227 u16 tunerfreq = 0;
228 u8 buf[4];
229 226
230 /* Change only if we are actually changing the channel */ 227 /* Change only if we are actually changing the channel */
231 if (state->current_frequency != param->frequency) { 228 if (state->current_frequency != param->frequency) {
232 freq = 44000 + (param->frequency/1000); 229 if (fe->ops.tuner_ops.set_params) {
233 tunerfreq = freq * 16/1000; 230 fe->ops.tuner_ops.set_params(fe, param);
234 231 if (fe->ops.i2c_gate_ctrl) fe->ops.i2c_gate_ctrl(fe, 0);
235 dprintk("set_parameters frequency = %d (tunerfreq = %d)\n",
236 param->frequency,tunerfreq);
237
238 buf[0] = (tunerfreq >> 8) & 0x7F;
239 buf[1] = (tunerfreq & 0xFF);
240 buf[2] = 0x8E;
241
242 if (param->frequency < 157250000) {
243 buf[3] = 0xA0;
244 dprintk("set_parameters VHF low range\n");
245 } else if (param->frequency < 454000000) {
246 buf[3] = 0x90;
247 dprintk("set_parameters VHF high range\n");
248 } else {
249 buf[3] = 0x30;
250 dprintk("set_parameters UHF range\n");
251 } 232 }
252 dprintk("set_parameters tuner bytes: 0x%02x 0x%02x "
253 "0x%02x 0x%02x\n",buf[0],buf[1],buf[2],buf[3]);
254
255 if (i2c_writebytes(state,0xC2>>1,buf,4))
256 printk(KERN_WARNING "or51211:set_parameters error "
257 "writing to tuner\n");
258 233
259 /* Set to ATSC mode */ 234 /* Set to ATSC mode */
260 or51211_setmode(fe,0); 235 or51211_setmode(fe,0);