[linux-dvb] SAA7146 short delay flag and budget cards
js at linuxtv.org
Mon Sep 26 14:25:18 CEST 2005
(don't drop Michael Hunold from Cc:, he's too busy to read the list)
On Mon, Sep 26, 2005 at 02:08:19PM +0200, Johannes Stezenbach wrote:
> On Mon, Sep 26, 2005 Oliver Endriss wrote:
> > hunold at linuxtv.org wrote:
> > >
> > > First of all, I did not add "short_delay" to that code. ;-)
> > I did, see below.
> Did you? Or do you confuse short_delay with SAA7146_I2C_SHORT_DELAY?
> It's pretty clear why SAA7146_I2C_SHORT_DELAY exists and waht it does,
> but I don't get why short_delay exists, i.e. why using udelay(10)
> instead of msleep(1) isn't the default.
> > Sorry, this is not correct. SAA7146_I2C_SHORT_DELAY turns on polling for
> > _all_ transfers. (That's the reason why it had been added.)
> > | if ( count > 3 || 0 != (SAA7146_I2C_SHORT_DELAY & dev->ext->flags) )
> > | short_delay = 1;
> > SAA7146_I2C_SHORT_DELAY was introduced by me because tuning with FF
> > cards was rather slow. From Changelog:
> > | 2003-11-25 20:13 endriss
> > | * linux/: drivers/media/common/saa7146_i2c.c,
> > | drivers/media/dvb/ttpci/av7110.c, include/media/saa7146.h:
> > | introduced flag SAA7146_I2C_SHORT_DELAY to speed up I2C access
> > Before that, only larger transfers used polling. Since DVB cards use a
> > lot of small i2c transfers there was noticeable delay during tuning.
> This is incorrect, the driver always uses polling, just one time
> with msleep(1) (i.e. sleep at least one scheduler tick) and the other
> with udelay(1) (busy loop for 10 usecs).
> > Imho the flag SAA7146_I2C_SHORT_DELAY should be added for all
> > saa7146-based cards.
> Unless someone can explain why short_delay==0 is necessary I vote
> for removing this altogether and making the use of udelay(10)
> the default.
> Is short_delay==0 necessary for some analog saa7146 based cards?
> linux-dvb mailing list
> linux-dvb at linuxtv.org
More information about the linux-dvb