Lines Matching refs:state

70 static int cx22700_writereg (struct cx22700_state* state, u8 reg, u8 data)  in cx22700_writereg()  argument
74 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; in cx22700_writereg()
78 ret = i2c_transfer (state->i2c, &msg, 1); in cx22700_writereg()
87 static int cx22700_readreg (struct cx22700_state* state, u8 reg) in cx22700_readreg() argument
92 …struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 1 … in cx22700_readreg()
93 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; in cx22700_readreg()
97 ret = i2c_transfer (state->i2c, msg, 2); in cx22700_readreg()
104 static int cx22700_set_inversion (struct cx22700_state* state, int inversion) in cx22700_set_inversion() argument
114 val = cx22700_readreg (state, 0x09); in cx22700_set_inversion()
115 return cx22700_writereg (state, 0x09, val | 0x01); in cx22700_set_inversion()
117 val = cx22700_readreg (state, 0x09); in cx22700_set_inversion()
118 return cx22700_writereg (state, 0x09, val & 0xfe); in cx22700_set_inversion()
124 static int cx22700_set_tps(struct cx22700_state *state, in cx22700_set_tps() argument
163 cx22700_writereg (state, 0x09, cx22700_readreg (state, 0x09 | 0x10)); in cx22700_set_tps()
165 cx22700_writereg (state, 0x09, cx22700_readreg (state, 0x09 & ~0x10)); in cx22700_set_tps()
170 cx22700_writereg (state, 0x04, val); in cx22700_set_tps()
178 cx22700_writereg (state, 0x05, val); in cx22700_set_tps()
183 cx22700_writereg (state, 0x06, val); in cx22700_set_tps()
185 cx22700_writereg (state, 0x08, 0x04 | 0x02); /* use user tps parameters */ in cx22700_set_tps()
186 cx22700_writereg (state, 0x08, 0x04); /* restart acquisition */ in cx22700_set_tps()
191 static int cx22700_get_tps(struct cx22700_state *state, in cx22700_get_tps() argument
202 if (!(cx22700_readreg(state, 0x07) & 0x20)) /* tps valid? */ in cx22700_get_tps()
205 val = cx22700_readreg (state, 0x01); in cx22700_get_tps()
217 val = cx22700_readreg (state, 0x02); in cx22700_get_tps()
229 val = cx22700_readreg (state, 0x03); in cx22700_get_tps()
239 { struct cx22700_state* state = fe->demodulator_priv; in cx22700_init() local
244 cx22700_writereg (state, 0x00, 0x02); /* soft reset */ in cx22700_init()
245 cx22700_writereg (state, 0x00, 0x00); in cx22700_init()
250 cx22700_writereg (state, init_tab[i], init_tab[i+1]); in cx22700_init()
252 cx22700_writereg (state, 0x00, 0x01); in cx22700_init()
259 struct cx22700_state* state = fe->demodulator_priv; in cx22700_read_status() local
261 u16 rs_ber = (cx22700_readreg (state, 0x0d) << 9) in cx22700_read_status()
262 | (cx22700_readreg (state, 0x0e) << 1); in cx22700_read_status()
263 u8 sync = cx22700_readreg (state, 0x07); in cx22700_read_status()
287 struct cx22700_state* state = fe->demodulator_priv; in cx22700_read_ber() local
289 *ber = cx22700_readreg (state, 0x0c) & 0x7f; in cx22700_read_ber()
290 cx22700_writereg (state, 0x0c, 0x00); in cx22700_read_ber()
297 struct cx22700_state* state = fe->demodulator_priv; in cx22700_read_signal_strength() local
299 u16 rs_ber = (cx22700_readreg (state, 0x0d) << 9) in cx22700_read_signal_strength()
300 | (cx22700_readreg (state, 0x0e) << 1); in cx22700_read_signal_strength()
308 struct cx22700_state* state = fe->demodulator_priv; in cx22700_read_snr() local
310 u16 rs_ber = (cx22700_readreg (state, 0x0d) << 9) in cx22700_read_snr()
311 | (cx22700_readreg (state, 0x0e) << 1); in cx22700_read_snr()
319 struct cx22700_state* state = fe->demodulator_priv; in cx22700_read_ucblocks() local
321 *ucblocks = cx22700_readreg (state, 0x0f); in cx22700_read_ucblocks()
322 cx22700_writereg (state, 0x0f, 0x00); in cx22700_read_ucblocks()
330 struct cx22700_state* state = fe->demodulator_priv; in cx22700_set_frontend() local
332 cx22700_writereg (state, 0x00, 0x02); /* XXX CHECKME: soft reset*/ in cx22700_set_frontend()
333 cx22700_writereg (state, 0x00, 0x00); in cx22700_set_frontend()
340 cx22700_set_inversion(state, c->inversion); in cx22700_set_frontend()
341 cx22700_set_tps(state, c); in cx22700_set_frontend()
342 cx22700_writereg (state, 0x37, 0x01); /* PAL loop filter off */ in cx22700_set_frontend()
343 cx22700_writereg (state, 0x00, 0x01); /* restart acquire */ in cx22700_set_frontend()
351 struct cx22700_state* state = fe->demodulator_priv; in cx22700_get_frontend() local
352 u8 reg09 = cx22700_readreg (state, 0x09); in cx22700_get_frontend()
355 return cx22700_get_tps(state, c); in cx22700_get_frontend()
360 struct cx22700_state* state = fe->demodulator_priv; in cx22700_i2c_gate_ctrl() local
363 return cx22700_writereg(state, 0x0a, 0x00); in cx22700_i2c_gate_ctrl()
365 return cx22700_writereg(state, 0x0a, 0x01); in cx22700_i2c_gate_ctrl()
379 struct cx22700_state* state = fe->demodulator_priv; in cx22700_release() local
380 kfree(state); in cx22700_release()
388 struct cx22700_state* state = NULL; in cx22700_attach() local
391 state = kzalloc(sizeof(struct cx22700_state), GFP_KERNEL); in cx22700_attach()
392 if (state == NULL) goto error; in cx22700_attach()
395 state->config = config; in cx22700_attach()
396 state->i2c = i2c; in cx22700_attach()
399 if (cx22700_readreg(state, 0x07) < 0) goto error; in cx22700_attach()
402 memcpy(&state->frontend.ops, &cx22700_ops, sizeof(struct dvb_frontend_ops)); in cx22700_attach()
403 state->frontend.demodulator_priv = state; in cx22700_attach()
404 return &state->frontend; in cx22700_attach()
407 kfree(state); in cx22700_attach()