• Home
  • Raw
  • Download

Lines Matching +full:frame +full:- +full:inversion

2     TDA10021  - Single Chip Cable Channel Receiver driver module
3 used on the Siemens DVB-C cards
75 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; in _tda10021_writereg()
78 ret = i2c_transfer (state->i2c, &msg, 1); in _tda10021_writereg()
81 state->frontend.dvb->num, __func__, reg, data, ret); in _tda10021_writereg()
84 return (ret != 1) ? -EREMOTEIO : 0; in _tda10021_writereg()
91 …struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 1 … in tda10021_readreg()
92 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; in tda10021_readreg()
95 ret = i2c_transfer (state->i2c, msg, 2); in tda10021_readreg()
107 struct i2c_msg msg = {.addr=state->config->demod_address, .flags=0, .buf=buf, .len=2}; in lock_tuner()
109 if(i2c_transfer(state->i2c, &msg, 1) != 1) in lock_tuner()
112 return -EREMOTEIO; in lock_tuner()
121 struct i2c_msg msg_post={.addr=state->config->demod_address, .flags=0, .buf=buf, .len=2}; in unlock_tuner()
123 if(i2c_transfer(state->i2c, &msg_post, 1) != 1) in unlock_tuner()
126 return -EREMOTEIO; in unlock_tuner()
132 enum fe_spectral_inversion inversion) in tda10021_setup_reg0() argument
134 reg0 |= state->reg0 & 0x63; in tda10021_setup_reg0()
136 if ((INVERSION_ON == inversion) ^ (state->config->invert == 0)) in tda10021_setup_reg0()
144 state->reg0 = reg0; in tda10021_setup_reg0()
203 struct tda10021_state* state = fe->demodulator_priv; in tda10021_init()
206 dprintk("DVB: TDA10021(%d): init chip\n", fe->adapter->num); in tda10021_init()
213 _tda10021_writereg (state, 0x34, state->pwm); in tda10021_init()
216 //0x2A[3-0] == PDIV -> P multiplaying factor (P=PDIV+1)(default 0) in tda10021_init()
217 //0x2A[4] == BYPPLL -> Power down mode (default 1) in tda10021_init()
218 //0x2A[5] == LCK -> PLL Lock Flag in tda10021_init()
219 //0x2A[6] == POLAXIN -> Polarity of the input reference clock (default 0) in tda10021_init()
232 struct dtv_frontend_properties *c = &fe->dtv_property_cache; in tda10021_set_parameters()
233 u32 delsys = c->delivery_system; in tda10021_set_parameters()
234 unsigned qam = c->modulation; in tda10021_set_parameters()
237 struct tda10021_state* state = fe->demodulator_priv; in tda10021_set_parameters()
256 return -EINVAL; in tda10021_set_parameters()
261 * "if (qam > 5) return -EINVAL;" in tda10021_set_parameters()
275 return -EINVAL; in tda10021_set_parameters()
278 if (c->inversion != INVERSION_ON && c->inversion != INVERSION_OFF) in tda10021_set_parameters()
279 return -EINVAL; in tda10021_set_parameters()
281 /*printk("tda10021: set frequency to %d qam=%d symrate=%d\n", p->frequency,qam,p->symbol_rate);*/ in tda10021_set_parameters()
283 if (fe->ops.tuner_ops.set_params) { in tda10021_set_parameters()
284 fe->ops.tuner_ops.set_params(fe); in tda10021_set_parameters()
285 if (fe->ops.i2c_gate_ctrl) fe->ops.i2c_gate_ctrl(fe, 0); in tda10021_set_parameters()
288 tda10021_set_symbolrate(state, c->symbol_rate); in tda10021_set_parameters()
289 _tda10021_writereg(state, 0x34, state->pwm); in tda10021_set_parameters()
297 * Bit 0 == 0 means roll-off = 0.15 (Annex A) in tda10021_set_parameters()
298 * == 1 means roll-off = 0.13 (Annex C) in tda10021_set_parameters()
305 tda10021_setup_reg0(state, qam_params[qam].conf, c->inversion); in tda10021_set_parameters()
313 struct tda10021_state* state = fe->demodulator_priv; in tda10021_read_status()
317 //0x11[0] == EQALGO -> Equalizer algorithms state in tda10021_read_status()
318 //0x11[1] == CARLOCK -> Carrier locked in tda10021_read_status()
319 //0x11[2] == FSYNC -> Frame synchronisation in tda10021_read_status()
320 //0x11[3] == FEL -> Front End locked in tda10021_read_status()
321 //0x11[6] == NODVB -> DVB Mode Information in tda10021_read_status()
338 struct tda10021_state* state = fe->demodulator_priv; in tda10021_read_ber()
352 struct tda10021_state* state = fe->demodulator_priv; in tda10021_read_signal_strength()
366 struct tda10021_state* state = fe->demodulator_priv; in tda10021_read_snr()
376 struct tda10021_state* state = fe->demodulator_priv; in tda10021_read_ucblocks()
392 struct tda10021_state* state = fe->demodulator_priv; in tda10021_get_frontend()
402 state->frontend.dvb->num, afc, in tda10021_get_frontend()
403 -((s32)p->symbol_rate * afc) >> 10); in tda10021_get_frontend()
406 …p->inversion = ((state->reg0 & 0x20) == 0x20) ^ (state->config->invert != 0) ? INVERSION_ON : INVE… in tda10021_get_frontend()
407 p->modulation = ((state->reg0 >> 2) & 7) + QAM_16; in tda10021_get_frontend()
409 p->fec_inner = FEC_NONE; in tda10021_get_frontend()
410 p->frequency = ((p->frequency + 31250) / 62500) * 62500; in tda10021_get_frontend()
413 p->frequency -= ((s32)p->symbol_rate * afc) >> 10; in tda10021_get_frontend()
420 struct tda10021_state* state = fe->demodulator_priv; in tda10021_i2c_gate_ctrl()
432 struct tda10021_state* state = fe->demodulator_priv; in tda10021_sleep()
442 struct tda10021_state* state = fe->demodulator_priv; in tda10021_release()
460 state->config = config; in tda10021_attach()
461 state->i2c = i2c; in tda10021_attach()
462 state->pwm = pwm; in tda10021_attach()
463 state->reg0 = tda10021_inittab[0]; in tda10021_attach()
473 printk("TDA10021: i2c-addr = 0x%02x, id = 0x%02x\n", in tda10021_attach()
474 state->config->demod_address, id); in tda10021_attach()
477 memcpy(&state->frontend.ops, &tda10021_ops, sizeof(struct dvb_frontend_ops)); in tda10021_attach()
478 state->frontend.demodulator_priv = state; in tda10021_attach()
479 return &state->frontend; in tda10021_attach()
489 .name = "Philips TDA10021 DVB-C",
524 MODULE_DESCRIPTION("Philips TDA10021 DVB-C demodulator driver");