STV0299 incorrect standby setting issues register 02 (MCR)
PATCH 1/2 STV0299 incorrect standby setting issues register 02 (MCR)
Issues with Register 02 causing spurious channel locking from standby. Should have always bits 4 & 5 written to 1.
Lower nibble not used in any current driver. Usage if necessary can be applied through initab to mcr_reg.
stv0299 not out of standby before writing inittab.
Signed-off-by Malcolm Priestley <[email protected]>
--- drivers/media/dvb/frontends/stv0299.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)
drivers/media/dvb/frontends/stv0299.c +8 -2
@@ -64,6 +64,7 @@ struct stv0299_state {fe_code_rate_t fec_inner;int errmode;u32 ucblocks; +u8 mcr_reg; };#define STATUS_BER 0
@@ -457,6 +458,9 @@ static int stv0299_init (struct dvb_frontend* fe)dprintk ("stv0299: init chip\n" ); +stv0299_writeregI (state,0x02 ,0x30 | state->mcr_reg); +msleep (50 ); +for (i =0 ; ; i +=2 ) { reg = state->config->inittab[i]; val = state->config->inittab[i+1 ];
@@ -464,6 +468,8 @@ static int stv0299_init (struct dvb_frontend* fe)break ;if (reg ==0x0c && state->config->op0_off) val &= ~0x10 ; +if (reg ==0x2 ) + state->mcr_reg = val &0xf ;stv0299_writeregI (state, reg, val); }
@@ -618,7 +624,7 @@ static int stv0299_sleep(struct dvb_frontend* fe) {struct stv0299_state * state = fe->demodulator_priv; -stv0299_writeregI (state,0x02 ,0x80 ); +stv0299_writeregI (state,0x02 ,0xb0 | state->mcr_reg); state->initialised =0 ;return 0 ;
@@ -680,7 +686,7 @@ struct dvb_frontend* stv0299_attach(const struct stv0299_config* config, state->errmode =STATUS_BER ;/* check if the demod is there */ -stv0299_writeregI (state,0x02 ,0x34 );/* standby off */ +stv0299_writeregI (state,0x02 ,0x30 );/* standby off */ msleep (200 ); id =stv0299_readreg (state,0x00 );
Signature · 1 line
1.7.4.1
Quoted 11 lines · On Sunday 27 March 2011 01:57:33 Malcolm Priestley wrote:
Issues with Register 02 causing spurious channel locking from standby. Should have always bits 4 & 5 written to 1.
Lower nibble not used in any current driver. Usage if necessary can be applied through initab tomcr_reg.
stv0299 not out of standby before writing inittab.Signed-off-by Malcolm Priestley <[email protected]>--- drivers/media/dvb/frontends/stv0299.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)...
Acked-by Oliver Endriss <[email protected]>
CU
Oliver
Signature · 5 lines
---------------------------------------------------------------- VDR Remote Plugin 0.4.0: http://www.escape-edv.de/endriss/vdr/ 4 MByte Mod: http://www.escape-edv.de/endriss/dvb-mem-mod/ Full-TS Mod: http://www.escape-edv.de/endriss/dvb-full-ts-mod/ ----------------------------------------------------------------