Lines Matching +full:0 +full:x29

18 	MB86A20S_13SEG = 0,
25 0xb0, 0xc0, 0xd0, 0xe0,
26 0xf0, 0x00, 0x10, 0x20,
59 { 0x70, 0x0f },
60 { 0x70, 0xff },
61 { 0x08, 0x01 },
62 { 0x50, 0xd1 }, { 0x51, 0x20 },
66 { 0x50, 0xd1 }, { 0x51, 0x22 },
67 { 0x39, 0x01 },
68 { 0x71, 0x00 },
69 { 0x3b, 0x21 },
70 { 0x3c, 0x3a },
71 { 0x01, 0x0d },
72 { 0x04, 0x08 }, { 0x05, 0x05 },
73 { 0x04, 0x0e }, { 0x05, 0x00 },
74 { 0x04, 0x0f }, { 0x05, 0x14 },
75 { 0x04, 0x0b }, { 0x05, 0x8c },
76 { 0x04, 0x00 }, { 0x05, 0x00 },
77 { 0x04, 0x01 }, { 0x05, 0x07 },
78 { 0x04, 0x02 }, { 0x05, 0x0f },
79 { 0x04, 0x03 }, { 0x05, 0xa0 },
80 { 0x04, 0x09 }, { 0x05, 0x00 },
81 { 0x04, 0x0a }, { 0x05, 0xff },
82 { 0x04, 0x27 }, { 0x05, 0x64 },
83 { 0x04, 0x28 }, { 0x05, 0x00 },
84 { 0x04, 0x1e }, { 0x05, 0xff },
85 { 0x04, 0x29 }, { 0x05, 0x0a },
86 { 0x04, 0x32 }, { 0x05, 0x0a },
87 { 0x04, 0x14 }, { 0x05, 0x02 },
88 { 0x04, 0x04 }, { 0x05, 0x00 },
89 { 0x04, 0x05 }, { 0x05, 0x22 },
90 { 0x04, 0x06 }, { 0x05, 0x0e },
91 { 0x04, 0x07 }, { 0x05, 0xd8 },
92 { 0x04, 0x12 }, { 0x05, 0x00 },
93 { 0x04, 0x13 }, { 0x05, 0xff },
102 { 0x52, 0x01 }, /* Turn on BER before Viterbi */
103 { 0x50, 0xa7 }, { 0x51, 0x00 },
104 { 0x50, 0xa8 }, { 0x51, 0xff },
105 { 0x50, 0xa9 }, { 0x51, 0xff },
106 { 0x50, 0xaa }, { 0x51, 0x00 },
107 { 0x50, 0xab }, { 0x51, 0xff },
108 { 0x50, 0xac }, { 0x51, 0xff },
109 { 0x50, 0xad }, { 0x51, 0x00 },
110 { 0x50, 0xae }, { 0x51, 0xff },
111 { 0x50, 0xaf }, { 0x51, 0xff },
120 { 0x5e, 0x07 }, /* Turn on BER after Viterbi */
121 { 0x50, 0xdc }, { 0x51, 0x00 },
122 { 0x50, 0xdd }, { 0x51, 0x7f },
123 { 0x50, 0xde }, { 0x51, 0x00 },
124 { 0x50, 0xdf }, { 0x51, 0x7f },
125 { 0x50, 0xe0 }, { 0x51, 0x00 },
126 { 0x50, 0xe1 }, { 0x51, 0x7f },
135 { 0x50, 0xb0 }, { 0x51, 0x07 }, /* Enable PER */
136 { 0x50, 0xb2 }, { 0x51, 0x00 },
137 { 0x50, 0xb3 }, { 0x51, 0x7f },
138 { 0x50, 0xb4 }, { 0x51, 0x00 },
139 { 0x50, 0xb5 }, { 0x51, 0x7f },
140 { 0x50, 0xb6 }, { 0x51, 0x00 },
141 { 0x50, 0xb7 }, { 0x51, 0x7f },
143 { 0x50, 0x50 }, { 0x51, 0x02 }, /* MER manual mode */
144 { 0x50, 0x51 }, { 0x51, 0x04 }, /* MER symbol 4 */
145 { 0x45, 0x04 }, /* CN symbol 4 */
146 { 0x48, 0x04 }, /* CN manual mode */
147 { 0x50, 0xd5 }, { 0x51, 0x01 },
148 { 0x50, 0xd6 }, { 0x51, 0x1f },
149 { 0x50, 0xd2 }, { 0x51, 0x03 },
150 { 0x50, 0xd7 }, { 0x51, 0x3f },
151 { 0x1c, 0x01 },
152 { 0x28, 0x06 }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x03 },
153 { 0x28, 0x07 }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x0d },
154 { 0x28, 0x08 }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x02 },
155 { 0x28, 0x09 }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x01 },
156 { 0x28, 0x0a }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x21 },
157 { 0x28, 0x0b }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x29 },
158 { 0x28, 0x0c }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x16 },
159 { 0x28, 0x0d }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x31 },
160 { 0x28, 0x0e }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x0e },
161 { 0x28, 0x0f }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x4e },
162 { 0x28, 0x10 }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x46 },
163 { 0x28, 0x11 }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x0f },
164 { 0x28, 0x12 }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x56 },
165 { 0x28, 0x13 }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x35 },
166 { 0x28, 0x14 }, { 0x29, 0x00 }, { 0x2a, 0x01 }, { 0x2b, 0xbe },
167 { 0x28, 0x15 }, { 0x29, 0x00 }, { 0x2a, 0x01 }, { 0x2b, 0x84 },
168 { 0x28, 0x16 }, { 0x29, 0x00 }, { 0x2a, 0x03 }, { 0x2b, 0xee },
169 { 0x28, 0x17 }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x98 },
170 { 0x28, 0x18 }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x9f },
171 { 0x28, 0x19 }, { 0x29, 0x00 }, { 0x2a, 0x07 }, { 0x2b, 0xb2 },
172 { 0x28, 0x1a }, { 0x29, 0x00 }, { 0x2a, 0x06 }, { 0x2b, 0xc2 },
173 { 0x28, 0x1b }, { 0x29, 0x00 }, { 0x2a, 0x07 }, { 0x2b, 0x4a },
174 { 0x28, 0x1c }, { 0x29, 0x00 }, { 0x2a, 0x01 }, { 0x2b, 0xbc },
175 { 0x28, 0x1d }, { 0x29, 0x00 }, { 0x2a, 0x04 }, { 0x2b, 0xba },
176 { 0x28, 0x1e }, { 0x29, 0x00 }, { 0x2a, 0x06 }, { 0x2b, 0x14 },
177 { 0x50, 0x1e }, { 0x51, 0x5d },
178 { 0x50, 0x22 }, { 0x51, 0x00 },
179 { 0x50, 0x23 }, { 0x51, 0xc8 },
180 { 0x50, 0x24 }, { 0x51, 0x00 },
181 { 0x50, 0x25 }, { 0x51, 0xf0 },
182 { 0x50, 0x26 }, { 0x51, 0x00 },
183 { 0x50, 0x27 }, { 0x51, 0xc3 },
184 { 0x50, 0x39 }, { 0x51, 0x02 },
185 { 0x50, 0xd5 }, { 0x51, 0x01 },
186 { 0xd0, 0x00 },
190 { 0x70, 0xf0 },
191 { 0x70, 0xff },
192 { 0x08, 0x01 },
193 { 0x08, 0x00 },
197 { 0x53, 0x00 }, /* pre BER Counter reset */
198 { 0x53, 0x07 },
200 { 0x5f, 0x00 }, /* post BER Counter reset */
201 { 0x5f, 0x07 },
203 { 0x50, 0xb1 }, /* PER Counter reset */
204 { 0x51, 0x07 },
205 { 0x51, 0x00 },
217 .addr = i2c_addr, .flags = 0, .buf = buf, .len = 2 in mb86a20s_i2c_writereg()
224 "%s: writereg error (rc == %i, reg == 0x%02x, data == 0x%02x)\n", in mb86a20s_i2c_writereg()
229 return 0; in mb86a20s_i2c_writereg()
237 for (i = 0; i < size; i++) { in mb86a20s_i2c_writeregdata()
240 if (rc < 0) in mb86a20s_i2c_writeregdata()
243 return 0; in mb86a20s_i2c_writeregdata()
252 { .addr = i2c_addr, .flags = 0, .buf = &reg, .len = 1 }, in mb86a20s_i2c_readreg()
259 dev_err(&state->i2c->dev, "%s: reg=0x%x (error=%d)\n", in mb86a20s_i2c_readreg()
261 return (rc < 0) ? rc : -EIO; in mb86a20s_i2c_readreg()
286 *status = 0; in mb86a20s_read_status()
288 val = mb86a20s_readreg(state, 0x0a); in mb86a20s_read_status()
289 if (val < 0) in mb86a20s_read_status()
292 val &= 0xf; in mb86a20s_read_status()
312 dev_dbg(&state->i2c->dev, "%s: Status = 0x%02x (state = %d)\n", in mb86a20s_read_status()
327 return c->strength.stat[0].uvalue; in mb86a20s_read_signal_strength()
330 c->strength.stat[0].uvalue = 0; in mb86a20s_read_signal_strength()
333 rf_max = 0xfff; in mb86a20s_read_signal_strength()
334 rf_min = 0; in mb86a20s_read_signal_strength()
337 rc = mb86a20s_writereg(state, 0x04, 0x1f); in mb86a20s_read_signal_strength()
338 if (rc < 0) in mb86a20s_read_signal_strength()
340 rc = mb86a20s_writereg(state, 0x05, rf >> 8); in mb86a20s_read_signal_strength()
341 if (rc < 0) in mb86a20s_read_signal_strength()
343 rc = mb86a20s_writereg(state, 0x04, 0x20); in mb86a20s_read_signal_strength()
344 if (rc < 0) in mb86a20s_read_signal_strength()
346 rc = mb86a20s_writereg(state, 0x05, rf); in mb86a20s_read_signal_strength()
347 if (rc < 0) in mb86a20s_read_signal_strength()
350 rc = mb86a20s_readreg(state, 0x02); in mb86a20s_read_signal_strength()
351 if (rc < 0) in mb86a20s_read_signal_strength()
353 if (rc & 0x08) in mb86a20s_read_signal_strength()
368 c->strength.stat[0].uvalue = rf; in mb86a20s_read_signal_strength()
371 return 0; in mb86a20s_read_signal_strength()
381 [0] = 0x86, /* Layer A */ in mb86a20s_get_modulation()
382 [1] = 0x8a, /* Layer B */ in mb86a20s_get_modulation()
383 [2] = 0x8e, /* Layer C */ in mb86a20s_get_modulation()
388 rc = mb86a20s_writereg(state, 0x6d, reg[layer]); in mb86a20s_get_modulation()
389 if (rc < 0) in mb86a20s_get_modulation()
391 rc = mb86a20s_readreg(state, 0x6e); in mb86a20s_get_modulation()
392 if (rc < 0) in mb86a20s_get_modulation()
394 switch ((rc >> 4) & 0x07) { in mb86a20s_get_modulation()
395 case 0: in mb86a20s_get_modulation()
414 [0] = 0x87, /* Layer A */ in mb86a20s_get_fec()
415 [1] = 0x8b, /* Layer B */ in mb86a20s_get_fec()
416 [2] = 0x8f, /* Layer C */ in mb86a20s_get_fec()
421 rc = mb86a20s_writereg(state, 0x6d, reg[layer]); in mb86a20s_get_fec()
422 if (rc < 0) in mb86a20s_get_fec()
424 rc = mb86a20s_readreg(state, 0x6e); in mb86a20s_get_fec()
425 if (rc < 0) in mb86a20s_get_fec()
427 switch ((rc >> 4) & 0x07) { in mb86a20s_get_fec()
428 case 0: in mb86a20s_get_fec()
448 0, 1, 2, 4, 8 in mb86a20s_get_interleaving()
452 [0] = 0x88, /* Layer A */ in mb86a20s_get_interleaving()
453 [1] = 0x8c, /* Layer B */ in mb86a20s_get_interleaving()
454 [2] = 0x90, /* Layer C */ in mb86a20s_get_interleaving()
459 rc = mb86a20s_writereg(state, 0x6d, reg[layer]); in mb86a20s_get_interleaving()
460 if (rc < 0) in mb86a20s_get_interleaving()
462 rc = mb86a20s_readreg(state, 0x6e); in mb86a20s_get_interleaving()
463 if (rc < 0) in mb86a20s_get_interleaving()
466 return interleaving[(rc >> 4) & 0x07]; in mb86a20s_get_interleaving()
474 [0] = 0x89, /* Layer A */ in mb86a20s_get_segment_count()
475 [1] = 0x8d, /* Layer B */ in mb86a20s_get_segment_count()
476 [2] = 0x91, /* Layer C */ in mb86a20s_get_segment_count()
484 rc = mb86a20s_writereg(state, 0x6d, reg[layer]); in mb86a20s_get_segment_count()
485 if (rc < 0) in mb86a20s_get_segment_count()
487 rc = mb86a20s_readreg(state, 0x6e); in mb86a20s_get_segment_count()
488 if (rc < 0) in mb86a20s_get_segment_count()
490 count = (rc >> 4) & 0x0f; in mb86a20s_get_segment_count()
509 c->isdbt_layer_enabled = 0; in mb86a20s_reset_frontend_cache()
512 c->isdbt_sb_mode = 0; in mb86a20s_reset_frontend_cache()
513 c->isdbt_sb_segment_count = 0; in mb86a20s_reset_frontend_cache()
560 mod = 0; in mb86a20s_layer_bitrate()
574 fec = 0; in mb86a20s_layer_bitrate()
593 guard = 0; in mb86a20s_layer_bitrate()
616 "%s: layer %c bitrate: %d kbps; counter = %d (0x%06x)\n", in mb86a20s_layer_bitrate()
636 rc = mb86a20s_writereg(state, 0x6d, 0x85); in mb86a20s_get_frontend()
637 if (rc < 0) in mb86a20s_get_frontend()
639 rc = mb86a20s_readreg(state, 0x6e); in mb86a20s_get_frontend()
640 if (rc < 0) in mb86a20s_get_frontend()
642 c->isdbt_partial_reception = (rc & 0x10) ? 1 : 0; in mb86a20s_get_frontend()
646 for (layer = 0; layer < NUM_LAYERS; layer++) { in mb86a20s_get_frontend()
651 if (rc < 0) in mb86a20s_get_frontend()
653 if (rc >= 0 && rc < 14) { in mb86a20s_get_frontend()
656 c->layer[layer].segment_count = 0; in mb86a20s_get_frontend()
657 state->estimated_rate[layer] = 0; in mb86a20s_get_frontend()
662 if (rc < 0) in mb86a20s_get_frontend()
668 if (rc < 0) in mb86a20s_get_frontend()
674 if (rc < 0) in mb86a20s_get_frontend()
685 rc = mb86a20s_writereg(state, 0x6d, 0x84); in mb86a20s_get_frontend()
686 if (rc < 0) in mb86a20s_get_frontend()
688 if ((rc & 0x60) == 0x20) { in mb86a20s_get_frontend()
696 rc = mb86a20s_readreg(state, 0x07); in mb86a20s_get_frontend()
697 if (rc < 0) in mb86a20s_get_frontend()
700 if ((rc & 0x60) == 0x20) { in mb86a20s_get_frontend()
702 switch ((rc >> 2) & 0x03) { in mb86a20s_get_frontend()
712 if (!(rc & 0x10)) { in mb86a20s_get_frontend()
714 switch (rc & 0x3) { in mb86a20s_get_frontend()
715 case 0: in mb86a20s_get_frontend()
726 return 0; in mb86a20s_get_frontend()
731 c->isdbt_layer_enabled = 0; in mb86a20s_get_frontend()
746 memset(&c->cnr, 0, sizeof(c->cnr)); in mb86a20s_reset_counters()
747 memset(&c->pre_bit_error, 0, sizeof(c->pre_bit_error)); in mb86a20s_reset_counters()
748 memset(&c->pre_bit_count, 0, sizeof(c->pre_bit_count)); in mb86a20s_reset_counters()
749 memset(&c->post_bit_error, 0, sizeof(c->post_bit_error)); in mb86a20s_reset_counters()
750 memset(&c->post_bit_count, 0, sizeof(c->post_bit_count)); in mb86a20s_reset_counters()
751 memset(&c->block_error, 0, sizeof(c->block_error)); in mb86a20s_reset_counters()
752 memset(&c->block_count, 0, sizeof(c->block_count)); in mb86a20s_reset_counters()
761 if (rc < 0) in mb86a20s_reset_counters()
765 rc = mb86a20s_readreg(state, 0x45); in mb86a20s_reset_counters()
766 if (rc < 0) in mb86a20s_reset_counters()
769 rc = mb86a20s_writereg(state, 0x45, val | 0x10); in mb86a20s_reset_counters()
770 if (rc < 0) in mb86a20s_reset_counters()
772 rc = mb86a20s_writereg(state, 0x45, val & 0x6f); in mb86a20s_reset_counters()
773 if (rc < 0) in mb86a20s_reset_counters()
777 rc = mb86a20s_writereg(state, 0x50, 0x50); in mb86a20s_reset_counters()
778 if (rc < 0) in mb86a20s_reset_counters()
780 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_reset_counters()
781 if (rc < 0) in mb86a20s_reset_counters()
784 rc = mb86a20s_writereg(state, 0x51, val | 0x01); in mb86a20s_reset_counters()
785 if (rc < 0) in mb86a20s_reset_counters()
787 rc = mb86a20s_writereg(state, 0x51, val & 0x06); in mb86a20s_reset_counters()
788 if (rc < 0) in mb86a20s_reset_counters()
813 rc = mb86a20s_readreg(state, 0x54); in mb86a20s_get_pre_ber()
814 if (rc < 0) in mb86a20s_get_pre_ber()
826 rc = mb86a20s_readreg(state, 0x55 + layer * 3); in mb86a20s_get_pre_ber()
827 if (rc < 0) in mb86a20s_get_pre_ber()
830 rc = mb86a20s_readreg(state, 0x56 + layer * 3); in mb86a20s_get_pre_ber()
831 if (rc < 0) in mb86a20s_get_pre_ber()
834 rc = mb86a20s_readreg(state, 0x57 + layer * 3); in mb86a20s_get_pre_ber()
835 if (rc < 0) in mb86a20s_get_pre_ber()
844 rc = mb86a20s_writereg(state, 0x50, 0xa7 + layer * 3); in mb86a20s_get_pre_ber()
845 if (rc < 0) in mb86a20s_get_pre_ber()
847 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_pre_ber()
848 if (rc < 0) in mb86a20s_get_pre_ber()
851 rc = mb86a20s_writereg(state, 0x50, 0xa8 + layer * 3); in mb86a20s_get_pre_ber()
852 if (rc < 0) in mb86a20s_get_pre_ber()
854 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_pre_ber()
855 if (rc < 0) in mb86a20s_get_pre_ber()
858 rc = mb86a20s_writereg(state, 0x50, 0xa9 + layer * 3); in mb86a20s_get_pre_ber()
859 if (rc < 0) in mb86a20s_get_pre_ber()
861 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_pre_ber()
862 if (rc < 0) in mb86a20s_get_pre_ber()
885 rc = mb86a20s_writereg(state, 0x52, 0x00); in mb86a20s_get_pre_ber()
888 rc = mb86a20s_writereg(state, 0x50, 0xa7 + layer * 3); in mb86a20s_get_pre_ber()
889 if (rc < 0) in mb86a20s_get_pre_ber()
891 rc = mb86a20s_writereg(state, 0x51, in mb86a20s_get_pre_ber()
893 if (rc < 0) in mb86a20s_get_pre_ber()
895 rc = mb86a20s_writereg(state, 0x50, 0xa8 + layer * 3); in mb86a20s_get_pre_ber()
896 if (rc < 0) in mb86a20s_get_pre_ber()
898 rc = mb86a20s_writereg(state, 0x51, in mb86a20s_get_pre_ber()
900 if (rc < 0) in mb86a20s_get_pre_ber()
902 rc = mb86a20s_writereg(state, 0x50, 0xa9 + layer * 3); in mb86a20s_get_pre_ber()
903 if (rc < 0) in mb86a20s_get_pre_ber()
905 rc = mb86a20s_writereg(state, 0x51, in mb86a20s_get_pre_ber()
907 if (rc < 0) in mb86a20s_get_pre_ber()
911 rc = mb86a20s_writereg(state, 0x52, 0x01); in mb86a20s_get_pre_ber()
914 rc = mb86a20s_writereg(state, 0x53, 0x00); in mb86a20s_get_pre_ber()
915 if (rc < 0) in mb86a20s_get_pre_ber()
917 rc = mb86a20s_writereg(state, 0x53, 0x07); in mb86a20s_get_pre_ber()
920 rc = mb86a20s_readreg(state, 0x53); in mb86a20s_get_pre_ber()
921 if (rc < 0) in mb86a20s_get_pre_ber()
924 rc = mb86a20s_writereg(state, 0x53, val & ~(1 << layer)); in mb86a20s_get_pre_ber()
925 if (rc < 0) in mb86a20s_get_pre_ber()
927 rc = mb86a20s_writereg(state, 0x53, val | (1 << layer)); in mb86a20s_get_pre_ber()
947 rc = mb86a20s_readreg(state, 0x60); in mb86a20s_get_post_ber()
948 if (rc < 0) in mb86a20s_get_post_ber()
960 rc = mb86a20s_readreg(state, 0x64 + layer * 3); in mb86a20s_get_post_ber()
961 if (rc < 0) in mb86a20s_get_post_ber()
964 rc = mb86a20s_readreg(state, 0x65 + layer * 3); in mb86a20s_get_post_ber()
965 if (rc < 0) in mb86a20s_get_post_ber()
968 rc = mb86a20s_readreg(state, 0x66 + layer * 3); in mb86a20s_get_post_ber()
969 if (rc < 0) in mb86a20s_get_post_ber()
978 rc = mb86a20s_writereg(state, 0x50, 0xdc + layer * 2); in mb86a20s_get_post_ber()
979 if (rc < 0) in mb86a20s_get_post_ber()
981 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_post_ber()
982 if (rc < 0) in mb86a20s_get_post_ber()
985 rc = mb86a20s_writereg(state, 0x50, 0xdd + layer * 2); in mb86a20s_get_post_ber()
986 if (rc < 0) in mb86a20s_get_post_ber()
988 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_post_ber()
989 if (rc < 0) in mb86a20s_get_post_ber()
1019 rc = mb86a20s_writereg(state, 0x5e, 0x00); in mb86a20s_get_post_ber()
1022 rc = mb86a20s_writereg(state, 0x50, 0xdc + layer * 2); in mb86a20s_get_post_ber()
1023 if (rc < 0) in mb86a20s_get_post_ber()
1025 rc = mb86a20s_writereg(state, 0x51, collect_rate >> 8); in mb86a20s_get_post_ber()
1026 if (rc < 0) in mb86a20s_get_post_ber()
1028 rc = mb86a20s_writereg(state, 0x50, 0xdd + layer * 2); in mb86a20s_get_post_ber()
1029 if (rc < 0) in mb86a20s_get_post_ber()
1031 rc = mb86a20s_writereg(state, 0x51, collect_rate & 0xff); in mb86a20s_get_post_ber()
1032 if (rc < 0) in mb86a20s_get_post_ber()
1036 rc = mb86a20s_writereg(state, 0x5e, 0x07); in mb86a20s_get_post_ber()
1039 rc = mb86a20s_writereg(state, 0x5f, 0x00); in mb86a20s_get_post_ber()
1040 if (rc < 0) in mb86a20s_get_post_ber()
1042 rc = mb86a20s_writereg(state, 0x5f, 0x07); in mb86a20s_get_post_ber()
1049 rc = mb86a20s_readreg(state, 0x5f); in mb86a20s_get_post_ber()
1050 if (rc < 0) in mb86a20s_get_post_ber()
1053 rc = mb86a20s_writereg(state, 0x5f, val & ~(1 << layer)); in mb86a20s_get_post_ber()
1054 if (rc < 0) in mb86a20s_get_post_ber()
1056 rc = mb86a20s_writereg(state, 0x5f, val | (1 << layer)); in mb86a20s_get_post_ber()
1074 rc = mb86a20s_writereg(state, 0x50, 0xb8); in mb86a20s_get_blk_error()
1075 if (rc < 0) in mb86a20s_get_blk_error()
1077 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_blk_error()
1078 if (rc < 0) in mb86a20s_get_blk_error()
1091 rc = mb86a20s_writereg(state, 0x50, 0xb9 + layer * 2); in mb86a20s_get_blk_error()
1092 if (rc < 0) in mb86a20s_get_blk_error()
1094 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_blk_error()
1095 if (rc < 0) in mb86a20s_get_blk_error()
1098 rc = mb86a20s_writereg(state, 0x50, 0xba + layer * 2); in mb86a20s_get_blk_error()
1099 if (rc < 0) in mb86a20s_get_blk_error()
1101 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_blk_error()
1102 if (rc < 0) in mb86a20s_get_blk_error()
1109 rc = mb86a20s_writereg(state, 0x50, 0xb2 + layer * 2); in mb86a20s_get_blk_error()
1110 if (rc < 0) in mb86a20s_get_blk_error()
1112 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_blk_error()
1113 if (rc < 0) in mb86a20s_get_blk_error()
1116 rc = mb86a20s_writereg(state, 0x50, 0xb3 + layer * 2); in mb86a20s_get_blk_error()
1117 if (rc < 0) in mb86a20s_get_blk_error()
1119 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_blk_error()
1120 if (rc < 0) in mb86a20s_get_blk_error()
1150 rc = mb86a20s_writereg(state, 0x50, 0xb0); in mb86a20s_get_blk_error()
1151 if (rc < 0) in mb86a20s_get_blk_error()
1153 rc = mb86a20s_writereg(state, 0x51, 0x00); in mb86a20s_get_blk_error()
1154 if (rc < 0) in mb86a20s_get_blk_error()
1158 rc = mb86a20s_writereg(state, 0x50, 0xb2 + layer * 2); in mb86a20s_get_blk_error()
1159 if (rc < 0) in mb86a20s_get_blk_error()
1161 rc = mb86a20s_writereg(state, 0x51, collect_rate >> 8); in mb86a20s_get_blk_error()
1162 if (rc < 0) in mb86a20s_get_blk_error()
1164 rc = mb86a20s_writereg(state, 0x50, 0xb3 + layer * 2); in mb86a20s_get_blk_error()
1165 if (rc < 0) in mb86a20s_get_blk_error()
1167 rc = mb86a20s_writereg(state, 0x51, collect_rate & 0xff); in mb86a20s_get_blk_error()
1168 if (rc < 0) in mb86a20s_get_blk_error()
1172 rc = mb86a20s_writereg(state, 0x50, 0xb0); in mb86a20s_get_blk_error()
1173 if (rc < 0) in mb86a20s_get_blk_error()
1175 rc = mb86a20s_writereg(state, 0x51, 0x07); in mb86a20s_get_blk_error()
1176 if (rc < 0) in mb86a20s_get_blk_error()
1180 rc = mb86a20s_writereg(state, 0x50, 0xb1); in mb86a20s_get_blk_error()
1181 if (rc < 0) in mb86a20s_get_blk_error()
1183 rc = mb86a20s_writereg(state, 0x51, 0x07); in mb86a20s_get_blk_error()
1184 if (rc < 0) in mb86a20s_get_blk_error()
1186 rc = mb86a20s_writereg(state, 0x51, 0x00); in mb86a20s_get_blk_error()
1193 rc = mb86a20s_writereg(state, 0x50, 0xb1); in mb86a20s_get_blk_error()
1194 if (rc < 0) in mb86a20s_get_blk_error()
1196 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_blk_error()
1197 if (rc < 0) in mb86a20s_get_blk_error()
1200 rc = mb86a20s_writereg(state, 0x51, val | (1 << layer)); in mb86a20s_get_blk_error()
1201 if (rc < 0) in mb86a20s_get_blk_error()
1203 rc = mb86a20s_writereg(state, 0x51, val & ~(1 << layer)); in mb86a20s_get_blk_error()
1217 { 19648, 0},
1251 { 3922688, 0},
1285 { 5314816, 0},
1319 { 2834176, 0},
1359 if (value >= segments[0].x) in interpolate_value()
1360 return segments[0].y; in interpolate_value()
1391 rc = mb86a20s_readreg(state, 0x45); in mb86a20s_get_main_CNR()
1392 if (rc < 0) in mb86a20s_get_main_CNR()
1395 if (!(rc & 0x40)) { in mb86a20s_get_main_CNR()
1402 rc = mb86a20s_readreg(state, 0x46); in mb86a20s_get_main_CNR()
1403 if (rc < 0) in mb86a20s_get_main_CNR()
1407 rc = mb86a20s_readreg(state, 0x46); in mb86a20s_get_main_CNR()
1408 if (rc < 0) in mb86a20s_get_main_CNR()
1415 c->cnr.stat[0].scale = FE_SCALE_DECIBEL; in mb86a20s_get_main_CNR()
1416 c->cnr.stat[0].svalue = cnr; in mb86a20s_get_main_CNR()
1422 rc = mb86a20s_writereg(state, 0x45, val | 0x10); in mb86a20s_get_main_CNR()
1423 if (rc < 0) in mb86a20s_get_main_CNR()
1425 rc = mb86a20s_writereg(state, 0x45, val & 0x6f); in mb86a20s_get_main_CNR()
1442 rc = mb86a20s_writereg(state, 0x50, 0x5b); in mb86a20s_get_blk_error_layer_CNR()
1443 if (rc < 0) in mb86a20s_get_blk_error_layer_CNR()
1445 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_blk_error_layer_CNR()
1446 if (rc < 0) in mb86a20s_get_blk_error_layer_CNR()
1450 if (!(rc & 0x01)) { in mb86a20s_get_blk_error_layer_CNR()
1457 for (layer = 0; layer < NUM_LAYERS; layer++) { in mb86a20s_get_blk_error_layer_CNR()
1463 rc = mb86a20s_writereg(state, 0x50, 0x52 + layer * 3); in mb86a20s_get_blk_error_layer_CNR()
1464 if (rc < 0) in mb86a20s_get_blk_error_layer_CNR()
1466 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_blk_error_layer_CNR()
1467 if (rc < 0) in mb86a20s_get_blk_error_layer_CNR()
1470 rc = mb86a20s_writereg(state, 0x50, 0x53 + layer * 3); in mb86a20s_get_blk_error_layer_CNR()
1471 if (rc < 0) in mb86a20s_get_blk_error_layer_CNR()
1473 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_blk_error_layer_CNR()
1474 if (rc < 0) in mb86a20s_get_blk_error_layer_CNR()
1477 rc = mb86a20s_writereg(state, 0x50, 0x54 + layer * 3); in mb86a20s_get_blk_error_layer_CNR()
1478 if (rc < 0) in mb86a20s_get_blk_error_layer_CNR()
1480 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_blk_error_layer_CNR()
1481 if (rc < 0) in mb86a20s_get_blk_error_layer_CNR()
1514 rc = mb86a20s_writereg(state, 0x50, 0x50); in mb86a20s_get_blk_error_layer_CNR()
1515 if (rc < 0) in mb86a20s_get_blk_error_layer_CNR()
1517 rc = mb86a20s_readreg(state, 0x51); in mb86a20s_get_blk_error_layer_CNR()
1518 if (rc < 0) in mb86a20s_get_blk_error_layer_CNR()
1522 rc = mb86a20s_writereg(state, 0x51, val | 0x01); in mb86a20s_get_blk_error_layer_CNR()
1523 if (rc < 0) in mb86a20s_get_blk_error_layer_CNR()
1525 rc = mb86a20s_writereg(state, 0x51, val & 0x06); in mb86a20s_get_blk_error_layer_CNR()
1526 if (rc < 0) in mb86a20s_get_blk_error_layer_CNR()
1529 return 0; in mb86a20s_get_blk_error_layer_CNR()
1555 c->strength.stat[0].scale = FE_SCALE_RELATIVE; in mb86a20s_stats_not_ready()
1556 c->strength.stat[0].uvalue = 0; in mb86a20s_stats_not_ready()
1559 for (layer = 0; layer < NUM_LAYERS + 1; layer++) { in mb86a20s_stats_not_ready()
1574 int rc = 0, layer; in mb86a20s_get_stats()
1575 u32 bit_error = 0, bit_count = 0; in mb86a20s_get_stats()
1576 u32 t_pre_bit_error = 0, t_pre_bit_count = 0; in mb86a20s_get_stats()
1577 u32 t_post_bit_error = 0, t_post_bit_count = 0; in mb86a20s_get_stats()
1578 u32 block_error = 0, block_count = 0; in mb86a20s_get_stats()
1579 u32 t_block_error = 0, t_block_count = 0; in mb86a20s_get_stats()
1580 int active_layers = 0, pre_ber_layers = 0, post_ber_layers = 0; in mb86a20s_get_stats()
1581 int per_layers = 0; in mb86a20s_get_stats()
1596 return 0; in mb86a20s_get_stats()
1598 for (layer = 0; layer < NUM_LAYERS; layer++) { in mb86a20s_get_stats()
1606 if (rc >= 0) { in mb86a20s_get_stats()
1628 if (rc >= 0) { in mb86a20s_get_stats()
1651 if (rc >= 0) { in mb86a20s_get_stats()
1697 c->pre_bit_error.stat[0].scale = FE_SCALE_COUNTER; in mb86a20s_get_stats()
1698 c->pre_bit_error.stat[0].uvalue = t_pre_bit_error; in mb86a20s_get_stats()
1699 c->pre_bit_count.stat[0].scale = FE_SCALE_COUNTER; in mb86a20s_get_stats()
1700 c->pre_bit_count.stat[0].uvalue = t_pre_bit_count; in mb86a20s_get_stats()
1702 c->pre_bit_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE; in mb86a20s_get_stats()
1703 c->pre_bit_count.stat[0].scale = FE_SCALE_COUNTER; in mb86a20s_get_stats()
1718 c->post_bit_error.stat[0].scale = FE_SCALE_COUNTER; in mb86a20s_get_stats()
1719 c->post_bit_error.stat[0].uvalue = t_post_bit_error; in mb86a20s_get_stats()
1720 c->post_bit_count.stat[0].scale = FE_SCALE_COUNTER; in mb86a20s_get_stats()
1721 c->post_bit_count.stat[0].uvalue = t_post_bit_count; in mb86a20s_get_stats()
1723 c->post_bit_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE; in mb86a20s_get_stats()
1724 c->post_bit_count.stat[0].scale = FE_SCALE_COUNTER; in mb86a20s_get_stats()
1735 c->block_error.stat[0].scale = FE_SCALE_COUNTER; in mb86a20s_get_stats()
1736 c->block_error.stat[0].uvalue = t_block_error; in mb86a20s_get_stats()
1737 c->block_count.stat[0].scale = FE_SCALE_COUNTER; in mb86a20s_get_stats()
1738 c->block_count.stat[0].uvalue = t_block_count; in mb86a20s_get_stats()
1740 c->block_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE; in mb86a20s_get_stats()
1741 c->block_count.stat[0].scale = FE_SCALE_COUNTER; in mb86a20s_get_stats()
1758 u8 regD5 = 1, reg71, reg09 = 0x3a; in mb86a20s_initfe()
1763 fe->ops.i2c_gate_ctrl(fe, 0); in mb86a20s_initfe()
1767 if (rc < 0) in mb86a20s_initfe()
1771 reg09 |= 0x04; in mb86a20s_initfe()
1772 rc = mb86a20s_writereg(state, 0x09, reg09); in mb86a20s_initfe()
1773 if (rc < 0) in mb86a20s_initfe()
1778 reg71 = 0; in mb86a20s_initfe()
1779 rc = mb86a20s_writereg(state, 0x39, reg71); in mb86a20s_initfe()
1780 if (rc < 0) in mb86a20s_initfe()
1782 rc = mb86a20s_writereg(state, 0x71, state->bw); in mb86a20s_initfe()
1783 if (rc < 0) in mb86a20s_initfe()
1786 rc = mb86a20s_writereg(state, 0x44, state->subchannel); in mb86a20s_initfe()
1787 if (rc < 0) in mb86a20s_initfe()
1805 rc = mb86a20s_writereg(state, 0x28, 0x2a); in mb86a20s_initfe()
1806 if (rc < 0) in mb86a20s_initfe()
1808 rc = mb86a20s_writereg(state, 0x29, (pll >> 16) & 0xff); in mb86a20s_initfe()
1809 if (rc < 0) in mb86a20s_initfe()
1811 rc = mb86a20s_writereg(state, 0x2a, (pll >> 8) & 0xff); in mb86a20s_initfe()
1812 if (rc < 0) in mb86a20s_initfe()
1814 rc = mb86a20s_writereg(state, 0x2b, pll & 0xff); in mb86a20s_initfe()
1815 if (rc < 0) in mb86a20s_initfe()
1817 dev_dbg(&state->i2c->dev, "%s: fclk=%d, IF=%d, clock reg=0x%06llx\n", in mb86a20s_initfe()
1823 rc = mb86a20s_writereg(state, 0x28, 0x20); in mb86a20s_initfe()
1824 if (rc < 0) in mb86a20s_initfe()
1826 rc = mb86a20s_writereg(state, 0x29, (pll >> 16) & 0xff); in mb86a20s_initfe()
1827 if (rc < 0) in mb86a20s_initfe()
1829 rc = mb86a20s_writereg(state, 0x2a, (pll >> 8) & 0xff); in mb86a20s_initfe()
1830 if (rc < 0) in mb86a20s_initfe()
1832 rc = mb86a20s_writereg(state, 0x2b, pll & 0xff); in mb86a20s_initfe()
1833 if (rc < 0) in mb86a20s_initfe()
1835 dev_dbg(&state->i2c->dev, "%s: IF=%d, IF reg=0x%06llx\n", in mb86a20s_initfe()
1841 rc = mb86a20s_writereg(state, 0x50, 0xd5); in mb86a20s_initfe()
1842 if (rc < 0) in mb86a20s_initfe()
1844 rc = mb86a20s_writereg(state, 0x51, regD5); in mb86a20s_initfe()
1845 if (rc < 0) in mb86a20s_initfe()
1849 if (rc < 0) in mb86a20s_initfe()
1857 if (rc < 0) { in mb86a20s_initfe()
1891 state->subchannel = 0; in mb86a20s_set_frontend()
1894 c->isdbt_sb_subchannel = 0; in mb86a20s_set_frontend()
1930 fe->ops.i2c_gate_ctrl(fe, 0); in mb86a20s_set_frontend()
1951 fe->ops.i2c_gate_ctrl(fe, 0); in mb86a20s_read_status_and_stats()
1959 if (status_nr < 0) { in mb86a20s_read_status_and_stats()
1968 if (rc < 0) { in mb86a20s_read_status_and_stats()
1974 rc = 0; /* Status is OK */ in mb86a20s_read_status_and_stats()
1981 if (rc < 0) { in mb86a20s_read_status_and_stats()
1984 rc = 0; /* Status is OK */ in mb86a20s_read_status_and_stats()
1990 if (rc < 0 && rc != -EBUSY) { in mb86a20s_read_status_and_stats()
1993 rc = 0; in mb86a20s_read_status_and_stats()
1996 rc = 0; /* Don't return EBUSY to userspace */ in mb86a20s_read_status_and_stats()
2016 *strength = c->strength.stat[0].uvalue; in mb86a20s_read_signal_strength_from_cache()
2018 return 0; in mb86a20s_read_signal_strength_from_cache()
2028 int rc = 0; in mb86a20s_tune()
2080 rev = mb86a20s_readreg(state, 0); in mb86a20s_attach()
2081 if (rev != 0x13) { in mb86a20s_attach()