Lines Matching refs:state

68 static int i2c_writebytes (struct nxt200x_state* state, u8 addr, u8 *buf, u8 len)  in i2c_writebytes()  argument
73 if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) { in i2c_writebytes()
81 static int i2c_readbytes(struct nxt200x_state *state, u8 addr, u8 *buf, u8 len) in i2c_readbytes() argument
86 if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) { in i2c_readbytes()
94 static int nxt200x_writebytes (struct nxt200x_state* state, u8 reg, in nxt200x_writebytes() argument
99 …struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf2, .len = len +… in nxt200x_writebytes()
110 if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) { in nxt200x_writebytes()
112 __func__, state->config->demod_address, err); in nxt200x_writebytes()
118 static int nxt200x_readbytes(struct nxt200x_state *state, u8 reg, u8 *buf, u8 len) in nxt200x_readbytes() argument
122 …struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = reg2, .len = … in nxt200x_readbytes()
123 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = buf, .len = len } }; in nxt200x_readbytes()
127 if ((err = i2c_transfer (state->i2c, msg, 2)) != 2) { in nxt200x_readbytes()
129 __func__, state->config->demod_address, err); in nxt200x_readbytes()
151 static int nxt200x_writereg_multibyte (struct nxt200x_state* state, u8 reg, u8* data, u8 len) in nxt200x_writereg_multibyte() argument
157 nxt200x_writebytes(state, 0x35, &reg, 1); in nxt200x_writereg_multibyte()
160 nxt200x_writebytes(state, 0x36, data, len); in nxt200x_writereg_multibyte()
162 switch (state->demod_chip) { in nxt200x_writereg_multibyte()
185 nxt200x_writebytes(state, 0x34, &len2, 1); in nxt200x_writereg_multibyte()
188 nxt200x_writebytes(state, 0x21, &buf, 1); in nxt200x_writereg_multibyte()
190 nxt200x_readbytes(state, 0x21, &buf, 1); in nxt200x_writereg_multibyte()
192 switch (state->demod_chip) { in nxt200x_writereg_multibyte()
211 static int nxt200x_readreg_multibyte (struct nxt200x_state* state, u8 reg, u8* data, u8 len) in nxt200x_readreg_multibyte() argument
218 nxt200x_writebytes(state, 0x35, &reg, 1); in nxt200x_readreg_multibyte()
220 switch (state->demod_chip) { in nxt200x_readreg_multibyte()
224 nxt200x_writebytes(state, 0x34, &len2, 1); in nxt200x_readreg_multibyte()
227 nxt200x_readbytes(state, reg, data, len); in nxt200x_readreg_multibyte()
241 nxt200x_writebytes(state, 0x34, &len2, 1); in nxt200x_readreg_multibyte()
245 nxt200x_writebytes(state, 0x21, &buf, 1); in nxt200x_readreg_multibyte()
249 nxt200x_readbytes(state, 0x36 + i, &data[i], 1); in nxt200x_readreg_multibyte()
259 static void nxt200x_microcontroller_stop (struct nxt200x_state* state) in nxt200x_microcontroller_stop() argument
265 switch (state->demod_chip) { in nxt200x_microcontroller_stop()
278 nxt200x_writebytes(state, 0x22, &buf, 1); in nxt200x_microcontroller_stop()
281 nxt200x_readbytes(state, 0x31, &buf, 1); in nxt200x_microcontroller_stop()
292 static void nxt200x_microcontroller_start (struct nxt200x_state* state) in nxt200x_microcontroller_start() argument
298 nxt200x_writebytes(state, 0x22, &buf, 1); in nxt200x_microcontroller_start()
301 static void nxt2004_microcontroller_init (struct nxt200x_state* state) in nxt2004_microcontroller_init() argument
308 nxt200x_writebytes(state, 0x2b, buf, 1); in nxt2004_microcontroller_init()
310 nxt200x_writebytes(state, 0x34, buf, 1); in nxt2004_microcontroller_init()
312 nxt200x_writebytes(state, 0x35, buf, 1); in nxt2004_microcontroller_init()
315 nxt200x_writebytes(state, 0x36, buf, 9); in nxt2004_microcontroller_init()
317 nxt200x_writebytes(state, 0x21, buf, 1); in nxt2004_microcontroller_init()
320 nxt200x_readbytes(state, 0x21, buf, 1); in nxt2004_microcontroller_init()
332 static int nxt200x_writetuner (struct nxt200x_state* state, u8* data) in nxt200x_writetuner() argument
342 switch (state->demod_chip) { in nxt200x_writetuner()
344 if (i2c_writebytes(state, data[0], data+1, 4)) in nxt200x_writetuner()
348 i2c_readbytes(state, data[0], &buf, 1); in nxt200x_writetuner()
359 nxt200x_writebytes(state, 0x20, &buf, 1); in nxt200x_writetuner()
363 nxt200x_writebytes(state, 0x34, &buf, 1); in nxt200x_writetuner()
366 nxt200x_writebytes(state, 0x36, data+1, 4); in nxt200x_writetuner()
370 nxt200x_writebytes(state, 0x35, &buf, 1); in nxt200x_writetuner()
374 nxt200x_writebytes(state, 0x21, &buf, 1); in nxt200x_writetuner()
377 nxt200x_readbytes(state, 0x21, &buf, 1); in nxt200x_writetuner()
392 static void nxt200x_agc_reset(struct nxt200x_state* state) in nxt200x_agc_reset() argument
397 switch (state->demod_chip) { in nxt200x_agc_reset()
400 nxt200x_writebytes(state, 0x08, &buf, 1); in nxt200x_agc_reset()
402 nxt200x_writebytes(state, 0x08, &buf, 1); in nxt200x_agc_reset()
405 nxt200x_readreg_multibyte(state, 0x08, &buf, 1); in nxt200x_agc_reset()
407 nxt200x_writereg_multibyte(state, 0x08, &buf, 1); in nxt200x_agc_reset()
409 nxt200x_writereg_multibyte(state, 0x08, &buf, 1); in nxt200x_agc_reset()
420 struct nxt200x_state* state = fe->demodulator_priv; in nxt2002_load_firmware() local
428 nxt200x_readbytes(state, 0x10, buf, 1); in nxt2002_load_firmware()
439 nxt200x_writebytes(state, 0x2B, buf, 1); in nxt2002_load_firmware()
449 nxt200x_writebytes(state, 0x29, buf, 3); in nxt2002_load_firmware()
455 nxt200x_writebytes(state, chunkpos, &fw->data[position-3], 4); in nxt2002_load_firmware()
461 nxt200x_writebytes(state, chunkpos+4-(written %4), in nxt2002_load_firmware()
468 nxt200x_writebytes(state, 0x2C, buf, 2); in nxt2002_load_firmware()
471 nxt200x_readbytes(state, 0x2A, buf, 1); in nxt2002_load_firmware()
475 nxt200x_writebytes(state, 0x2B, buf, 1); in nxt2002_load_firmware()
487 struct nxt200x_state* state = fe->demodulator_priv; in nxt2004_load_firmware() local
499 nxt200x_writebytes(state, 0x2B, buf,1); in nxt2004_load_firmware()
510 nxt200x_writebytes(state,0x29,buf,3); in nxt2004_load_firmware()
513 nxt200x_writebytes(state, 0x2C, &fw->data[position], in nxt2004_load_firmware()
523 nxt200x_writebytes(state, 0x2C, buf,2); in nxt2004_load_firmware()
526 nxt200x_readbytes(state, 0x2C, buf, 1); in nxt2004_load_firmware()
530 nxt200x_writebytes(state, 0x2B, buf,1); in nxt2004_load_firmware()
538 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_setup_frontend_parameters() local
542 nxt200x_microcontroller_stop(state); in nxt200x_setup_frontend_parameters()
544 if (state->demod_chip == NXT2004) { in nxt200x_setup_frontend_parameters()
547 nxt200x_writebytes(state, 0x14, buf, 1); in nxt200x_setup_frontend_parameters()
549 nxt200x_writebytes(state, 0x17, buf, 1); in nxt200x_setup_frontend_parameters()
558 if (state->config->set_ts_params) in nxt200x_setup_frontend_parameters()
559 state->config->set_ts_params(fe, 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, 0); in nxt200x_setup_frontend_parameters()
576 nxt200x_writetuner(state, buf); in nxt200x_setup_frontend_parameters()
580 nxt200x_agc_reset(state); in nxt200x_setup_frontend_parameters()
595 nxt200x_writebytes(state, 0x42, buf, 1); in nxt200x_setup_frontend_parameters()
598 switch (state->demod_chip) { in nxt200x_setup_frontend_parameters()
609 nxt200x_writebytes(state, 0x57, buf, 1); in nxt200x_setup_frontend_parameters()
614 switch (state->demod_chip) { in nxt200x_setup_frontend_parameters()
616 nxt200x_writereg_multibyte(state, 0x58, buf, 2); in nxt200x_setup_frontend_parameters()
619 nxt200x_writebytes(state, 0x58, buf, 2); in nxt200x_setup_frontend_parameters()
642 switch (state->demod_chip) { in nxt200x_setup_frontend_parameters()
644 nxt200x_writereg_multibyte(state, 0x5C, buf, 2); in nxt200x_setup_frontend_parameters()
647 nxt200x_writebytes(state, 0x5C, buf, 2); in nxt200x_setup_frontend_parameters()
656 nxt200x_writebytes(state, 0x43, buf, 1); in nxt200x_setup_frontend_parameters()
658 if (state->demod_chip == NXT2004) { in nxt200x_setup_frontend_parameters()
662 nxt200x_writebytes(state, 0x46, buf, 2); in nxt200x_setup_frontend_parameters()
668 switch (state->demod_chip) { in nxt200x_setup_frontend_parameters()
670 nxt200x_writereg_multibyte(state, 0x4B, buf, 2); in nxt200x_setup_frontend_parameters()
673 nxt200x_writebytes(state, 0x4B, buf, 2); in nxt200x_setup_frontend_parameters()
682 nxt200x_writebytes(state, 0x4D, buf, 1); in nxt200x_setup_frontend_parameters()
686 nxt200x_writebytes(state, 0x55, buf, 1); in nxt200x_setup_frontend_parameters()
690 nxt200x_writebytes(state, 0x41, buf, 1); in nxt200x_setup_frontend_parameters()
692 if (state->demod_chip == NXT2004) { in nxt200x_setup_frontend_parameters()
693 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt200x_setup_frontend_parameters()
695 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt200x_setup_frontend_parameters()
698 nxt200x_readreg_multibyte(state, 0x08, buf, 1); in nxt200x_setup_frontend_parameters()
700 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt200x_setup_frontend_parameters()
701 nxt200x_readreg_multibyte(state, 0x08, buf, 1); in nxt200x_setup_frontend_parameters()
703 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt200x_setup_frontend_parameters()
705 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt200x_setup_frontend_parameters()
707 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt200x_setup_frontend_parameters()
709 nxt200x_writereg_multibyte(state, 0x81, buf, 1); in nxt200x_setup_frontend_parameters()
711 nxt200x_writereg_multibyte(state, 0x82, buf, 3); in nxt200x_setup_frontend_parameters()
712 nxt200x_readreg_multibyte(state, 0x88, buf, 1); in nxt200x_setup_frontend_parameters()
714 nxt200x_writereg_multibyte(state, 0x88, buf, 1); in nxt200x_setup_frontend_parameters()
715 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt200x_setup_frontend_parameters()
717 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt200x_setup_frontend_parameters()
735 nxt200x_writebytes(state, 0x30, buf, 1); in nxt200x_setup_frontend_parameters()
739 nxt200x_writebytes(state, 0x41, buf, 1); in nxt200x_setup_frontend_parameters()
744 switch (state->demod_chip) { in nxt200x_setup_frontend_parameters()
746 nxt200x_writereg_multibyte(state, 0x49, buf, 2); in nxt200x_setup_frontend_parameters()
747 nxt200x_writereg_multibyte(state, 0x4B, buf, 2); in nxt200x_setup_frontend_parameters()
750 nxt200x_writebytes(state, 0x49, buf, 2); in nxt200x_setup_frontend_parameters()
751 nxt200x_writebytes(state, 0x4B, buf, 2); in nxt200x_setup_frontend_parameters()
760 nxt200x_writebytes(state, 0x41, buf, 1); in nxt200x_setup_frontend_parameters()
762 nxt200x_microcontroller_start(state); in nxt200x_setup_frontend_parameters()
764 if (state->demod_chip == NXT2004) { in nxt200x_setup_frontend_parameters()
765 nxt2004_microcontroller_init(state); in nxt200x_setup_frontend_parameters()
770 nxt200x_writebytes(state, 0x5C, buf, 2); in nxt200x_setup_frontend_parameters()
781 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_read_status() local
783 nxt200x_readbytes(state, 0x31, &lock, 1); in nxt200x_read_status()
798 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_read_ber() local
801 nxt200x_readreg_multibyte(state, 0xE6, b, 3); in nxt200x_read_ber()
810 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_read_signal_strength() local
816 nxt200x_writebytes(state, 0xA1, b, 1); in nxt200x_read_signal_strength()
819 nxt200x_readreg_multibyte(state, 0xA6, b, 2); in nxt200x_read_signal_strength()
830 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_read_snr() local
837 nxt200x_writebytes(state, 0xA1, b, 1); in nxt200x_read_snr()
840 nxt200x_readreg_multibyte(state, 0xA6, b, 2); in nxt200x_read_snr()
863 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_read_ucblocks() local
866 nxt200x_readreg_multibyte(state, 0xE6, b, 3); in nxt200x_read_ucblocks()
879 struct nxt200x_state* state = fe->demodulator_priv; in nxt2002_init() local
888 state->i2c->dev.parent); in nxt2002_init()
905 nxt200x_microcontroller_stop(state); in nxt2002_init()
909 nxt200x_writebytes(state, 0x2B, buf, 1); in nxt2002_init()
912 nxt200x_microcontroller_stop(state); in nxt2002_init()
916 nxt200x_writebytes(state, 0x08, buf, 1); in nxt2002_init()
918 nxt200x_writebytes(state, 0x08, buf, 1); in nxt2002_init()
922 nxt200x_writebytes(state, 0x57, buf, 1); in nxt2002_init()
926 nxt200x_writebytes(state, 0x09, buf, 1); in nxt2002_init()
931 nxt200x_writebytes(state, 0xE9, buf, 2); in nxt2002_init()
935 nxt200x_writebytes(state, 0xCC, buf, 1); in nxt2002_init()
942 struct nxt200x_state* state = fe->demodulator_priv; in nxt2004_init() local
949 nxt200x_writebytes(state, 0x1E, buf, 1); in nxt2004_init()
955 state->i2c->dev.parent); in nxt2004_init()
973 nxt200x_writebytes(state, 0x19, buf, 1); in nxt2004_init()
975 nxt2004_microcontroller_init(state); in nxt2004_init()
976 nxt200x_microcontroller_stop(state); in nxt2004_init()
977 nxt200x_microcontroller_stop(state); in nxt2004_init()
978 nxt2004_microcontroller_init(state); in nxt2004_init()
979 nxt200x_microcontroller_stop(state); in nxt2004_init()
983 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
985 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
989 nxt200x_writebytes(state, 0x57, buf, 1); in nxt2004_init()
994 nxt200x_writebytes(state, 0x35, buf, 2); in nxt2004_init()
996 nxt200x_writebytes(state, 0x34, buf, 1); in nxt2004_init()
998 nxt200x_writebytes(state, 0x21, buf, 1); in nxt2004_init()
1002 nxt200x_writebytes(state, 0x0A, buf, 1); in nxt2004_init()
1006 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1011 nxt200x_writebytes(state, 0xE9, buf, 2); in nxt2004_init()
1015 nxt200x_writebytes(state, 0xCC, buf, 1); in nxt2004_init()
1018 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1020 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1023 nxt200x_readreg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1025 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1026 nxt200x_readreg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1028 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1031 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1033 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1035 nxt200x_writereg_multibyte(state, 0x81, buf, 1); in nxt2004_init()
1037 nxt200x_writereg_multibyte(state, 0x82, buf, 3); in nxt2004_init()
1039 nxt200x_readreg_multibyte(state, 0x88, buf, 1); in nxt2004_init()
1041 nxt200x_writereg_multibyte(state, 0x88, buf, 1); in nxt2004_init()
1042 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1044 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1046 nxt200x_readbytes(state, 0x10, buf, 1); in nxt2004_init()
1048 nxt200x_writebytes(state, 0x10, buf, 1); in nxt2004_init()
1049 nxt200x_readbytes(state, 0x0A, buf, 1); in nxt2004_init()
1051 nxt200x_writebytes(state, 0x0A, buf, 1); in nxt2004_init()
1053 nxt2004_microcontroller_init(state); in nxt2004_init()
1056 nxt200x_writebytes(state, 0x0A, buf, 1); in nxt2004_init()
1058 nxt200x_writebytes(state, 0xE9, buf, 1); in nxt2004_init()
1060 nxt200x_writebytes(state, 0xEA, buf, 1); in nxt2004_init()
1062 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1064 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1065 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1067 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1070 nxt200x_readreg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1072 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1073 nxt200x_readreg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1075 nxt200x_writereg_multibyte(state, 0x08, buf, 1); in nxt2004_init()
1077 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1079 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1081 nxt200x_writereg_multibyte(state, 0x81, buf, 1); in nxt2004_init()
1083 nxt200x_writereg_multibyte(state, 0x82, buf, 3); in nxt2004_init()
1085 nxt200x_readreg_multibyte(state, 0x88, buf, 1); in nxt2004_init()
1087 nxt200x_writereg_multibyte(state, 0x88, buf, 1); in nxt2004_init()
1089 nxt200x_readreg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1091 nxt200x_writereg_multibyte(state, 0x80, buf, 1); in nxt2004_init()
1094 nxt200x_readbytes(state, 0x10, buf, 1); in nxt2004_init()
1096 nxt200x_writebytes(state, 0x10, buf, 1); in nxt2004_init()
1098 nxt200x_writebytes(state, 0x13, buf, 1); in nxt2004_init()
1100 nxt200x_writebytes(state, 0x16, buf, 1); in nxt2004_init()
1102 nxt200x_writebytes(state, 0x14, buf, 1); in nxt2004_init()
1104 nxt200x_writebytes(state, 0x14, buf, 1); in nxt2004_init()
1105 nxt200x_writebytes(state, 0x17, buf, 1); in nxt2004_init()
1106 nxt200x_writebytes(state, 0x14, buf, 1); in nxt2004_init()
1107 nxt200x_writebytes(state, 0x17, buf, 1); in nxt2004_init()
1114 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_init() local
1117 if (!state->initialised) { in nxt200x_init()
1118 switch (state->demod_chip) { in nxt200x_init()
1129 state->initialised = 1; in nxt200x_init()
1144 struct nxt200x_state* state = fe->demodulator_priv; in nxt200x_release() local
1145 kfree(state); in nxt200x_release()
1153 struct nxt200x_state* state = NULL; in nxt200x_attach() local
1157 state = kzalloc(sizeof(struct nxt200x_state), GFP_KERNEL); in nxt200x_attach()
1158 if (state == NULL) in nxt200x_attach()
1162 state->config = config; in nxt200x_attach()
1163 state->i2c = i2c; in nxt200x_attach()
1164 state->initialised = 0; in nxt200x_attach()
1167 nxt200x_readbytes(state, 0x00, buf, 5); in nxt200x_attach()
1173 state->demod_chip = NXT2002; in nxt200x_attach()
1177 state->demod_chip = NXT2004; in nxt200x_attach()
1185 switch (state->demod_chip) { in nxt200x_attach()
1201 memcpy(&state->frontend.ops, &nxt200x_ops, sizeof(struct dvb_frontend_ops)); in nxt200x_attach()
1202 state->frontend.demodulator_priv = state; in nxt200x_attach()
1203 return &state->frontend; in nxt200x_attach()
1206 kfree(state); in nxt200x_attach()