Lines Matching refs:fe

29 	struct dvb_frontend *fe;  member
48 static int ts2020_release(struct dvb_frontend *fe) in ts2020_release() argument
50 kfree(fe->tuner_priv); in ts2020_release()
51 fe->tuner_priv = NULL; in ts2020_release()
55 static int ts2020_writereg(struct dvb_frontend *fe, int reg, int data) in ts2020_writereg() argument
57 struct ts2020_priv *priv = fe->tuner_priv; in ts2020_writereg()
69 if (fe->ops.i2c_gate_ctrl) in ts2020_writereg()
70 fe->ops.i2c_gate_ctrl(fe, 1); in ts2020_writereg()
80 if (fe->ops.i2c_gate_ctrl) in ts2020_writereg()
81 fe->ops.i2c_gate_ctrl(fe, 0); in ts2020_writereg()
86 static int ts2020_readreg(struct dvb_frontend *fe, u8 reg) in ts2020_readreg() argument
88 struct ts2020_priv *priv = fe->tuner_priv; in ts2020_readreg()
106 if (fe->ops.i2c_gate_ctrl) in ts2020_readreg()
107 fe->ops.i2c_gate_ctrl(fe, 1); in ts2020_readreg()
117 if (fe->ops.i2c_gate_ctrl) in ts2020_readreg()
118 fe->ops.i2c_gate_ctrl(fe, 0); in ts2020_readreg()
123 static int ts2020_sleep(struct dvb_frontend *fe) in ts2020_sleep() argument
125 struct ts2020_priv *priv = fe->tuner_priv; in ts2020_sleep()
133 return ts2020_writereg(fe, u8tmp, 0x00); in ts2020_sleep()
136 static int ts2020_init(struct dvb_frontend *fe) in ts2020_init() argument
138 struct ts2020_priv *priv = fe->tuner_priv; in ts2020_init()
143 ts2020_writereg(fe, 0x42, 0x73); in ts2020_init()
144 ts2020_writereg(fe, 0x05, priv->clk_out_div); in ts2020_init()
145 ts2020_writereg(fe, 0x20, 0x27); in ts2020_init()
146 ts2020_writereg(fe, 0x07, 0x02); in ts2020_init()
147 ts2020_writereg(fe, 0x11, 0xff); in ts2020_init()
148 ts2020_writereg(fe, 0x60, 0xf9); in ts2020_init()
149 ts2020_writereg(fe, 0x08, 0x01); in ts2020_init()
150 ts2020_writereg(fe, 0x00, 0x41); in ts2020_init()
166 ts2020_writereg(fe, 0x00, 0x01); in ts2020_init()
167 ts2020_writereg(fe, 0x00, 0x03); in ts2020_init()
175 ts2020_writereg(fe, 0x05, priv->clk_out_div); in ts2020_init()
185 ts2020_writereg(fe, 0x42, u8tmp); in ts2020_init()
192 ts2020_writereg(fe, 0x62, u8tmp); in ts2020_init()
195 ts2020_writereg(fe, reg_vals[i].reg, reg_vals[i].val); in ts2020_init()
201 static int ts2020_tuner_gate_ctrl(struct dvb_frontend *fe, u8 offset) in ts2020_tuner_gate_ctrl() argument
204 ret = ts2020_writereg(fe, 0x51, 0x1f - offset); in ts2020_tuner_gate_ctrl()
205 ret |= ts2020_writereg(fe, 0x51, 0x1f); in ts2020_tuner_gate_ctrl()
206 ret |= ts2020_writereg(fe, 0x50, offset); in ts2020_tuner_gate_ctrl()
207 ret |= ts2020_writereg(fe, 0x50, 0x00); in ts2020_tuner_gate_ctrl()
212 static int ts2020_set_tuner_rf(struct dvb_frontend *fe) in ts2020_set_tuner_rf() argument
216 reg = ts2020_readreg(fe, 0x3d); in ts2020_set_tuner_rf()
225 ts2020_writereg(fe, 0x60, reg); in ts2020_set_tuner_rf()
226 reg = ts2020_tuner_gate_ctrl(fe, 0x08); in ts2020_set_tuner_rf()
231 static int ts2020_set_params(struct dvb_frontend *fe) in ts2020_set_params() argument
233 struct dtv_frontend_properties *c = &fe->dtv_property_cache; in ts2020_set_params()
234 struct ts2020_priv *priv = fe->tuner_priv; in ts2020_set_params()
256 ret = ts2020_writereg(fe, 0x10, 0x80 | lo); in ts2020_set_params()
259 ret = ts2020_writereg(fe, 0x10, 0x0b); in ts2020_set_params()
260 ret |= ts2020_writereg(fe, 0x11, 0x40); in ts2020_set_params()
264 ret |= ts2020_writereg(fe, 0x01, (ndiv >> 8) & 0xf); in ts2020_set_params()
265 ret |= ts2020_writereg(fe, 0x02, ndiv & 0xff); in ts2020_set_params()
267 ret |= ts2020_writereg(fe, 0x03, 0x06); in ts2020_set_params()
268 ret |= ts2020_tuner_gate_ctrl(fe, 0x10); in ts2020_set_params()
273 ret = ts2020_writereg(fe, 0x10, lo); in ts2020_set_params()
275 ret |= ts2020_tuner_gate_ctrl(fe, 0x08); in ts2020_set_params()
279 ret |= ts2020_set_tuner_rf(fe); in ts2020_set_params()
282 ret |= ts2020_writereg(fe, 0x04, gdiv28 & 0xff); in ts2020_set_params()
283 ret |= ts2020_tuner_gate_ctrl(fe, 0x04); in ts2020_set_params()
288 ret = ts2020_writereg(fe, 0x25, 0x00); in ts2020_set_params()
289 ret |= ts2020_writereg(fe, 0x27, 0x70); in ts2020_set_params()
290 ret |= ts2020_writereg(fe, 0x41, 0x09); in ts2020_set_params()
291 ret |= ts2020_writereg(fe, 0x08, 0x0b); in ts2020_set_params()
296 value = ts2020_readreg(fe, 0x26); in ts2020_set_params()
330 ret = ts2020_writereg(fe, 0x04, lpf_mxdiv); in ts2020_set_params()
331 ret |= ts2020_writereg(fe, 0x06, nlpf); in ts2020_set_params()
333 ret |= ts2020_tuner_gate_ctrl(fe, 0x04); in ts2020_set_params()
335 ret |= ts2020_tuner_gate_ctrl(fe, 0x01); in ts2020_set_params()
347 static int ts2020_get_frequency(struct dvb_frontend *fe, u32 *frequency) in ts2020_get_frequency() argument
349 struct ts2020_priv *priv = fe->tuner_priv; in ts2020_get_frequency()
355 static int ts2020_get_if_frequency(struct dvb_frontend *fe, u32 *frequency) in ts2020_get_if_frequency() argument
362 static int ts2020_read_signal_strength(struct dvb_frontend *fe, in ts2020_read_signal_strength() argument
368 rfgain = ts2020_readreg(fe, 0x3d) & 0x1f; in ts2020_read_signal_strength()
369 bbgain = ts2020_readreg(fe, 0x21) & 0x1f; in ts2020_read_signal_strength()
401 struct dvb_frontend *ts2020_attach(struct dvb_frontend *fe, in ts2020_attach() argument
417 priv->fe = fe; in ts2020_attach()
418 fe->tuner_priv = priv; in ts2020_attach()
424 if ((0x03 & ts2020_readreg(fe, 0x00)) == 0x00) { in ts2020_attach()
425 ts2020_writereg(fe, 0x00, 0x01); in ts2020_attach()
429 ts2020_writereg(fe, 0x00, 0x03); in ts2020_attach()
433 buf = ts2020_readreg(fe, 0x00); in ts2020_attach()
446 memcpy(&fe->ops.tuner_ops, &ts2020_tuner_ops, in ts2020_attach()
449 return fe; in ts2020_attach()
457 struct dvb_frontend *fe = pdata->fe; in ts2020_probe() local
475 dev->fe = fe; in ts2020_probe()
476 fe->tuner_priv = dev; in ts2020_probe()
479 ret = ts2020_readreg(fe, 0x00); in ts2020_probe()
485 ret = ts2020_writereg(fe, 0x00, 0x01); in ts2020_probe()
492 ret = ts2020_writereg(fe, 0x00, 0x03); in ts2020_probe()
498 ret = ts2020_readreg(fe, 0x00); in ts2020_probe()
533 ret = ts2020_writereg(fe, 0x05, dev->clk_out_div); in ts2020_probe()
545 ret = ts2020_writereg(fe, 0x42, u8tmp); in ts2020_probe()
554 ret = ts2020_writereg(fe, 0x62, u8tmp); in ts2020_probe()
560 ret = ts2020_writereg(fe, 0x00, 0x00); in ts2020_probe()
567 memcpy(&fe->ops.tuner_ops, &ts2020_tuner_ops, in ts2020_probe()
569 fe->ops.tuner_ops.release = NULL; in ts2020_probe()
582 struct dvb_frontend *fe = dev->fe; in ts2020_remove() local
586 memset(&fe->ops.tuner_ops, 0, sizeof(struct dvb_tuner_ops)); in ts2020_remove()
587 fe->tuner_priv = NULL; in ts2020_remove()