Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Transponder switching taking considerably longer



Johannes Stezenbach wrote:
> 
> Klaus Schmidinger wrote:
> >
> > I did that, and it turned out that ves1893_set_symbolrate() is where it happens.
> > With this diff...
> >
> > --- alps_bsrv2.c.001    Sat May 10 11:32:33 2003
> > +++ alps_bsrv2.c        Thu Jul 31 17:58:42 2003
> ...
> > @@ -268,18 +268,22 @@
> >         ves1893_writereg (i2c, 0x06, 0xff & BDR);
> >         ves1893_writereg (i2c, 0x07, 0xff & (BDR >> 8));
> >         ves1893_writereg (i2c, 0x08, 0x0f & (BDR >> 16));
> > +        udelay(800);
> >
> >         ves1893_writereg (i2c, 0x09, BDRI);
> >         ves1893_writereg (i2c, 0x20, ADCONF);
> >         ves1893_writereg (i2c, 0x21, FCONF);
> > +        udelay(800);
> >
> >         if (srate < 6000000)
> >                 ves1893_writereg (i2c, 0x05, init_1893_tab[0x05] | 0x80);
> >         else
> >                 ves1893_writereg (i2c, 0x05, init_1893_tab[0x05] & 0x7f);
> > +        udelay(800);
> >
> >         ves1893_writereg (i2c, 0x00, 0x00);
> >         ves1893_writereg (i2c, 0x00, 0x01);
> > +        udelay(800);
> >
> >         ves1893_clr_bit (i2c);
> >
> > ...I get pretty good switching times, just as if I had the udelay() right inside
> > ves1893_writereg() itself. Note that this diff is against the 2003-07-25 version
> > and does not include the change Johannes made yesterday (which is obsolete if
> > you apply _this_ change). I tried to leave out some of these udelay()s and also
> > used various time values, but this is pretty much what gives the best results.
> 
> I did some more testing and was able to reproduce the tuning problems
> with my card. After some testing I found that the root of the problem
> was that the frontend thread was woken up immediately after
> FE_SET_FRONTEND, so the frontend status was tested too soon. Maybe the
> alps_bsrv2.c doesn't like that. I also added a FE_RESET after each
> iteration of the frontend threads main loop if FE_HAS_LOCK is not
> present.
> Now I fixed dvb_frontend.c and removed all udelay()s from alps_bsrv2.c.
> 
> I committed something in CVS which works very well with my DVB-S and
> Siemens DVB-C card. Please test!
> 
> (I hope this change doesn't break tuning for other frontends or DVB-T).

Switching transponders works very fast with this, but right after a
channel switch (even between channels on the same transponder) there
are glitches in audio and video :-(

Klaus


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index