Lines Matching defs:state
58 static int cx22700_writereg (struct cx22700_state* state, u8 reg, u8 data)
62 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 };
66 ret = i2c_transfer (state->i2c, &msg, 1);
75 static int cx22700_readreg (struct cx22700_state* state, u8 reg)
80 struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 1 },
81 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } };
85 ret = i2c_transfer (state->i2c, msg, 2);
92 static int cx22700_set_inversion (struct cx22700_state* state, int inversion)
102 val = cx22700_readreg (state, 0x09);
103 return cx22700_writereg (state, 0x09, val | 0x01);
105 val = cx22700_readreg (state, 0x09);
106 return cx22700_writereg (state, 0x09, val & 0xfe);
112 static int cx22700_set_tps(struct cx22700_state *state,
151 cx22700_writereg (state, 0x09, cx22700_readreg (state, 0x09 | 0x10));
153 cx22700_writereg (state, 0x09, cx22700_readreg (state, 0x09 & ~0x10));
158 cx22700_writereg (state, 0x04, val);
166 cx22700_writereg (state, 0x05, val);
171 cx22700_writereg (state, 0x06, val);
173 cx22700_writereg (state, 0x08, 0x04 | 0x02); /* use user tps parameters */
174 cx22700_writereg (state, 0x08, 0x04); /* restart acquisition */
179 static int cx22700_get_tps(struct cx22700_state *state,
190 if (!(cx22700_readreg(state, 0x07) & 0x20)) /* tps valid? */
193 val = cx22700_readreg (state, 0x01);
205 val = cx22700_readreg (state, 0x02);
217 val = cx22700_readreg (state, 0x03);
227 { struct cx22700_state* state = fe->demodulator_priv;
232 cx22700_writereg (state, 0x00, 0x02); /* soft reset */
233 cx22700_writereg (state, 0x00, 0x00);
238 cx22700_writereg (state, init_tab[i], init_tab[i+1]);
240 cx22700_writereg (state, 0x00, 0x01);
247 struct cx22700_state* state = fe->demodulator_priv;
249 u16 rs_ber = (cx22700_readreg (state, 0x0d) << 9)
250 | (cx22700_readreg (state, 0x0e) << 1);
251 u8 sync = cx22700_readreg (state, 0x07);
275 struct cx22700_state* state = fe->demodulator_priv;
277 *ber = cx22700_readreg (state, 0x0c) & 0x7f;
278 cx22700_writereg (state, 0x0c, 0x00);
285 struct cx22700_state* state = fe->demodulator_priv;
287 u16 rs_ber = (cx22700_readreg (state, 0x0d) << 9)
288 | (cx22700_readreg (state, 0x0e) << 1);
296 struct cx22700_state* state = fe->demodulator_priv;
298 u16 rs_ber = (cx22700_readreg (state, 0x0d) << 9)
299 | (cx22700_readreg (state, 0x0e) << 1);
307 struct cx22700_state* state = fe->demodulator_priv;
309 *ucblocks = cx22700_readreg (state, 0x0f);
310 cx22700_writereg (state, 0x0f, 0x00);
318 struct cx22700_state* state = fe->demodulator_priv;
320 cx22700_writereg (state, 0x00, 0x02); /* XXX CHECKME: soft reset*/
321 cx22700_writereg (state, 0x00, 0x00);
328 cx22700_set_inversion(state, c->inversion);
329 cx22700_set_tps(state, c);
330 cx22700_writereg (state, 0x37, 0x01); /* PAL loop filter off */
331 cx22700_writereg (state, 0x00, 0x01); /* restart acquire */
339 struct cx22700_state* state = fe->demodulator_priv;
340 u8 reg09 = cx22700_readreg (state, 0x09);
343 return cx22700_get_tps(state, c);
348 struct cx22700_state* state = fe->demodulator_priv;
351 return cx22700_writereg(state, 0x0a, 0x00);
353 return cx22700_writereg(state, 0x0a, 0x01);
367 struct cx22700_state* state = fe->demodulator_priv;
368 kfree(state);
376 struct cx22700_state* state = NULL;
378 /* allocate memory for the internal state */
379 state = kzalloc(sizeof(struct cx22700_state), GFP_KERNEL);
380 if (state == NULL) goto error;
382 /* setup the state */
383 state->config = config;
384 state->i2c = i2c;
387 if (cx22700_readreg(state, 0x07) < 0) goto error;
390 memcpy(&state->frontend.ops, &cx22700_ops, sizeof(struct dvb_frontend_ops));
391 state->frontend.demodulator_priv = state;
392 return &state->frontend;
395 kfree(state);