Lines Matching defs:state
51 static int m88rs2000_writereg(struct m88rs2000_state *state,
57 .addr = state->config->demod_addr,
63 ret = i2c_transfer(state->i2c, &msg, 1);
72 static u8 m88rs2000_readreg(struct m88rs2000_state *state, u8 reg)
80 .addr = state->config->demod_addr,
85 .addr = state->config->demod_addr,
92 ret = i2c_transfer(state->i2c, msg, 2);
103 struct m88rs2000_state *state = fe->demodulator_priv;
107 reg = m88rs2000_readreg(state, 0x86);
121 struct m88rs2000_state *state = fe->demodulator_priv;
136 ret = m88rs2000_writereg(state, 0x9c, (u8)(tmp >> 4));
138 reg = m88rs2000_readreg(state, 0x9d);
142 ret |= m88rs2000_writereg(state, 0x9d, reg);
149 struct m88rs2000_state *state = fe->demodulator_priv;
171 ret = m88rs2000_writereg(state, 0x93, b[2]);
172 ret |= m88rs2000_writereg(state, 0x94, b[1]);
173 ret |= m88rs2000_writereg(state, 0x95, b[0]);
176 ret |= m88rs2000_writereg(state, 0xa0, 0x20);
178 ret |= m88rs2000_writereg(state, 0xa0, 0x60);
180 ret |= m88rs2000_writereg(state, 0xa1, 0xe0);
183 ret |= m88rs2000_writereg(state, 0xa3, 0x20);
185 ret |= m88rs2000_writereg(state, 0xa3, 0x98);
187 ret |= m88rs2000_writereg(state, 0xa3, 0x90);
196 struct m88rs2000_state *state = fe->demodulator_priv;
201 m88rs2000_writereg(state, 0x9a, 0x30);
202 reg = m88rs2000_readreg(state, 0xb2);
204 m88rs2000_writereg(state, 0xb2, reg);
206 m88rs2000_writereg(state, 0xb3 + i, m->msg[i]);
208 reg = m88rs2000_readreg(state, 0xb1);
212 m88rs2000_writereg(state, 0xb1, reg);
215 if ((m88rs2000_readreg(state, 0xb1) & 0x40) == 0x0)
220 reg = m88rs2000_readreg(state, 0xb1);
224 m88rs2000_writereg(state, 0xb1, reg);
227 reg = m88rs2000_readreg(state, 0xb2);
230 m88rs2000_writereg(state, 0xb2, reg);
231 m88rs2000_writereg(state, 0x9a, 0xb0);
240 struct m88rs2000_state *state = fe->demodulator_priv;
243 m88rs2000_writereg(state, 0x9a, 0x30);
245 reg0 = m88rs2000_readreg(state, 0xb1);
246 reg1 = m88rs2000_readreg(state, 0xb2);
248 m88rs2000_writereg(state, 0xb2, reg1);
249 m88rs2000_writereg(state, 0xb1, reg0);
250 m88rs2000_writereg(state, 0x9a, 0xb0);
258 struct m88rs2000_state *state = fe->demodulator_priv;
260 m88rs2000_writereg(state, 0x9a, 0x30);
261 reg0 = m88rs2000_readreg(state, 0xb1);
262 reg1 = m88rs2000_readreg(state, 0xb2);
277 m88rs2000_writereg(state, 0xb2, reg1);
278 m88rs2000_writereg(state, 0xb1, reg0);
279 m88rs2000_writereg(state, 0x9a, 0xb0);
372 static int m88rs2000_tab_set(struct m88rs2000_state *state,
383 ret = m88rs2000_writereg(state, tab[i].reg,
407 struct m88rs2000_state *state = fe->demodulator_priv;
410 data = m88rs2000_readreg(state, 0xb2);
425 m88rs2000_writereg(state, 0xb2, data);
432 struct m88rs2000_state *state = fe->demodulator_priv;
437 if (state->config->inittab)
438 ret = m88rs2000_tab_set(state,
439 (struct inittab *)state->config->inittab);
441 ret = m88rs2000_tab_set(state, m88rs2000_setup);
448 struct m88rs2000_state *state = fe->demodulator_priv;
451 ret = m88rs2000_tab_set(state, m88rs2000_shutdown);
458 struct m88rs2000_state *state = fe->demodulator_priv;
459 u8 reg = m88rs2000_readreg(state, 0x8c);
466 if (state->config->set_ts_params)
467 state->config->set_ts_params(fe, CALL_IS_READ);
474 struct m88rs2000_state *state = fe->demodulator_priv;
477 m88rs2000_writereg(state, 0x9a, 0x30);
478 tmp0 = m88rs2000_readreg(state, 0xd8);
480 m88rs2000_writereg(state, 0x9a, 0xb0);
485 *ber = (m88rs2000_readreg(state, 0xd7) << 8) |
486 m88rs2000_readreg(state, 0xd6);
488 tmp1 = m88rs2000_readreg(state, 0xd9);
489 m88rs2000_writereg(state, 0xd9, (tmp1 & ~7) | 4);
491 m88rs2000_writereg(state, 0xd8, (tmp0 & ~8) | 0x30);
492 m88rs2000_writereg(state, 0xd8, (tmp0 & ~8) | 0x30);
493 m88rs2000_writereg(state, 0x9a, 0xb0);
509 struct m88rs2000_state *state = fe->demodulator_priv;
511 *snr = 512 * m88rs2000_readreg(state, 0x65);
518 struct m88rs2000_state *state = fe->demodulator_priv;
521 *ucblocks = (m88rs2000_readreg(state, 0xd5) << 8) |
522 m88rs2000_readreg(state, 0xd4);
523 tmp = m88rs2000_readreg(state, 0xd8);
524 m88rs2000_writereg(state, 0xd8, tmp & ~0x20);
526 m88rs2000_writereg(state, 0xd8, tmp | 0x20);
527 m88rs2000_writereg(state, 0xd8, tmp | 0x20);
532 static int m88rs2000_set_fec(struct m88rs2000_state *state,
559 reg = m88rs2000_readreg(state, 0x70);
561 ret = m88rs2000_writereg(state, 0x70, reg | fec_set);
563 ret |= m88rs2000_writereg(state, 0x76, 0x8);
568 static enum fe_code_rate m88rs2000_get_fec(struct m88rs2000_state *state)
571 m88rs2000_writereg(state, 0x9a, 0x30);
572 reg = m88rs2000_readreg(state, 0x76);
573 m88rs2000_writereg(state, 0x9a, 0xb0);
598 struct m88rs2000_state *state = fe->demodulator_priv;
606 state->no_lock_count = 0;
635 ret = m88rs2000_writereg(state, 0x86, 0xc2);
637 ret = m88rs2000_writereg(state, 0x86, 0xc6);
645 ret = m88rs2000_writereg(state, 0xf1, 0xa4);
647 ret = m88rs2000_writereg(state, 0xf1, 0xbf);
649 ret |= m88rs2000_tab_set(state, fe_reset);
654 ret = m88rs2000_set_fec(state, c->fec_inner);
655 ret |= m88rs2000_writereg(state, 0x85, 0x1);
656 ret |= m88rs2000_writereg(state, 0x8a, 0xbf);
657 ret |= m88rs2000_writereg(state, 0x8d, 0x1e);
658 ret |= m88rs2000_writereg(state, 0x90, 0xf1);
659 ret |= m88rs2000_writereg(state, 0x91, 0x08);
670 ret = m88rs2000_tab_set(state, fe_trigger);
675 reg = m88rs2000_readreg(state, 0x8c);
680 state->no_lock_count++;
681 if (state->no_lock_count == 15) {
682 reg = m88rs2000_readreg(state, 0x70);
684 m88rs2000_writereg(state, 0x70, reg);
685 state->no_lock_count = 0;
691 state->fec_inner = m88rs2000_get_fec(state);
693 reg = m88rs2000_readreg(state, 0x65);
696 state->tuner_frequency = c->frequency;
697 state->symbol_rate = c->symbol_rate;
704 struct m88rs2000_state *state = fe->demodulator_priv;
706 c->fec_inner = state->fec_inner;
707 c->frequency = state->tuner_frequency;
708 c->symbol_rate = state->symbol_rate;
730 struct m88rs2000_state *state = fe->demodulator_priv;
733 m88rs2000_writereg(state, 0x81, 0x84);
735 m88rs2000_writereg(state, 0x81, 0x81);
742 struct m88rs2000_state *state = fe->demodulator_priv;
743 kfree(state);
785 struct m88rs2000_state *state = NULL;
787 /* allocate memory for the internal state */
788 state = kzalloc(sizeof(struct m88rs2000_state), GFP_KERNEL);
789 if (state == NULL)
792 /* setup the state */
793 state->config = config;
794 state->i2c = i2c;
795 state->tuner_frequency = 0;
796 state->symbol_rate = 0;
797 state->fec_inner = 0;
800 memcpy(&state->frontend.ops, &m88rs2000_ops,
802 state->frontend.demodulator_priv = state;
803 return &state->frontend;
806 kfree(state);