Lines Matching defs:state

58 static int i2c_writebytes (struct nxt200x_state* state, u8 addr, u8 *buf, u8 len)
63 if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) {
71 static int i2c_readbytes(struct nxt200x_state *state, u8 addr, u8 *buf, u8 len)
76 if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) {
84 static int nxt200x_writebytes (struct nxt200x_state* state, u8 reg,
89 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf2, .len = len + 1 };
100 if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) {
102 __func__, state->config->demod_address, err);
108 static int nxt200x_readbytes(struct nxt200x_state *state, u8 reg, u8 *buf, u8 len)
112 struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = reg2, .len = 1 },
113 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = buf, .len = len } };
117 if ((err = i2c_transfer (state->i2c, msg, 2)) != 2) {
119 __func__, state->config->demod_address, err);
141 static int nxt200x_writereg_multibyte (struct nxt200x_state* state, u8 reg, u8* data, u8 len)
147 nxt200x_writebytes(state, 0x35, &reg, 1);
150 nxt200x_writebytes(state, 0x36, data, len);
152 switch (state->demod_chip) {
175 nxt200x_writebytes(state, 0x34, &len2, 1);
178 nxt200x_writebytes(state, 0x21, &buf, 1);
180 nxt200x_readbytes(state, 0x21, &buf, 1);
182 switch (state->demod_chip) {
201 static int nxt200x_readreg_multibyte (struct nxt200x_state* state, u8 reg, u8* data, u8 len)
208 nxt200x_writebytes(state, 0x35, &reg, 1);
210 switch (state->demod_chip) {
214 nxt200x_writebytes(state, 0x34, &len2, 1);
217 nxt200x_readbytes(state, reg, data, len);
231 nxt200x_writebytes(state, 0x34, &len2, 1);
235 nxt200x_writebytes(state, 0x21, &buf, 1);
239 nxt200x_readbytes(state, 0x36 + i, &data[i], 1);
249 static void nxt200x_microcontroller_stop (struct nxt200x_state* state)
255 switch (state->demod_chip) {
268 nxt200x_writebytes(state, 0x22, &buf, 1);
271 nxt200x_readbytes(state, 0x31, &buf, 1);
282 static void nxt200x_microcontroller_start (struct nxt200x_state* state)
288 nxt200x_writebytes(state, 0x22, &buf, 1);
291 static void nxt2004_microcontroller_init (struct nxt200x_state* state)
298 nxt200x_writebytes(state, 0x2b, buf, 1);
300 nxt200x_writebytes(state, 0x34, buf, 1);
302 nxt200x_writebytes(state, 0x35, buf, 1);
305 nxt200x_writebytes(state, 0x36, buf, 9);
307 nxt200x_writebytes(state, 0x21, buf, 1);
310 nxt200x_readbytes(state, 0x21, buf, 1);
322 static int nxt200x_writetuner (struct nxt200x_state* state, u8* data)
332 switch (state->demod_chip) {
334 if (i2c_writebytes(state, data[0], data+1, 4))
338 i2c_readbytes(state, data[0], &buf, 1);
349 nxt200x_writebytes(state, 0x20, &buf, 1);
353 nxt200x_writebytes(state, 0x34, &buf, 1);
356 nxt200x_writebytes(state, 0x36, data+1, 4);
360 nxt200x_writebytes(state, 0x35, &buf, 1);
364 nxt200x_writebytes(state, 0x21, &buf, 1);
367 nxt200x_readbytes(state, 0x21, &buf, 1);
382 static void nxt200x_agc_reset(struct nxt200x_state* state)
387 switch (state->demod_chip) {
390 nxt200x_writebytes(state, 0x08, &buf, 1);
392 nxt200x_writebytes(state, 0x08, &buf, 1);
395 nxt200x_readreg_multibyte(state, 0x08, &buf, 1);
397 nxt200x_writereg_multibyte(state, 0x08, &buf, 1);
399 nxt200x_writereg_multibyte(state, 0x08, &buf, 1);
410 struct nxt200x_state* state = fe->demodulator_priv;
418 nxt200x_readbytes(state, 0x10, buf, 1);
429 nxt200x_writebytes(state, 0x2B, buf, 1);
439 nxt200x_writebytes(state, 0x29, buf, 3);
445 nxt200x_writebytes(state, chunkpos, &fw->data[position-3], 4);
451 nxt200x_writebytes(state, chunkpos+4-(written %4),
458 nxt200x_writebytes(state, 0x2C, buf, 2);
461 nxt200x_readbytes(state, 0x2A, buf, 1);
465 nxt200x_writebytes(state, 0x2B, buf, 1);
477 struct nxt200x_state* state = fe->demodulator_priv;
489 nxt200x_writebytes(state, 0x2B, buf,1);
500 nxt200x_writebytes(state,0x29,buf,3);
503 nxt200x_writebytes(state, 0x2C, &fw->data[position],
513 nxt200x_writebytes(state, 0x2C, buf,2);
516 nxt200x_readbytes(state, 0x2C, buf, 1);
520 nxt200x_writebytes(state, 0x2B, buf,1);
528 struct nxt200x_state* state = fe->demodulator_priv;
532 nxt200x_microcontroller_stop(state);
534 if (state->demod_chip == NXT2004) {
537 nxt200x_writebytes(state, 0x14, buf, 1);
539 nxt200x_writebytes(state, 0x17, buf, 1);
548 if (state->config->set_ts_params)
549 state->config->set_ts_params(fe, 1);
553 if (state->config->set_ts_params)
554 state->config->set_ts_params(fe, 0);
566 nxt200x_writetuner(state, buf);
570 nxt200x_agc_reset(state);
585 nxt200x_writebytes(state, 0x42, buf, 1);
588 switch (state->demod_chip) {
599 nxt200x_writebytes(state, 0x57, buf, 1);
604 switch (state->demod_chip) {
606 nxt200x_writereg_multibyte(state, 0x58, buf, 2);
609 nxt200x_writebytes(state, 0x58, buf, 2);
632 switch (state->demod_chip) {
634 nxt200x_writereg_multibyte(state, 0x5C, buf, 2);
637 nxt200x_writebytes(state, 0x5C, buf, 2);
646 nxt200x_writebytes(state, 0x43, buf, 1);
648 if (state->demod_chip == NXT2004) {
652 nxt200x_writebytes(state, 0x46, buf, 2);
658 switch (state->demod_chip) {
660 nxt200x_writereg_multibyte(state, 0x4B, buf, 2);
663 nxt200x_writebytes(state, 0x4B, buf, 2);
672 nxt200x_writebytes(state, 0x4D, buf, 1);
676 nxt200x_writebytes(state, 0x55, buf, 1);
680 nxt200x_writebytes(state, 0x41, buf, 1);
682 if (state->demod_chip == NXT2004) {
683 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
685 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
688 nxt200x_readreg_multibyte(state, 0x08, buf, 1);
690 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
691 nxt200x_readreg_multibyte(state, 0x08, buf, 1);
693 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
695 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
697 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
699 nxt200x_writereg_multibyte(state, 0x81, buf, 1);
701 nxt200x_writereg_multibyte(state, 0x82, buf, 3);
702 nxt200x_readreg_multibyte(state, 0x88, buf, 1);
704 nxt200x_writereg_multibyte(state, 0x88, buf, 1);
705 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
707 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
725 nxt200x_writebytes(state, 0x30, buf, 1);
729 nxt200x_writebytes(state, 0x41, buf, 1);
734 switch (state->demod_chip) {
736 nxt200x_writereg_multibyte(state, 0x49, buf, 2);
737 nxt200x_writereg_multibyte(state, 0x4B, buf, 2);
740 nxt200x_writebytes(state, 0x49, buf, 2);
741 nxt200x_writebytes(state, 0x4B, buf, 2);
750 nxt200x_writebytes(state, 0x41, buf, 1);
752 nxt200x_microcontroller_start(state);
754 if (state->demod_chip == NXT2004) {
755 nxt2004_microcontroller_init(state);
760 nxt200x_writebytes(state, 0x5C, buf, 2);
771 struct nxt200x_state* state = fe->demodulator_priv;
773 nxt200x_readbytes(state, 0x31, &lock, 1);
788 struct nxt200x_state* state = fe->demodulator_priv;
791 nxt200x_readreg_multibyte(state, 0xE6, b, 3);
800 struct nxt200x_state* state = fe->demodulator_priv;
806 nxt200x_writebytes(state, 0xA1, b, 1);
809 nxt200x_readreg_multibyte(state, 0xA6, b, 2);
820 struct nxt200x_state* state = fe->demodulator_priv;
827 nxt200x_writebytes(state, 0xA1, b, 1);
830 nxt200x_readreg_multibyte(state, 0xA6, b, 2);
853 struct nxt200x_state* state = fe->demodulator_priv;
856 nxt200x_readreg_multibyte(state, 0xE6, b, 3);
869 struct nxt200x_state* state = fe->demodulator_priv;
878 state->i2c->dev.parent);
895 nxt200x_microcontroller_stop(state);
899 nxt200x_writebytes(state, 0x2B, buf, 1);
902 nxt200x_microcontroller_stop(state);
906 nxt200x_writebytes(state, 0x08, buf, 1);
908 nxt200x_writebytes(state, 0x08, buf, 1);
912 nxt200x_writebytes(state, 0x57, buf, 1);
916 nxt200x_writebytes(state, 0x09, buf, 1);
921 nxt200x_writebytes(state, 0xE9, buf, 2);
925 nxt200x_writebytes(state, 0xCC, buf, 1);
932 struct nxt200x_state* state = fe->demodulator_priv;
939 nxt200x_writebytes(state, 0x1E, buf, 1);
945 state->i2c->dev.parent);
963 nxt200x_writebytes(state, 0x19, buf, 1);
965 nxt2004_microcontroller_init(state);
966 nxt200x_microcontroller_stop(state);
967 nxt200x_microcontroller_stop(state);
968 nxt2004_microcontroller_init(state);
969 nxt200x_microcontroller_stop(state);
973 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
975 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
979 nxt200x_writebytes(state, 0x57, buf, 1);
984 nxt200x_writebytes(state, 0x35, buf, 2);
986 nxt200x_writebytes(state, 0x34, buf, 1);
988 nxt200x_writebytes(state, 0x21, buf, 1);
992 nxt200x_writebytes(state, 0x0A, buf, 1);
996 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1001 nxt200x_writebytes(state, 0xE9, buf, 2);
1005 nxt200x_writebytes(state, 0xCC, buf, 1);
1008 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1010 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1013 nxt200x_readreg_multibyte(state, 0x08, buf, 1);
1015 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
1016 nxt200x_readreg_multibyte(state, 0x08, buf, 1);
1018 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
1021 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1023 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1025 nxt200x_writereg_multibyte(state, 0x81, buf, 1);
1027 nxt200x_writereg_multibyte(state, 0x82, buf, 3);
1029 nxt200x_readreg_multibyte(state, 0x88, buf, 1);
1031 nxt200x_writereg_multibyte(state, 0x88, buf, 1);
1032 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1034 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1036 nxt200x_readbytes(state, 0x10, buf, 1);
1038 nxt200x_writebytes(state, 0x10, buf, 1);
1039 nxt200x_readbytes(state, 0x0A, buf, 1);
1041 nxt200x_writebytes(state, 0x0A, buf, 1);
1043 nxt2004_microcontroller_init(state);
1046 nxt200x_writebytes(state, 0x0A, buf, 1);
1048 nxt200x_writebytes(state, 0xE9, buf, 1);
1050 nxt200x_writebytes(state, 0xEA, buf, 1);
1052 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1054 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1055 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1057 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1060 nxt200x_readreg_multibyte(state, 0x08, buf, 1);
1062 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
1063 nxt200x_readreg_multibyte(state, 0x08, buf, 1);
1065 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
1067 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1069 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1071 nxt200x_writereg_multibyte(state, 0x81, buf, 1);
1073 nxt200x_writereg_multibyte(state, 0x82, buf, 3);
1075 nxt200x_readreg_multibyte(state, 0x88, buf, 1);
1077 nxt200x_writereg_multibyte(state, 0x88, buf, 1);
1079 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1081 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1084 nxt200x_readbytes(state, 0x10, buf, 1);
1086 nxt200x_writebytes(state, 0x10, buf, 1);
1088 nxt200x_writebytes(state, 0x13, buf, 1);
1090 nxt200x_writebytes(state, 0x16, buf, 1);
1092 nxt200x_writebytes(state, 0x14, buf, 1);
1094 nxt200x_writebytes(state, 0x14, buf, 1);
1095 nxt200x_writebytes(state, 0x17, buf, 1);
1096 nxt200x_writebytes(state, 0x14, buf, 1);
1097 nxt200x_writebytes(state, 0x17, buf, 1);
1104 struct nxt200x_state* state = fe->demodulator_priv;
1107 if (!state->initialised) {
1108 switch (state->demod_chip) {
1119 state->initialised = 1;
1134 struct nxt200x_state* state = fe->demodulator_priv;
1135 kfree(state);
1143 struct nxt200x_state* state = NULL;
1146 /* allocate memory for the internal state */
1147 state = kzalloc(sizeof(struct nxt200x_state), GFP_KERNEL);
1148 if (state == NULL)
1151 /* setup the state */
1152 state->config = config;
1153 state->i2c = i2c;
1154 state->initialised = 0;
1157 nxt200x_readbytes(state, 0x00, buf, 5);
1163 state->demod_chip = NXT2002;
1167 state->demod_chip = NXT2004;
1175 switch (state->demod_chip) {
1191 memcpy(&state->frontend.ops, &nxt200x_ops, sizeof(struct dvb_frontend_ops));
1192 state->frontend.demodulator_priv = state;
1193 return &state->frontend;
1196 kfree(state);