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
201 if (!(cx22700_readreg(state, 0x07) & 0x20)) /* tps valid? */ in cx22700_get_tps()
204 val = cx22700_readreg (state, 0x01); in cx22700_get_tps()
216 val = cx22700_readreg (state, 0x02); in cx22700_get_tps()
228 val = cx22700_readreg (state, 0x03); in cx22700_get_tps()
238 { struct cx22700_state* state = fe->demodulator_priv; in cx22700_init() local
243 cx22700_writereg (state, 0x00, 0x02); /* soft reset */ in cx22700_init()
244 cx22700_writereg (state, 0x00, 0x00); in cx22700_init()
249 cx22700_writereg (state, init_tab[i], init_tab[i+1]); in cx22700_init()
251 cx22700_writereg (state, 0x00, 0x01); in cx22700_init()
258 struct cx22700_state* state = fe->demodulator_priv; in cx22700_read_status() local
260 u16 rs_ber = (cx22700_readreg (state, 0x0d) << 9) in cx22700_read_status()
261 | (cx22700_readreg (state, 0x0e) << 1); in cx22700_read_status()
262 u8 sync = cx22700_readreg (state, 0x07); in cx22700_read_status()
286 struct cx22700_state* state = fe->demodulator_priv; in cx22700_read_ber() local
288 *ber = cx22700_readreg (state, 0x0c) & 0x7f; in cx22700_read_ber()
289 cx22700_writereg (state, 0x0c, 0x00); in cx22700_read_ber()
296 struct cx22700_state* state = fe->demodulator_priv; in cx22700_read_signal_strength() local
298 u16 rs_ber = (cx22700_readreg (state, 0x0d) << 9) in cx22700_read_signal_strength()
299 | (cx22700_readreg (state, 0x0e) << 1); in cx22700_read_signal_strength()
307 struct cx22700_state* state = fe->demodulator_priv; in cx22700_read_snr() local
309 u16 rs_ber = (cx22700_readreg (state, 0x0d) << 9) in cx22700_read_snr()
310 | (cx22700_readreg (state, 0x0e) << 1); in cx22700_read_snr()
318 struct cx22700_state* state = fe->demodulator_priv; in cx22700_read_ucblocks() local
320 *ucblocks = cx22700_readreg (state, 0x0f); in cx22700_read_ucblocks()
321 cx22700_writereg (state, 0x0f, 0x00); in cx22700_read_ucblocks()
329 struct cx22700_state* state = fe->demodulator_priv; in cx22700_set_frontend() local
331 cx22700_writereg (state, 0x00, 0x02); /* XXX CHECKME: soft reset*/ in cx22700_set_frontend()
332 cx22700_writereg (state, 0x00, 0x00); in cx22700_set_frontend()
339 cx22700_set_inversion(state, c->inversion); in cx22700_set_frontend()
340 cx22700_set_tps(state, c); in cx22700_set_frontend()
341 cx22700_writereg (state, 0x37, 0x01); /* PAL loop filter off */ in cx22700_set_frontend()
342 cx22700_writereg (state, 0x00, 0x01); /* restart acquire */ in cx22700_set_frontend()
350 struct cx22700_state* state = fe->demodulator_priv; in cx22700_get_frontend() local
351 u8 reg09 = cx22700_readreg (state, 0x09); in cx22700_get_frontend()
354 return cx22700_get_tps(state, c); in cx22700_get_frontend()
359 struct cx22700_state* state = fe->demodulator_priv; in cx22700_i2c_gate_ctrl() local
362 return cx22700_writereg(state, 0x0a, 0x00); in cx22700_i2c_gate_ctrl()
364 return cx22700_writereg(state, 0x0a, 0x01); in cx22700_i2c_gate_ctrl()
378 struct cx22700_state* state = fe->demodulator_priv; in cx22700_release() local
379 kfree(state); in cx22700_release()
387 struct cx22700_state* state = NULL; in cx22700_attach() local
390 state = kzalloc(sizeof(struct cx22700_state), GFP_KERNEL); in cx22700_attach()
391 if (state == NULL) goto error; in cx22700_attach()
394 state->config = config; in cx22700_attach()
395 state->i2c = i2c; in cx22700_attach()
398 if (cx22700_readreg(state, 0x07) < 0) goto error; in cx22700_attach()
401 memcpy(&state->frontend.ops, &cx22700_ops, sizeof(struct dvb_frontend_ops)); in cx22700_attach()
402 state->frontend.demodulator_priv = state; in cx22700_attach()
403 return &state->frontend; in cx22700_attach()
406 kfree(state); in cx22700_attach()