Lines Matching refs:state

72 static int i2c_writebytes (struct nxt200x_state* state, u8 addr, u8 *buf, u8 len)  in i2c_writebytes()  argument
77 if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) { in i2c_writebytes()
85 static int i2c_readbytes(struct nxt200x_state *state, u8 addr, u8 *buf, u8 len) in i2c_readbytes() argument
90 if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) { in i2c_readbytes()
98 static int nxt200x_writebytes (struct nxt200x_state* state, u8 reg, in nxt200x_writebytes() argument
103 …struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf2, .len = len +… in nxt200x_writebytes()
114 if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) { in nxt200x_writebytes()
116 __func__, state->config->demod_address, err); in nxt200x_writebytes()
122 static int nxt200x_readbytes(struct nxt200x_state *state, u8 reg, u8 *buf, u8 len) in nxt200x_readbytes() argument
126 …struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = reg2, .len = … in nxt200x_readbytes()
127 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = buf, .len = len } }; in nxt200x_readbytes()
131 if ((err = i2c_transfer (state->i2c, msg, 2)) != 2) { in nxt200x_readbytes()
133 __func__, state->config->demod_address, err); in nxt200x_readbytes()
155 static int nxt200x_writereg_multibyte (struct nxt200x_state* state, u8 reg, u8* data, u8 len) in nxt200x_writereg_multibyte() argument
161 nxt200x_writebytes(state, 0x35, &reg, 1); in nxt200x_writereg_multibyte()
164 nxt200x_writebytes(state, 0x36, data, len); in nxt200x_writereg_multibyte()
166 switch (state->demod_chip) { in nxt200x_writereg_multibyte()
189 nxt200x_writebytes(state, 0x34, &len2, 1); in nxt200x_writereg_multibyte()
192 nxt200x_writebytes(state, 0x21, &buf, 1); in nxt200x_writereg_multibyte()
194 nxt200x_readbytes(state, 0x21, &buf, 1); in nxt200x_writereg_multibyte()
196 switch (state->demod_chip) { in nxt200x_writereg_multibyte()
215 static int nxt200x_readreg_multibyte (struct nxt200x_state* state, u8 reg, u8* data, u8 len) in nxt200x_readreg_multibyte() argument
222 nxt200x_writebytes(state, 0x35, &reg, 1); in nxt200x_readreg_multibyte()
224 switch (state->demod_chip) { in nxt200x_readreg_multibyte()
228 nxt200x_writebytes(state, 0x34, &len2, 1); in nxt200x_readreg_multibyte()
231 nxt200x_readbytes(state, reg, data, len); in nxt200x_readreg_multibyte()
245 nxt200x_writebytes(state, 0x34, &len2, 1); in nxt200x_readreg_multibyte()
249 nxt200x_writebytes(state, 0x21, &buf, 1); in nxt200x_readreg_multibyte()
253 nxt200x_readbytes(state, 0x36 + i, &data[i], 1); in nxt200x_readreg_multibyte()
263 static void nxt200x_microcontroller_stop (struct nxt200x_state* state) in nxt200x_microcontroller_stop() argument
269 switch (state->demod_chip) { in nxt200x_microcontroller_stop()
282 nxt200x_writebytes(state, 0x22, &buf, 1); in nxt200x_microcontroller_stop()
285 nxt200x_readbytes(state, 0x31, &buf, 1); in nxt200x_microcontroller_stop()
297 static void nxt200x_microcontroller_start (struct nxt200x_state* state) in nxt200x_microcontroller_start() argument
303 nxt200x_writebytes(state, 0x22, &buf, 1); in nxt200x_microcontroller_start()
306 static void nxt2004_microcontroller_init (struct nxt200x_state* state) in nxt2004_microcontroller_init() argument
313 nxt200x_writebytes(state, 0x2b, buf, 1); in nxt2004_microcontroller_init()
315 nxt200x_writebytes(state, 0x34, buf, 1); in nxt2004_microcontroller_init()
317 nxt200x_writebytes(state, 0x35, buf, 1); in nxt2004_microcontroller_init()
320 nxt200x_writebytes(state, 0x36, buf, 9); in nxt2004_microcontroller_init()
322 nxt200x_writebytes(state, 0x21, buf, 1); in nxt2004_microcontroller_init()
325 nxt200x_readbytes(state, 0x21, buf, 1); in nxt2004_microcontroller_init()
337 static int nxt200x_writetuner (struct nxt200x_state* state, u8* data) in nxt200x_writetuner() argument
347 switch (state->demod_chip) { in nxt200x_writetuner()
349 if (i2c_writebytes(state, data[0], data+1, 4)) in nxt200x_writetuner()
353 i2c_readbytes(state, data[0], &buf, 1); in nxt200x_writetuner()
364 nxt200x_writebytes(state, 0x20, &buf, 1); in nxt200x_writetuner()
368 nxt200x_writebytes(state, 0x34, &buf, 1); in nxt200x_writetuner()
371 nxt200x_writebytes(state, 0x36, data+1, 4); in nxt200x_writetuner()
375 nxt200x_writebytes(state, 0x35, &buf, 1); in nxt200x_writetuner()
379 nxt200x_writebytes(state, 0x21, &buf, 1); in nxt200x_writetuner()
382 nxt200x_readbytes(state, 0x21, &buf, 1); in nxt200x_writetuner()
397 static void nxt200x_agc_reset(struct nxt200x_state* state) in nxt200x_agc_reset() argument
402 switch (state->demod_chip) { in nxt200x_agc_reset()
405 nxt200x_writebytes(state, 0x08, &buf, 1); in nxt200x_agc_reset()
407 nxt200x_writebytes(state, 0x08, &buf, 1); in nxt200x_agc_reset()
410 nxt200x_readreg_multibyte(state, 0x08, &buf, 1); in nxt200x_agc_reset()
412 nxt200x_writereg_multibyte(state, 0x08, &buf, 1); in nxt200x_agc_reset()
414 nxt200x_writereg_multibyte(state, 0x08, &buf, 1); in nxt200x_agc_reset()
425 struct nxt200x_state* state = fe->demodulator_priv; in nxt2002_load_firmware() local
433 nxt200x_readbytes(state, 0x10, buf, 1); in nxt2002_load_firmware()
444 nxt200x_writebytes(state, 0x2B, buf, 1); in nxt2002_load_firmware()
454 nxt200x_writebytes(state, 0x29, buf, 3); in nxt2002_load_firmware()
460 nxt200x_writebytes(state, chunkpos, &fw->data[position-3], 4); in nxt2002_load_firmware()
466 nxt200x_writebytes(state, chunkpos+4-(written %4), in nxt2002_load_firmware()
473 nxt200x_writebytes(state, 0x2C, buf, 2); in nxt2002_load_firmware()
476 nxt200x_readbytes(state, 0x2A, buf, 1); in nxt2002_load_firmware()
480 nxt200x_writebytes(state, 0x2B, buf, 1); in nxt2002_load_firmware()
492 struct nxt200x_state* state = fe->demodulator_priv; in nxt2004_load_firmware() local
504 nxt200x_writebytes(state, 0x2B, buf,1); in nxt2004_load_firmware()
515 nxt200x_writebytes(state,0x29,buf,3); in nxt2004_load_firmware()
518 nxt200x_writebytes(state, 0x2C, &fw->data[position], in nxt2004_load_firmware()
528 nxt200x_writebytes(state, 0x2C, buf,2); in nxt2004_load_firmware()
531 nxt200x_readbytes(state, 0x2C, buf, 1); in nxt2004_load_firmware()
535 nxt200x_writebytes(state, 0x2B, buf,1); in nxt2004_load_firmware()
543 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_setup_frontend_parameters() local
547 nxt200x_microcontroller_stop(state); in nxt200x_setup_frontend_parameters()
549 if (state->demod_chip == NXT2004) { in nxt200x_setup_frontend_parameters()
552 nxt200x_writebytes(state, 0x14, buf, 1); in nxt200x_setup_frontend_parameters()
554 nxt200x_writebytes(state, 0x17, buf, 1); in nxt200x_setup_frontend_parameters()
563 if (state->config->set_ts_params) in nxt200x_setup_frontend_parameters()
564 state->config->set_ts_params(fe, 1); in nxt200x_setup_frontend_parameters()
568 if (state->config->set_ts_params) in nxt200x_setup_frontend_parameters()
569 state->config->set_ts_params(fe, 0); in nxt200x_setup_frontend_parameters()
581 nxt200x_writetuner(state, buf); in nxt200x_setup_frontend_parameters()
585 nxt200x_agc_reset(state); in nxt200x_setup_frontend_parameters()
600 nxt200x_writebytes(state, 0x42, buf, 1); in nxt200x_setup_frontend_parameters()
603 switch (state->demod_chip) { in nxt200x_setup_frontend_parameters()
614 nxt200x_writebytes(state, 0x57, buf, 1); in nxt200x_setup_frontend_parameters()
619 switch (state->demod_chip) { in nxt200x_setup_frontend_parameters()
621 nxt200x_writereg_multibyte(state, 0x58, buf, 2); in nxt200x_setup_frontend_parameters()
624 nxt200x_writebytes(state, 0x58, buf, 2); in nxt200x_setup_frontend_parameters()
647 switch (state->demod_chip) { in nxt200x_setup_frontend_parameters()
649 nxt200x_writereg_multibyte(state, 0x5C, buf, 2); in nxt200x_setup_frontend_parameters()
652 nxt200x_writebytes(state, 0x5C, buf, 2); in nxt200x_setup_frontend_parameters()
661 nxt200x_writebytes(state, 0x43, buf, 1); in nxt200x_setup_frontend_parameters()
663 if (state->demod_chip == NXT2004) { in nxt200x_setup_frontend_parameters()
667 nxt200x_writebytes(state, 0x46, buf, 2); in nxt200x_setup_frontend_parameters()
673 switch (state->demod_chip) { in nxt200x_setup_frontend_parameters()
675 nxt200x_writereg_multibyte(state, 0x4B, buf, 2); in nxt200x_setup_frontend_parameters()
678 nxt200x_writebytes(state, 0x4B, buf, 2); in nxt200x_setup_frontend_parameters()
687 nxt200x_writebytes(state, 0x4D, buf, 1); in nxt200x_setup_frontend_parameters()
691 nxt200x_writebytes(state, 0x55, buf, 1); in nxt200x_setup_frontend_parameters()
695 nxt200x_writebytes(state, 0x41, buf, 1); in nxt200x_setup_frontend_parameters()
697 if (state->demod_chip == NXT2004) { in nxt200x_setup_frontend_parameters()
698 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt200x_setup_frontend_parameters()
700 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt200x_setup_frontend_parameters()
703 nxt200x_readreg_multibyte(state, 0x08, buf, 1); in nxt200x_setup_frontend_parameters()
705 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt200x_setup_frontend_parameters()
706 nxt200x_readreg_multibyte(state, 0x08, buf, 1); in nxt200x_setup_frontend_parameters()
708 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt200x_setup_frontend_parameters()
710 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt200x_setup_frontend_parameters()
712 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt200x_setup_frontend_parameters()
714 nxt200x_writereg_multibyte(state, 0x81, buf, 1); in nxt200x_setup_frontend_parameters()
716 nxt200x_writereg_multibyte(state, 0x82, buf, 3); in nxt200x_setup_frontend_parameters()
717 nxt200x_readreg_multibyte(state, 0x88, buf, 1); in nxt200x_setup_frontend_parameters()
719 nxt200x_writereg_multibyte(state, 0x88, buf, 1); in nxt200x_setup_frontend_parameters()
720 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt200x_setup_frontend_parameters()
722 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt200x_setup_frontend_parameters()
740 nxt200x_writebytes(state, 0x30, buf, 1); in nxt200x_setup_frontend_parameters()
744 nxt200x_writebytes(state, 0x41, buf, 1); in nxt200x_setup_frontend_parameters()
749 switch (state->demod_chip) { in nxt200x_setup_frontend_parameters()
751 nxt200x_writereg_multibyte(state, 0x49, buf, 2); in nxt200x_setup_frontend_parameters()
752 nxt200x_writereg_multibyte(state, 0x4B, buf, 2); in nxt200x_setup_frontend_parameters()
755 nxt200x_writebytes(state, 0x49, buf, 2); in nxt200x_setup_frontend_parameters()
756 nxt200x_writebytes(state, 0x4B, buf, 2); in nxt200x_setup_frontend_parameters()
765 nxt200x_writebytes(state, 0x41, buf, 1); in nxt200x_setup_frontend_parameters()
767 nxt200x_microcontroller_start(state); in nxt200x_setup_frontend_parameters()
769 if (state->demod_chip == NXT2004) { in nxt200x_setup_frontend_parameters()
770 nxt2004_microcontroller_init(state); in nxt200x_setup_frontend_parameters()
775 nxt200x_writebytes(state, 0x5C, buf, 2); in nxt200x_setup_frontend_parameters()
786 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_read_status() local
788 nxt200x_readbytes(state, 0x31, &lock, 1); in nxt200x_read_status()
803 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_read_ber() local
806 nxt200x_readreg_multibyte(state, 0xE6, b, 3); in nxt200x_read_ber()
815 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_read_signal_strength() local
821 nxt200x_writebytes(state, 0xA1, b, 1); in nxt200x_read_signal_strength()
824 nxt200x_readreg_multibyte(state, 0xA6, b, 2); in nxt200x_read_signal_strength()
835 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_read_snr() local
842 nxt200x_writebytes(state, 0xA1, b, 1); in nxt200x_read_snr()
845 nxt200x_readreg_multibyte(state, 0xA6, b, 2); in nxt200x_read_snr()
868 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_read_ucblocks() local
871 nxt200x_readreg_multibyte(state, 0xE6, b, 3); in nxt200x_read_ucblocks()
884 struct nxt200x_state* state = fe->demodulator_priv; in nxt2002_init() local
893 state->i2c->dev.parent); in nxt2002_init()
910 nxt200x_microcontroller_stop(state); in nxt2002_init()
914 nxt200x_writebytes(state, 0x2B, buf, 1); in nxt2002_init()
917 nxt200x_microcontroller_stop(state); in nxt2002_init()
921 nxt200x_writebytes(state, 0x08, buf, 1); in nxt2002_init()
923 nxt200x_writebytes(state, 0x08, buf, 1); in nxt2002_init()
927 nxt200x_writebytes(state, 0x57, buf, 1); in nxt2002_init()
931 nxt200x_writebytes(state, 0x09, buf, 1); in nxt2002_init()
936 nxt200x_writebytes(state, 0xE9, buf, 2); in nxt2002_init()
940 nxt200x_writebytes(state, 0xCC, buf, 1); in nxt2002_init()
947 struct nxt200x_state* state = fe->demodulator_priv; in nxt2004_init() local
954 nxt200x_writebytes(state, 0x1E, buf, 1); in nxt2004_init()
960 state->i2c->dev.parent); in nxt2004_init()
978 nxt200x_writebytes(state, 0x19, buf, 1); in nxt2004_init()
980 nxt2004_microcontroller_init(state); in nxt2004_init()
981 nxt200x_microcontroller_stop(state); in nxt2004_init()
982 nxt200x_microcontroller_stop(state); in nxt2004_init()
983 nxt2004_microcontroller_init(state); in nxt2004_init()
984 nxt200x_microcontroller_stop(state); in nxt2004_init()
988 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
990 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
994 nxt200x_writebytes(state, 0x57, buf, 1); in nxt2004_init()
999 nxt200x_writebytes(state, 0x35, buf, 2); in nxt2004_init()
1001 nxt200x_writebytes(state, 0x34, buf, 1); in nxt2004_init()
1003 nxt200x_writebytes(state, 0x21, buf, 1); in nxt2004_init()
1007 nxt200x_writebytes(state, 0x0A, buf, 1); in nxt2004_init()
1011 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1016 nxt200x_writebytes(state, 0xE9, buf, 2); in nxt2004_init()
1020 nxt200x_writebytes(state, 0xCC, buf, 1); in nxt2004_init()
1023 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1025 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1028 nxt200x_readreg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1030 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1031 nxt200x_readreg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1033 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1036 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1038 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1040 nxt200x_writereg_multibyte(state, 0x81, buf, 1); in nxt2004_init()
1042 nxt200x_writereg_multibyte(state, 0x82, buf, 3); in nxt2004_init()
1044 nxt200x_readreg_multibyte(state, 0x88, buf, 1); in nxt2004_init()
1046 nxt200x_writereg_multibyte(state, 0x88, buf, 1); in nxt2004_init()
1047 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1049 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1051 nxt200x_readbytes(state, 0x10, buf, 1); in nxt2004_init()
1053 nxt200x_writebytes(state, 0x10, buf, 1); in nxt2004_init()
1054 nxt200x_readbytes(state, 0x0A, buf, 1); in nxt2004_init()
1056 nxt200x_writebytes(state, 0x0A, buf, 1); in nxt2004_init()
1058 nxt2004_microcontroller_init(state); in nxt2004_init()
1061 nxt200x_writebytes(state, 0x0A, buf, 1); in nxt2004_init()
1063 nxt200x_writebytes(state, 0xE9, buf, 1); in nxt2004_init()
1065 nxt200x_writebytes(state, 0xEA, buf, 1); in nxt2004_init()
1067 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1069 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1070 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1072 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1075 nxt200x_readreg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1077 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1078 nxt200x_readreg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1080 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1082 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1084 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1086 nxt200x_writereg_multibyte(state, 0x81, buf, 1); in nxt2004_init()
1088 nxt200x_writereg_multibyte(state, 0x82, buf, 3); in nxt2004_init()
1090 nxt200x_readreg_multibyte(state, 0x88, buf, 1); in nxt2004_init()
1092 nxt200x_writereg_multibyte(state, 0x88, buf, 1); in nxt2004_init()
1094 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1096 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1099 nxt200x_readbytes(state, 0x10, buf, 1); in nxt2004_init()
1101 nxt200x_writebytes(state, 0x10, buf, 1); in nxt2004_init()
1103 nxt200x_writebytes(state, 0x13, buf, 1); in nxt2004_init()
1105 nxt200x_writebytes(state, 0x16, buf, 1); in nxt2004_init()
1107 nxt200x_writebytes(state, 0x14, buf, 1); in nxt2004_init()
1109 nxt200x_writebytes(state, 0x14, buf, 1); in nxt2004_init()
1110 nxt200x_writebytes(state, 0x17, buf, 1); in nxt2004_init()
1111 nxt200x_writebytes(state, 0x14, buf, 1); in nxt2004_init()
1112 nxt200x_writebytes(state, 0x17, buf, 1); in nxt2004_init()
1119 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_init() local
1122 if (!state->initialised) { in nxt200x_init()
1123 switch (state->demod_chip) { in nxt200x_init()
1134 state->initialised = 1; in nxt200x_init()
1149 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_release() local
1150 kfree(state); in nxt200x_release()
1158 struct nxt200x_state* state = NULL; in nxt200x_attach() local
1162 state = kzalloc(sizeof(struct nxt200x_state), GFP_KERNEL); in nxt200x_attach()
1163 if (state == NULL) in nxt200x_attach()
1167 state->config = config; in nxt200x_attach()
1168 state->i2c = i2c; in nxt200x_attach()
1169 state->initialised = 0; in nxt200x_attach()
1172 nxt200x_readbytes(state, 0x00, buf, 5); in nxt200x_attach()
1178 state->demod_chip = NXT2002; in nxt200x_attach()
1182 state->demod_chip = NXT2004; in nxt200x_attach()
1190 switch (state->demod_chip) { in nxt200x_attach()
1206 memcpy(&state->frontend.ops, &nxt200x_ops, sizeof(struct dvb_frontend_ops)); in nxt200x_attach()
1207 state->frontend.demodulator_priv = state; in nxt200x_attach()
1208 return &state->frontend; in nxt200x_attach()
1211 kfree(state); in nxt200x_attach()