Lines Matching full:state

44 static int nxt6000_writereg(struct nxt6000_state* state, u8 reg, u8 data)  in nxt6000_writereg()  argument
47 struct i2c_msg msg = {.addr = state->config->demod_address,.flags = 0,.buf = buf,.len = 2 }; in nxt6000_writereg()
50 if ((ret = i2c_transfer(state->i2c, &msg, 1)) != 1) in nxt6000_writereg()
56 static u8 nxt6000_readreg(struct nxt6000_state* state, u8 reg) in nxt6000_readreg() argument
62 {.addr = state->config->demod_address,.flags = 0,.buf = b0,.len = 1}, in nxt6000_readreg()
63 {.addr = state->config->demod_address,.flags = I2C_M_RD,.buf = b1,.len = 1} in nxt6000_readreg()
66 ret = i2c_transfer(state->i2c, msgs, 2); in nxt6000_readreg()
74 static void nxt6000_reset(struct nxt6000_state* state) in nxt6000_reset() argument
78 val = nxt6000_readreg(state, OFDM_COR_CTL); in nxt6000_reset()
80 nxt6000_writereg(state, OFDM_COR_CTL, val & ~COREACT); in nxt6000_reset()
81 nxt6000_writereg(state, OFDM_COR_CTL, val | COREACT); in nxt6000_reset()
84 static int nxt6000_set_bandwidth(struct nxt6000_state *state, u32 bandwidth) in nxt6000_set_bandwidth() argument
106 if ((result = nxt6000_writereg(state, OFDM_TRL_NOMINALRATE_1, nominal_rate & 0xFF)) < 0) in nxt6000_set_bandwidth()
109 return nxt6000_writereg(state, OFDM_TRL_NOMINALRATE_2, (nominal_rate >> 8) & 0xFF); in nxt6000_set_bandwidth()
112 static int nxt6000_set_guard_interval(struct nxt6000_state* state, fe_guard_interval_t guard_interv… in nxt6000_set_guard_interval() argument
117 …return nxt6000_writereg(state, OFDM_COR_MODEGUARD, 0x00 | (nxt6000_readreg(state, OFDM_COR_MODEGUA… in nxt6000_set_guard_interval()
120 …return nxt6000_writereg(state, OFDM_COR_MODEGUARD, 0x01 | (nxt6000_readreg(state, OFDM_COR_MODEGUA… in nxt6000_set_guard_interval()
124 …return nxt6000_writereg(state, OFDM_COR_MODEGUARD, 0x02 | (nxt6000_readreg(state, OFDM_COR_MODEGUA… in nxt6000_set_guard_interval()
127 …return nxt6000_writereg(state, OFDM_COR_MODEGUARD, 0x03 | (nxt6000_readreg(state, OFDM_COR_MODEGUA… in nxt6000_set_guard_interval()
134 static int nxt6000_set_inversion(struct nxt6000_state* state, fe_spectral_inversion_t inversion) in nxt6000_set_inversion() argument
139 return nxt6000_writereg(state, OFDM_ITB_CTL, 0x00); in nxt6000_set_inversion()
142 return nxt6000_writereg(state, OFDM_ITB_CTL, ITBINV); in nxt6000_set_inversion()
150 static int nxt6000_set_transmission_mode(struct nxt6000_state* state, fe_transmit_mode_t transmissi… in nxt6000_set_transmission_mode() argument
157 …if ((result = nxt6000_writereg(state, EN_DMD_RACQ, 0x00 | (nxt6000_readreg(state, EN_DMD_RACQ) & ~… in nxt6000_set_transmission_mode()
160 …return nxt6000_writereg(state, OFDM_COR_MODEGUARD, (0x00 << 2) | (nxt6000_readreg(state, OFDM_COR_… in nxt6000_set_transmission_mode()
164 …if ((result = nxt6000_writereg(state, EN_DMD_RACQ, 0x02 | (nxt6000_readreg(state, EN_DMD_RACQ) & ~… in nxt6000_set_transmission_mode()
167 …return nxt6000_writereg(state, OFDM_COR_MODEGUARD, (0x01 << 2) | (nxt6000_readreg(state, OFDM_COR_… in nxt6000_set_transmission_mode()
177 struct nxt6000_state* state = fe->demodulator_priv; in nxt6000_setup() local
179 nxt6000_writereg(state, RS_COR_SYNC_PARAM, SYNC_PARAM); in nxt6000_setup()
180 nxt6000_writereg(state, BER_CTRL, /*(1 << 2) | */ (0x01 << 1) | 0x01); in nxt6000_setup()
181 nxt6000_writereg(state, VIT_BERTIME_2, 0x00); // BER Timer = 0x000200 * 256 = 131072 bits in nxt6000_setup()
182 nxt6000_writereg(state, VIT_BERTIME_1, 0x02); // in nxt6000_setup()
183 nxt6000_writereg(state, VIT_BERTIME_0, 0x00); // in nxt6000_setup()
184 nxt6000_writereg(state, VIT_COR_INTEN, 0x98); // Enable BER interrupts in nxt6000_setup()
185 nxt6000_writereg(state, VIT_COR_CTL, 0x82); // Enable BER measurement in nxt6000_setup()
186 nxt6000_writereg(state, VIT_COR_CTL, VIT_COR_RESYNC | 0x02 ); in nxt6000_setup()
187 nxt6000_writereg(state, OFDM_COR_CTL, (0x01 << 5) | (nxt6000_readreg(state, OFDM_COR_CTL) & 0x0F)); in nxt6000_setup()
188 nxt6000_writereg(state, OFDM_COR_MODEGUARD, FORCEMODE8K | 0x02); in nxt6000_setup()
189 nxt6000_writereg(state, OFDM_AGC_CTL, AGCLAST | INITIAL_AGC_BW); in nxt6000_setup()
190 nxt6000_writereg(state, OFDM_ITB_FREQ_1, 0x06); in nxt6000_setup()
191 nxt6000_writereg(state, OFDM_ITB_FREQ_2, 0x31); in nxt6000_setup()
192 nxt6000_writereg(state, OFDM_CAS_CTL, (0x01 << 7) | (0x02 << 3) | 0x04); in nxt6000_setup()
193 nxt6000_writereg(state, CAS_FREQ, 0xBB); /* CHECKME */ in nxt6000_setup()
194 nxt6000_writereg(state, OFDM_SYR_CTL, 1 << 2); in nxt6000_setup()
195 nxt6000_writereg(state, OFDM_PPM_CTL_1, PPM256); in nxt6000_setup()
196 nxt6000_writereg(state, OFDM_TRL_NOMINALRATE_1, 0x49); in nxt6000_setup()
197 nxt6000_writereg(state, OFDM_TRL_NOMINALRATE_2, 0x72); in nxt6000_setup()
198 nxt6000_writereg(state, ANALOG_CONTROL_0, 1 << 5); in nxt6000_setup()
199 nxt6000_writereg(state, EN_DMD_RACQ, (1 << 7) | (3 << 4) | 2); in nxt6000_setup()
200 nxt6000_writereg(state, DIAG_CONFIG, TB_SET); in nxt6000_setup()
202 if (state->config->clock_inversion) in nxt6000_setup()
203 nxt6000_writereg(state, SUB_DIAG_MODE_SEL, CLKINVERSION); in nxt6000_setup()
205 nxt6000_writereg(state, SUB_DIAG_MODE_SEL, 0); in nxt6000_setup()
207 nxt6000_writereg(state, TS_FORMAT, 0); in nxt6000_setup()
210 static void nxt6000_dump_status(struct nxt6000_state *state) in nxt6000_dump_status() argument
228 val = nxt6000_readreg(state, RS_COR_STAT); in nxt6000_dump_status()
233 val = nxt6000_readreg(state, VIT_SYNC_STATUS); in nxt6000_dump_status()
264 val = nxt6000_readreg(state, OFDM_COR_STAT); in nxt6000_dump_status()
306 val = nxt6000_readreg(state, OFDM_SYR_STAT); in nxt6000_dump_status()
330 val = nxt6000_readreg(state, OFDM_TPS_RCVD_3); in nxt6000_dump_status()
386 val = nxt6000_readreg(state, OFDM_TPS_RCVD_4); in nxt6000_dump_status()
411 nxt6000_readreg(state, RF_AGC_VAL_1); in nxt6000_dump_status()
412 val = nxt6000_readreg(state, RF_AGC_STATUS); in nxt6000_dump_status()
413 val = nxt6000_readreg(state, RF_AGC_STATUS); in nxt6000_dump_status()
422 struct nxt6000_state* state = fe->demodulator_priv; in nxt6000_read_status() local
426 core_status = nxt6000_readreg(state, OFDM_COR_STAT); in nxt6000_read_status()
431 if (nxt6000_readreg(state, OFDM_SYR_STAT) & GI14_SYR_LOCK) in nxt6000_read_status()
434 if (nxt6000_readreg(state, VIT_SYNC_STATUS) & VITINSYNC) in nxt6000_read_status()
437 if (nxt6000_readreg(state, RS_COR_STAT) & RSCORESTATUS) in nxt6000_read_status()
444 nxt6000_dump_status(state); in nxt6000_read_status()
451 struct nxt6000_state* state = fe->demodulator_priv; in nxt6000_init() local
453 nxt6000_reset(state); in nxt6000_init()
462 struct nxt6000_state* state = fe->demodulator_priv; in nxt6000_set_frontend() local
470 result = nxt6000_set_bandwidth(state, p->bandwidth_hz); in nxt6000_set_frontend()
474 result = nxt6000_set_guard_interval(state, p->guard_interval); in nxt6000_set_frontend()
478 result = nxt6000_set_transmission_mode(state, p->transmission_mode); in nxt6000_set_frontend()
482 result = nxt6000_set_inversion(state, p->inversion); in nxt6000_set_frontend()
492 struct nxt6000_state* state = fe->demodulator_priv; in nxt6000_release() local
493 kfree(state); in nxt6000_release()
498 struct nxt6000_state* state = fe->demodulator_priv; in nxt6000_read_snr() local
500 *snr = nxt6000_readreg( state, OFDM_CHC_SNR) / 8; in nxt6000_read_snr()
507 struct nxt6000_state* state = fe->demodulator_priv; in nxt6000_read_ber() local
509 nxt6000_writereg( state, VIT_COR_INTSTAT, 0x18 ); in nxt6000_read_ber()
511 *ber = (nxt6000_readreg( state, VIT_BER_1 ) << 8 ) | in nxt6000_read_ber()
512 nxt6000_readreg( state, VIT_BER_0 ); in nxt6000_read_ber()
514 nxt6000_writereg( state, VIT_COR_INTSTAT, 0x18); // Clear BER Done interrupts in nxt6000_read_ber()
521 struct nxt6000_state* state = fe->demodulator_priv; in nxt6000_read_signal_strength() local
524 (nxt6000_readreg(state, AGC_GAIN_1) + in nxt6000_read_signal_strength()
525 ((nxt6000_readreg(state, AGC_GAIN_2) & 0x03) << 8))); in nxt6000_read_signal_strength()
538 struct nxt6000_state* state = fe->demodulator_priv; in nxt6000_i2c_gate_ctrl() local
541 return nxt6000_writereg(state, ENABLE_TUNER_IIC, 0x01); in nxt6000_i2c_gate_ctrl()
543 return nxt6000_writereg(state, ENABLE_TUNER_IIC, 0x00); in nxt6000_i2c_gate_ctrl()
552 struct nxt6000_state* state = NULL; in nxt6000_attach() local
554 /* allocate memory for the internal state */ in nxt6000_attach()
555 state = kzalloc(sizeof(struct nxt6000_state), GFP_KERNEL); in nxt6000_attach()
556 if (state == NULL) goto error; in nxt6000_attach()
558 /* setup the state */ in nxt6000_attach()
559 state->config = config; in nxt6000_attach()
560 state->i2c = i2c; in nxt6000_attach()
563 if (nxt6000_readreg(state, OFDM_MSC_REV) != NXT6000ASICDEVICE) goto error; in nxt6000_attach()
566 memcpy(&state->frontend.ops, &nxt6000_ops, sizeof(struct dvb_frontend_ops)); in nxt6000_attach()
567 state->frontend.demodulator_priv = state; in nxt6000_attach()
568 return &state->frontend; in nxt6000_attach()
571 kfree(state); in nxt6000_attach()