Loading drivers/media/dvb-frontends/stv0910.c +207 −200 Original line number Diff line number Diff line Loading @@ -207,7 +207,7 @@ static int write_shared_reg(struct stv *state, u16 reg, u8 mask, u8 val) return status; } struct slookup s1_sn_lookup[] = { static struct slookup s1_sn_lookup[] = { { 0, 9242 }, /* C/N= 0dB */ { 5, 9105 }, /* C/N= 0.5dB */ { 10, 8950 }, /* C/N= 1.0dB */ Loading Loading @@ -264,7 +264,7 @@ struct slookup s1_sn_lookup[] = { { 510, 425 } /* C/N=51.0dB */ }; struct slookup s2_sn_lookup[] = { static struct slookup s2_sn_lookup[] = { { -30, 13950 }, /* C/N=-2.5dB */ { -25, 13580 }, /* C/N=-2.5dB */ { -20, 13150 }, /* C/N=-2.0dB */ Loading Loading @@ -327,7 +327,7 @@ struct slookup s2_sn_lookup[] = { { 510, 463 }, /* C/N=51.0dB */ }; struct slookup padc_lookup[] = { static struct slookup padc_lookup[] = { { 0, 118000 }, /* PADC= +0dBm */ { -100, 93600 }, /* PADC= -1dBm */ { -200, 74500 }, /* PADC= -2dBm */ Loading @@ -350,7 +350,8 @@ struct slookup padc_lookup[] = { * Tracking carrier loop carrier QPSK 1/4 to 8PSK 9/10 long Frame *********************************************************************/ static u8 s2car_loop[] = { /* Modcod 2MPon 2MPoff 5MPon 5MPoff 10MPon 10MPoff /* * Modcod 2MPon 2MPoff 5MPon 5MPoff 10MPon 10MPoff * 20MPon 20MPoff 30MPon 30MPoff */ Loading Loading @@ -393,7 +394,8 @@ static u8 s2car_loop[] = { * Tracking carrier loop carrier 16APSK 2/3 to 32APSK 9/10 long Frame **********************************************************************/ /* Modcod 2MPon 2MPoff 5MPon 5MPoff 10MPon 10MPoff 20MPon /* * Modcod 2MPon 2MPoff 5MPon 5MPoff 10MPon 10MPoff 20MPon * 20MPoff 30MPon 30MPoff */ Loading Loading @@ -870,38 +872,38 @@ static int init_search_param(struct stv *state) u8 tmp; read_reg(state, RSTV0910_P2_PDELCTRL1 + state->regoff, &tmp); tmp |= 0x20; // Filter_en (no effect if SIS=non-MIS tmp |= 0x20; /* Filter_en (no effect if SIS=non-MIS */ write_reg(state, RSTV0910_P2_PDELCTRL1 + state->regoff, tmp); read_reg(state, RSTV0910_P2_PDELCTRL2 + state->regoff, &tmp); tmp &= ~0x02; // frame mode = 0 tmp &= ~0x02; /* frame mode = 0 */ write_reg(state, RSTV0910_P2_PDELCTRL2 + state->regoff, tmp); write_reg(state, RSTV0910_P2_UPLCCST0 + state->regoff, 0xe0); write_reg(state, RSTV0910_P2_ISIBITENA + state->regoff, 0x00); read_reg(state, RSTV0910_P2_TSSTATEM + state->regoff, &tmp); tmp &= ~0x01; // nosync = 0, in case next signal is standard TS tmp &= ~0x01; /* nosync = 0, in case next signal is standard TS */ write_reg(state, RSTV0910_P2_TSSTATEM + state->regoff, tmp); read_reg(state, RSTV0910_P2_TSCFGL + state->regoff, &tmp); tmp &= ~0x04; // embindvb = 0 tmp &= ~0x04; /* embindvb = 0 */ write_reg(state, RSTV0910_P2_TSCFGL + state->regoff, tmp); read_reg(state, RSTV0910_P2_TSINSDELH + state->regoff, &tmp); tmp &= ~0x80; // syncbyte = 0 tmp &= ~0x80; /* syncbyte = 0 */ write_reg(state, RSTV0910_P2_TSINSDELH + state->regoff, tmp); read_reg(state, RSTV0910_P2_TSINSDELM + state->regoff, &tmp); tmp &= ~0x08; // token = 0 tmp &= ~0x08; /* token = 0 */ write_reg(state, RSTV0910_P2_TSINSDELM + state->regoff, tmp); read_reg(state, RSTV0910_P2_TSDLYSET2 + state->regoff, &tmp); tmp &= ~0x30; // hysteresis threshold = 0 tmp &= ~0x30; /* hysteresis threshold = 0 */ write_reg(state, RSTV0910_P2_TSDLYSET2 + state->regoff, tmp); read_reg(state, RSTV0910_P2_PDELCTRL0 + state->regoff, &tmp); tmp = (tmp & ~0x30) | 0x10; // isi obs mode = 1, observe min ISI tmp = (tmp & ~0x30) | 0x10; /* isi obs mode = 1, observe min ISI */ write_reg(state, RSTV0910_P2_PDELCTRL0 + state->regoff, tmp); return 0; Loading Loading @@ -1001,7 +1003,8 @@ static int start(struct stv *state, struct dtv_frontend_properties *p) init_search_param(state); if (p->stream_id != NO_STREAM_ID_FILTER) { /* Backwards compatibility to "crazy" API. /* * Backwards compatibility to "crazy" API. * PRBS X root cannot be 0, so this should always work. */ if (p->stream_id & 0xffffff00) Loading Loading @@ -1078,8 +1081,10 @@ static int start(struct stv *state, struct dtv_frontend_properties *p) write_reg(state, RSTV0910_P2_BCLC2S216A + state->regoff, 0x84); write_reg(state, RSTV0910_P2_BCLC2S232A + state->regoff, 0x84); /* Reset CAR3, bug DVBS2->DVBS1 lock*/ /* Note: The bit is only pulsed -> no lock on shared register needed */ /* * Reset CAR3, bug DVBS2->DVBS1 lock * Note: The bit is only pulsed -> no lock on shared register needed */ write_reg(state, RSTV0910_TSTRES0, state->nr ? 0x04 : 0x08); write_reg(state, RSTV0910_TSTRES0, 0); Loading Loading @@ -1425,7 +1430,8 @@ static int read_status(struct dvb_frontend *fe, enum fe_status *status) manage_matype_info(state); if (state->receive_mode == RCVMODE_DVBS2) { /* FSTV0910_P2_MANUALSX_ROLLOFF, /* * FSTV0910_P2_MANUALSX_ROLLOFF, * FSTV0910_P2_MANUALS2_ROLLOFF = 0 */ state->demod_bits &= ~0x84; Loading Loading @@ -1465,7 +1471,8 @@ static int read_status(struct dvb_frontend *fe, enum fe_status *status) /* Reset the Total packet counter */ write_reg(state, RSTV0910_P2_FBERCPT4 + state->regoff, 0x00); /* Reset the packet Error counter2 (and Set it to /* * Reset the packet Error counter2 (and Set it to * infinit error count mode) */ write_reg(state, Loading drivers/media/dvb-frontends/stv0910_regs.h +977 −976 Original line number Diff line number Diff line /* @DVB-S/DVB-S2 STMicroelectronics STV0900 register definitions /* * @DVB-S/DVB-S2 STMicroelectronics STV0900 register definitions * Author Manfred Voelkel, August 2013 * (c) 2013 Digital Devices GmbH Germany. All rights reserved * Loading Loading
drivers/media/dvb-frontends/stv0910.c +207 −200 Original line number Diff line number Diff line Loading @@ -207,7 +207,7 @@ static int write_shared_reg(struct stv *state, u16 reg, u8 mask, u8 val) return status; } struct slookup s1_sn_lookup[] = { static struct slookup s1_sn_lookup[] = { { 0, 9242 }, /* C/N= 0dB */ { 5, 9105 }, /* C/N= 0.5dB */ { 10, 8950 }, /* C/N= 1.0dB */ Loading Loading @@ -264,7 +264,7 @@ struct slookup s1_sn_lookup[] = { { 510, 425 } /* C/N=51.0dB */ }; struct slookup s2_sn_lookup[] = { static struct slookup s2_sn_lookup[] = { { -30, 13950 }, /* C/N=-2.5dB */ { -25, 13580 }, /* C/N=-2.5dB */ { -20, 13150 }, /* C/N=-2.0dB */ Loading Loading @@ -327,7 +327,7 @@ struct slookup s2_sn_lookup[] = { { 510, 463 }, /* C/N=51.0dB */ }; struct slookup padc_lookup[] = { static struct slookup padc_lookup[] = { { 0, 118000 }, /* PADC= +0dBm */ { -100, 93600 }, /* PADC= -1dBm */ { -200, 74500 }, /* PADC= -2dBm */ Loading @@ -350,7 +350,8 @@ struct slookup padc_lookup[] = { * Tracking carrier loop carrier QPSK 1/4 to 8PSK 9/10 long Frame *********************************************************************/ static u8 s2car_loop[] = { /* Modcod 2MPon 2MPoff 5MPon 5MPoff 10MPon 10MPoff /* * Modcod 2MPon 2MPoff 5MPon 5MPoff 10MPon 10MPoff * 20MPon 20MPoff 30MPon 30MPoff */ Loading Loading @@ -393,7 +394,8 @@ static u8 s2car_loop[] = { * Tracking carrier loop carrier 16APSK 2/3 to 32APSK 9/10 long Frame **********************************************************************/ /* Modcod 2MPon 2MPoff 5MPon 5MPoff 10MPon 10MPoff 20MPon /* * Modcod 2MPon 2MPoff 5MPon 5MPoff 10MPon 10MPoff 20MPon * 20MPoff 30MPon 30MPoff */ Loading Loading @@ -870,38 +872,38 @@ static int init_search_param(struct stv *state) u8 tmp; read_reg(state, RSTV0910_P2_PDELCTRL1 + state->regoff, &tmp); tmp |= 0x20; // Filter_en (no effect if SIS=non-MIS tmp |= 0x20; /* Filter_en (no effect if SIS=non-MIS */ write_reg(state, RSTV0910_P2_PDELCTRL1 + state->regoff, tmp); read_reg(state, RSTV0910_P2_PDELCTRL2 + state->regoff, &tmp); tmp &= ~0x02; // frame mode = 0 tmp &= ~0x02; /* frame mode = 0 */ write_reg(state, RSTV0910_P2_PDELCTRL2 + state->regoff, tmp); write_reg(state, RSTV0910_P2_UPLCCST0 + state->regoff, 0xe0); write_reg(state, RSTV0910_P2_ISIBITENA + state->regoff, 0x00); read_reg(state, RSTV0910_P2_TSSTATEM + state->regoff, &tmp); tmp &= ~0x01; // nosync = 0, in case next signal is standard TS tmp &= ~0x01; /* nosync = 0, in case next signal is standard TS */ write_reg(state, RSTV0910_P2_TSSTATEM + state->regoff, tmp); read_reg(state, RSTV0910_P2_TSCFGL + state->regoff, &tmp); tmp &= ~0x04; // embindvb = 0 tmp &= ~0x04; /* embindvb = 0 */ write_reg(state, RSTV0910_P2_TSCFGL + state->regoff, tmp); read_reg(state, RSTV0910_P2_TSINSDELH + state->regoff, &tmp); tmp &= ~0x80; // syncbyte = 0 tmp &= ~0x80; /* syncbyte = 0 */ write_reg(state, RSTV0910_P2_TSINSDELH + state->regoff, tmp); read_reg(state, RSTV0910_P2_TSINSDELM + state->regoff, &tmp); tmp &= ~0x08; // token = 0 tmp &= ~0x08; /* token = 0 */ write_reg(state, RSTV0910_P2_TSINSDELM + state->regoff, tmp); read_reg(state, RSTV0910_P2_TSDLYSET2 + state->regoff, &tmp); tmp &= ~0x30; // hysteresis threshold = 0 tmp &= ~0x30; /* hysteresis threshold = 0 */ write_reg(state, RSTV0910_P2_TSDLYSET2 + state->regoff, tmp); read_reg(state, RSTV0910_P2_PDELCTRL0 + state->regoff, &tmp); tmp = (tmp & ~0x30) | 0x10; // isi obs mode = 1, observe min ISI tmp = (tmp & ~0x30) | 0x10; /* isi obs mode = 1, observe min ISI */ write_reg(state, RSTV0910_P2_PDELCTRL0 + state->regoff, tmp); return 0; Loading Loading @@ -1001,7 +1003,8 @@ static int start(struct stv *state, struct dtv_frontend_properties *p) init_search_param(state); if (p->stream_id != NO_STREAM_ID_FILTER) { /* Backwards compatibility to "crazy" API. /* * Backwards compatibility to "crazy" API. * PRBS X root cannot be 0, so this should always work. */ if (p->stream_id & 0xffffff00) Loading Loading @@ -1078,8 +1081,10 @@ static int start(struct stv *state, struct dtv_frontend_properties *p) write_reg(state, RSTV0910_P2_BCLC2S216A + state->regoff, 0x84); write_reg(state, RSTV0910_P2_BCLC2S232A + state->regoff, 0x84); /* Reset CAR3, bug DVBS2->DVBS1 lock*/ /* Note: The bit is only pulsed -> no lock on shared register needed */ /* * Reset CAR3, bug DVBS2->DVBS1 lock * Note: The bit is only pulsed -> no lock on shared register needed */ write_reg(state, RSTV0910_TSTRES0, state->nr ? 0x04 : 0x08); write_reg(state, RSTV0910_TSTRES0, 0); Loading Loading @@ -1425,7 +1430,8 @@ static int read_status(struct dvb_frontend *fe, enum fe_status *status) manage_matype_info(state); if (state->receive_mode == RCVMODE_DVBS2) { /* FSTV0910_P2_MANUALSX_ROLLOFF, /* * FSTV0910_P2_MANUALSX_ROLLOFF, * FSTV0910_P2_MANUALS2_ROLLOFF = 0 */ state->demod_bits &= ~0x84; Loading Loading @@ -1465,7 +1471,8 @@ static int read_status(struct dvb_frontend *fe, enum fe_status *status) /* Reset the Total packet counter */ write_reg(state, RSTV0910_P2_FBERCPT4 + state->regoff, 0x00); /* Reset the packet Error counter2 (and Set it to /* * Reset the packet Error counter2 (and Set it to * infinit error count mode) */ write_reg(state, Loading
drivers/media/dvb-frontends/stv0910_regs.h +977 −976 Original line number Diff line number Diff line /* @DVB-S/DVB-S2 STMicroelectronics STV0900 register definitions /* * @DVB-S/DVB-S2 STMicroelectronics STV0900 register definitions * Author Manfred Voelkel, August 2013 * (c) 2013 Digital Devices GmbH Germany. All rights reserved * Loading