Lines Matching refs: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, ®, 1);
150 nxt200x_writebytes(state, 0x36, data, len);
152 switch (state->demod_chip) {
174 nxt200x_writebytes(state, 0x34, &len2, 1);
177 nxt200x_writebytes(state, 0x21, &buf, 1);
179 nxt200x_readbytes(state, 0x21, &buf, 1);
181 switch (state->demod_chip) {
199 static int nxt200x_readreg_multibyte (struct nxt200x_state* state, u8 reg, u8* data, u8 len)
206 nxt200x_writebytes(state, 0x35, ®, 1);
208 switch (state->demod_chip) {
212 nxt200x_writebytes(state, 0x34, &len2, 1);
215 nxt200x_readbytes(state, reg, data, len);
228 nxt200x_writebytes(state, 0x34, &len2, 1);
232 nxt200x_writebytes(state, 0x21, &buf, 1);
236 nxt200x_readbytes(state, 0x36 + i, &data[i], 1);
244 static void nxt200x_microcontroller_stop (struct nxt200x_state* state)
250 switch (state->demod_chip) {
263 nxt200x_writebytes(state, 0x22, &buf, 1);
266 nxt200x_readbytes(state, 0x31, &buf, 1);
277 static void nxt200x_microcontroller_start (struct nxt200x_state* state)
283 nxt200x_writebytes(state, 0x22, &buf, 1);
286 static void nxt2004_microcontroller_init (struct nxt200x_state* state)
293 nxt200x_writebytes(state, 0x2b, buf, 1);
295 nxt200x_writebytes(state, 0x34, buf, 1);
297 nxt200x_writebytes(state, 0x35, buf, 1);
300 nxt200x_writebytes(state, 0x36, buf, 9);
302 nxt200x_writebytes(state, 0x21, buf, 1);
305 nxt200x_readbytes(state, 0x21, buf, 1);
317 static int nxt200x_writetuner (struct nxt200x_state* state, u8* data)
327 switch (state->demod_chip) {
329 if (i2c_writebytes(state, data[0], data+1, 4))
333 i2c_readbytes(state, data[0], &buf, 1);
344 nxt200x_writebytes(state, 0x20, &buf, 1);
348 nxt200x_writebytes(state, 0x34, &buf, 1);
351 nxt200x_writebytes(state, 0x36, data+1, 4);
355 nxt200x_writebytes(state, 0x35, &buf, 1);
359 nxt200x_writebytes(state, 0x21, &buf, 1);
362 nxt200x_readbytes(state, 0x21, &buf, 1);
376 static void nxt200x_agc_reset(struct nxt200x_state* state)
381 switch (state->demod_chip) {
384 nxt200x_writebytes(state, 0x08, &buf, 1);
386 nxt200x_writebytes(state, 0x08, &buf, 1);
389 nxt200x_readreg_multibyte(state, 0x08, &buf, 1);
391 nxt200x_writereg_multibyte(state, 0x08, &buf, 1);
393 nxt200x_writereg_multibyte(state, 0x08, &buf, 1);
404 struct nxt200x_state* state = fe->demodulator_priv;
412 nxt200x_readbytes(state, 0x10, buf, 1);
423 nxt200x_writebytes(state, 0x2B, buf, 1);
433 nxt200x_writebytes(state, 0x29, buf, 3);
439 nxt200x_writebytes(state, chunkpos, &fw->data[position-3], 4);
445 nxt200x_writebytes(state, chunkpos+4-(written %4),
452 nxt200x_writebytes(state, 0x2C, buf, 2);
455 nxt200x_readbytes(state, 0x2A, buf, 1);
459 nxt200x_writebytes(state, 0x2B, buf, 1);
471 struct nxt200x_state* state = fe->demodulator_priv;
483 nxt200x_writebytes(state, 0x2B, buf,1);
494 nxt200x_writebytes(state,0x29,buf,3);
497 nxt200x_writebytes(state, 0x2C, &fw->data[position],
507 nxt200x_writebytes(state, 0x2C, buf,2);
510 nxt200x_readbytes(state, 0x2C, buf, 1);
514 nxt200x_writebytes(state, 0x2B, buf,1);
522 struct nxt200x_state* state = fe->demodulator_priv;
526 nxt200x_microcontroller_stop(state);
528 if (state->demod_chip == NXT2004) {
531 nxt200x_writebytes(state, 0x14, buf, 1);
533 nxt200x_writebytes(state, 0x17, buf, 1);
542 if (state->config->set_ts_params)
543 state->config->set_ts_params(fe, 1);
547 if (state->config->set_ts_params)
548 state->config->set_ts_params(fe, 0);
559 nxt200x_writetuner(state, buf);
563 nxt200x_agc_reset(state);
577 nxt200x_writebytes(state, 0x42, buf, 1);
580 switch (state->demod_chip) {
590 nxt200x_writebytes(state, 0x57, buf, 1);
595 switch (state->demod_chip) {
597 nxt200x_writereg_multibyte(state, 0x58, buf, 2);
600 nxt200x_writebytes(state, 0x58, buf, 2);
621 switch (state->demod_chip) {
623 nxt200x_writereg_multibyte(state, 0x5C, buf, 2);
626 nxt200x_writebytes(state, 0x5C, buf, 2);
634 nxt200x_writebytes(state, 0x43, buf, 1);
636 if (state->demod_chip == NXT2004) {
640 nxt200x_writebytes(state, 0x46, buf, 2);
646 switch (state->demod_chip) {
648 nxt200x_writereg_multibyte(state, 0x4B, buf, 2);
651 nxt200x_writebytes(state, 0x4B, buf, 2);
659 nxt200x_writebytes(state, 0x4D, buf, 1);
663 nxt200x_writebytes(state, 0x55, buf, 1);
667 nxt200x_writebytes(state, 0x41, buf, 1);
669 if (state->demod_chip == NXT2004) {
670 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
672 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
675 nxt200x_readreg_multibyte(state, 0x08, buf, 1);
677 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
678 nxt200x_readreg_multibyte(state, 0x08, buf, 1);
680 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
682 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
684 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
686 nxt200x_writereg_multibyte(state, 0x81, buf, 1);
688 nxt200x_writereg_multibyte(state, 0x82, buf, 3);
689 nxt200x_readreg_multibyte(state, 0x88, buf, 1);
691 nxt200x_writereg_multibyte(state, 0x88, buf, 1);
692 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
694 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
711 nxt200x_writebytes(state, 0x30, buf, 1);
715 nxt200x_writebytes(state, 0x41, buf, 1);
720 switch (state->demod_chip) {
722 nxt200x_writereg_multibyte(state, 0x49, buf, 2);
723 nxt200x_writereg_multibyte(state, 0x4B, buf, 2);
726 nxt200x_writebytes(state, 0x49, buf, 2);
727 nxt200x_writebytes(state, 0x4B, buf, 2);
735 nxt200x_writebytes(state, 0x41, buf, 1);
737 nxt200x_microcontroller_start(state);
739 if (state->demod_chip == NXT2004) {
740 nxt2004_microcontroller_init(state);
745 nxt200x_writebytes(state, 0x5C, buf, 2);
756 struct nxt200x_state* state = fe->demodulator_priv;
758 nxt200x_readbytes(state, 0x31, &lock, 1);
773 struct nxt200x_state* state = fe->demodulator_priv;
776 nxt200x_readreg_multibyte(state, 0xE6, b, 3);
785 struct nxt200x_state* state = fe->demodulator_priv;
791 nxt200x_writebytes(state, 0xA1, b, 1);
794 nxt200x_readreg_multibyte(state, 0xA6, b, 2);
805 struct nxt200x_state* state = fe->demodulator_priv;
812 nxt200x_writebytes(state, 0xA1, b, 1);
815 nxt200x_readreg_multibyte(state, 0xA6, b, 2);
838 struct nxt200x_state* state = fe->demodulator_priv;
841 nxt200x_readreg_multibyte(state, 0xE6, b, 3);
854 struct nxt200x_state* state = fe->demodulator_priv;
863 state->i2c->dev.parent);
880 nxt200x_microcontroller_stop(state);
884 nxt200x_writebytes(state, 0x2B, buf, 1);
887 nxt200x_microcontroller_stop(state);
891 nxt200x_writebytes(state, 0x08, buf, 1);
893 nxt200x_writebytes(state, 0x08, buf, 1);
897 nxt200x_writebytes(state, 0x57, buf, 1);
901 nxt200x_writebytes(state, 0x09, buf, 1);
906 nxt200x_writebytes(state, 0xE9, buf, 2);
910 nxt200x_writebytes(state, 0xCC, buf, 1);
917 struct nxt200x_state* state = fe->demodulator_priv;
924 nxt200x_writebytes(state, 0x1E, buf, 1);
930 state->i2c->dev.parent);
948 nxt200x_writebytes(state, 0x19, buf, 1);
950 nxt2004_microcontroller_init(state);
951 nxt200x_microcontroller_stop(state);
952 nxt200x_microcontroller_stop(state);
953 nxt2004_microcontroller_init(state);
954 nxt200x_microcontroller_stop(state);
958 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
960 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
964 nxt200x_writebytes(state, 0x57, buf, 1);
969 nxt200x_writebytes(state, 0x35, buf, 2);
971 nxt200x_writebytes(state, 0x34, buf, 1);
973 nxt200x_writebytes(state, 0x21, buf, 1);
977 nxt200x_writebytes(state, 0x0A, buf, 1);
981 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
986 nxt200x_writebytes(state, 0xE9, buf, 2);
990 nxt200x_writebytes(state, 0xCC, buf, 1);
993 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
995 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
998 nxt200x_readreg_multibyte(state, 0x08, buf, 1);
1000 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
1001 nxt200x_readreg_multibyte(state, 0x08, buf, 1);
1003 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
1006 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1008 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1010 nxt200x_writereg_multibyte(state, 0x81, buf, 1);
1012 nxt200x_writereg_multibyte(state, 0x82, buf, 3);
1014 nxt200x_readreg_multibyte(state, 0x88, buf, 1);
1016 nxt200x_writereg_multibyte(state, 0x88, buf, 1);
1017 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1019 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1021 nxt200x_readbytes(state, 0x10, buf, 1);
1023 nxt200x_writebytes(state, 0x10, buf, 1);
1024 nxt200x_readbytes(state, 0x0A, buf, 1);
1026 nxt200x_writebytes(state, 0x0A, buf, 1);
1028 nxt2004_microcontroller_init(state);
1031 nxt200x_writebytes(state, 0x0A, buf, 1);
1033 nxt200x_writebytes(state, 0xE9, buf, 1);
1035 nxt200x_writebytes(state, 0xEA, buf, 1);
1037 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1039 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1040 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1042 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1045 nxt200x_readreg_multibyte(state, 0x08, buf, 1);
1047 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
1048 nxt200x_readreg_multibyte(state, 0x08, buf, 1);
1050 nxt200x_writereg_multibyte(state, 0x08, buf, 1);
1052 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1054 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1056 nxt200x_writereg_multibyte(state, 0x81, buf, 1);
1058 nxt200x_writereg_multibyte(state, 0x82, buf, 3);
1060 nxt200x_readreg_multibyte(state, 0x88, buf, 1);
1062 nxt200x_writereg_multibyte(state, 0x88, buf, 1);
1064 nxt200x_readreg_multibyte(state, 0x80, buf, 1);
1066 nxt200x_writereg_multibyte(state, 0x80, buf, 1);
1069 nxt200x_readbytes(state, 0x10, buf, 1);
1071 nxt200x_writebytes(state, 0x10, buf, 1);
1073 nxt200x_writebytes(state, 0x13, buf, 1);
1075 nxt200x_writebytes(state, 0x16, buf, 1);
1077 nxt200x_writebytes(state, 0x14, buf, 1);
1079 nxt200x_writebytes(state, 0x14, buf, 1);
1080 nxt200x_writebytes(state, 0x17, buf, 1);
1081 nxt200x_writebytes(state, 0x14, buf, 1);
1082 nxt200x_writebytes(state, 0x17, buf, 1);
1089 struct nxt200x_state* state = fe->demodulator_priv;
1092 if (!state->initialised) {
1093 switch (state->demod_chip) {
1103 state->initialised = 1;
1118 struct nxt200x_state* state = fe->demodulator_priv;
1119 kfree(state);
1127 struct nxt200x_state* state = NULL;
1130 /* allocate memory for the internal state */
1131 state = kzalloc(sizeof(struct nxt200x_state), GFP_KERNEL);
1132 if (state == NULL)
1135 /* setup the state */
1136 state->config = config;
1137 state->i2c = i2c;
1138 state->initialised = 0;
1141 nxt200x_readbytes(state, 0x00, buf, 5);
1147 state->demod_chip = NXT2002;
1151 state->demod_chip = NXT2004;
1159 switch (state->demod_chip) {
1175 memcpy(&state->frontend.ops, &nxt200x_ops, sizeof(struct dvb_frontend_ops));
1176 state->frontend.demodulator_priv = state;
1177 return &state->frontend;
1180 kfree(state);