I found that dib3000mc_set_timing in dib3000mc_tune is not called because the status of the register 509 take some time to udpate. I added some msleep to do that. Perhaps they are a better way to do that. Jose Alberto
diff -r f96f68c4e5d9 linux/drivers/media/dvb/frontends/dib3000mc.c --- a/linux/drivers/media/dvb/frontends/dib3000mc.c Thu Jul 19 18:06:54 2007 -0300 +++ b/linux/drivers/media/dvb/frontends/dib3000mc.c Sat Jul 21 18:31:35 2007 +0200 @@ -38,6 +38,7 @@ struct dib3000mc_state { struct dibx000_i2c_master i2c_master; u32 timf; + u8 timf_nofirst; fe_bandwidth_t current_bandwidth; @@ -591,6 +592,13 @@ static int dib3000mc_tune(struct dvb_fro dib3000mc_write_word(state, 26, 30336); dib3000mc_write_word(state, 33, 6); } + + if (state->timf_nofirst == 0) { + state->timf_nofirst = 1; + msleep (500); + } + else + msleep (20); if (dib3000mc_read_word(state, 509) & 0x80) dib3000mc_set_timing(state, ch->nfft, ch->Bw, 1);
_______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb