Lines Matching refs:state
227 static int si21_writeregs(struct si21xx_state *state, u8 reg1, in si21_writeregs() argument
233 .addr = state->config->demod_address, in si21_writeregs()
245 ret = i2c_transfer(state->i2c, &msg, 1); in si21_writeregs()
254 static int si21_writereg(struct si21xx_state *state, u8 reg, u8 data) in si21_writereg() argument
259 .addr = state->config->demod_address, in si21_writereg()
265 ret = i2c_transfer(state->i2c, &msg, 1); in si21_writereg()
276 struct si21xx_state *state = fe->demodulator_priv; in si21_write() local
281 return si21_writereg(state, buf[0], buf[1]); in si21_write()
284 static u8 si21_readreg(struct si21xx_state *state, u8 reg) in si21_readreg() argument
291 .addr = state->config->demod_address, in si21_readreg()
296 .addr = state->config->demod_address, in si21_readreg()
303 ret = i2c_transfer(state->i2c, msg, 2); in si21_readreg()
312 static int si21_readregs(struct si21xx_state *state, u8 reg1, u8 *b, u8 len) in si21_readregs() argument
317 .addr = state->config->demod_address, in si21_readregs()
322 .addr = state->config->demod_address, in si21_readregs()
329 ret = i2c_transfer(state->i2c, msg, 2); in si21_readregs()
337 static int si21xx_wait_diseqc_idle(struct si21xx_state *state, int timeout) in si21xx_wait_diseqc_idle() argument
343 while ((si21_readreg(state, LNB_CTRL_REG_1) & 0x8) == 8) { in si21xx_wait_diseqc_idle()
356 struct si21xx_state *state = fe->demodulator_priv; in si21xx_set_symbolrate() local
372 state->fs; in si21xx_set_symbolrate()
378 si21_writeregs(state, SYM_RATE_REG_L, sym_rate_bytes, 0x03); in si21xx_set_symbolrate()
386 struct si21xx_state *state = fe->demodulator_priv; in si21xx_send_diseqc_msg() local
396 status |= si21_readregs(state, LNB_CTRL_STATUS_REG, &lnb_status, 0x01); in si21xx_send_diseqc_msg()
397 status |= si21_readregs(state, LNB_CTRL_REG_1, &lnb_status, 0x01); in si21xx_send_diseqc_msg()
400 status |= si21_writeregs(state, LNB_FIFO_REGS_0, m->msg, m->msg_len); in si21xx_send_diseqc_msg()
407 status |= si21_writeregs(state, LNB_CTRL_REG_1, &LNB_CTRL_1, 0x01); in si21xx_send_diseqc_msg()
415 struct si21xx_state *state = fe->demodulator_priv; in si21xx_send_diseqc_burst() local
420 if (si21xx_wait_diseqc_idle(state, 100) < 0) in si21xx_send_diseqc_burst()
423 val = (0x80 | si21_readreg(state, 0xc1)); in si21xx_send_diseqc_burst()
424 if (si21_writereg(state, LNB_CTRL_REG_1, in si21xx_send_diseqc_burst()
428 if (si21xx_wait_diseqc_idle(state, 100) < 0) in si21xx_send_diseqc_burst()
431 if (si21_writereg(state, LNB_CTRL_REG_1, val)) in si21xx_send_diseqc_burst()
439 struct si21xx_state *state = fe->demodulator_priv; in si21xx_set_tone() local
443 val = (0x80 | si21_readreg(state, LNB_CTRL_REG_1)); in si21xx_set_tone()
447 return si21_writereg(state, LNB_CTRL_REG_1, val | 0x20); in si21xx_set_tone()
450 return si21_writereg(state, LNB_CTRL_REG_1, (val & ~0x20)); in si21xx_set_tone()
459 struct si21xx_state *state = fe->demodulator_priv; in si21xx_set_voltage() local
467 val = (0x80 | si21_readreg(state, LNB_CTRL_REG_1)); in si21xx_set_voltage()
471 return si21_writereg(state, LNB_CTRL_REG_1, val | 0x40); in si21xx_set_voltage()
474 return si21_writereg(state, LNB_CTRL_REG_1, (val & ~0x40)); in si21xx_set_voltage()
483 struct si21xx_state *state = fe->demodulator_priv; in si21xx_init() local
497 si21_writeregs(state, reg1, &val, 1); in si21xx_init()
502 si21_writeregs(state, SYSTEM_MODE_REG, ®1, 0x01); in si21xx_init()
531 status |= si21_writeregs(state, TS_CTRL_REG_1, reg2, 0x02); in si21xx_init()
541 struct si21xx_state *state = fe->demodulator_priv; in si21_read_status() local
546 u8 signal = si21_readreg(state, ANALOG_AGC_POWER_LEVEL_REG); in si21_read_status()
548 si21_readregs(state, LOCK_STATUS_REG_1, regs_read, 0x02); in si21_read_status()
579 struct si21xx_state *state = fe->demodulator_priv; in si21_read_signal_strength() local
584 u16 signal = (3 * si21_readreg(state, 0x27) * in si21_read_signal_strength()
585 si21_readreg(state, 0x28)); in si21_read_signal_strength()
588 si21_readreg(state, 0x27), in si21_read_signal_strength()
589 si21_readreg(state, 0x28), (int) signal); in si21_read_signal_strength()
599 struct si21xx_state *state = fe->demodulator_priv; in si21_read_ber() local
603 if (state->errmode != STATUS_BER) in si21_read_ber()
606 *ber = (si21_readreg(state, 0x1d) << 8) | in si21_read_ber()
607 si21_readreg(state, 0x1e); in si21_read_ber()
614 struct si21xx_state *state = fe->demodulator_priv; in si21_read_snr() local
616 s32 xsnr = 0xffff - ((si21_readreg(state, 0x24) << 8) | in si21_read_snr()
617 si21_readreg(state, 0x25)); in si21_read_snr()
628 struct si21xx_state *state = fe->demodulator_priv; in si21_read_ucblocks() local
632 if (state->errmode != STATUS_UCBLOCKS) in si21_read_ucblocks()
635 *ucblocks = (si21_readreg(state, 0x1d) << 8) | in si21_read_ucblocks()
636 si21_readreg(state, 0x1e); in si21_read_ucblocks()
647 struct si21xx_state *state = fe->demodulator_priv; in si21xx_setacquire() local
666 status |= si21_writeregs(state, in si21xx_setacquire()
671 status |= si21_readregs(state, ACQ_CTRL_REG_2, ®, 0x01); in si21xx_setacquire()
673 status |= si21_writeregs(state, ACQ_CTRL_REG_2, ®, 0x01); in si21xx_setacquire()
680 status |= si21_writeregs(state, in si21xx_setacquire()
684 status |= si21_writeregs(state, in si21xx_setacquire()
687 status |= si21_writeregs(state, in si21xx_setacquire()
690 status |= si21_writeregs(state, in si21xx_setacquire()
698 struct si21xx_state *state = fe->demodulator_priv; in si21xx_set_frontend() local
837 status |= si21_writeregs(state, PLL_DIVISOR_REG, ®s[0], 0x04); in si21xx_set_frontend()
839 state->fs = sample_rate;/*ADC MHz*/ in si21xx_set_frontend()
847 struct si21xx_state *state = fe->demodulator_priv; in si21xx_sleep() local
852 si21_readregs(state, SYSTEM_MODE_REG, ®data, 0x01); in si21xx_sleep()
854 si21_writeregs(state, SYSTEM_MODE_REG, ®data, 0x01); in si21xx_sleep()
855 state->initialised = 0; in si21xx_sleep()
862 struct si21xx_state *state = fe->demodulator_priv; in si21xx_release() local
866 kfree(state); in si21xx_release()
906 struct si21xx_state *state = NULL; in si21xx_attach() local
912 state = kzalloc(sizeof(struct si21xx_state), GFP_KERNEL); in si21xx_attach()
913 if (state == NULL) in si21xx_attach()
917 state->config = config; in si21xx_attach()
918 state->i2c = i2c; in si21xx_attach()
919 state->initialised = 0; in si21xx_attach()
920 state->errmode = STATUS_BER; in si21xx_attach()
923 id = si21_readreg(state, SYSTEM_MODE_REG); in si21xx_attach()
924 si21_writereg(state, SYSTEM_MODE_REG, id | 0x40); /* standby off */ in si21xx_attach()
926 id = si21_readreg(state, 0x00); in si21xx_attach()
938 memcpy(&state->frontend.ops, &si21xx_ops, in si21xx_attach()
940 state->frontend.demodulator_priv = state; in si21xx_attach()
941 return &state->frontend; in si21xx_attach()
944 kfree(state); in si21xx_attach()