[linux-dvb] SAA7146 short delay flag and budget cards

Johannes Stezenbach js at linuxtv.org
Mon Sep 26 11:30:26 CEST 2005


syrius.ml at no-log.org wrote:
> (someone broke quoting so we don't know who wrote this:)
> >> After a long and painful search, I found out that the delay
> >> happened in I2C comms. I noticed that, in av7110.c, a flag was set,
> >> called SAA7146_I2C_SHORT_DELAY, in the saa7146_extension
> >> structure. So, I applied the following simple patch:
> >> 
> >> --- budget.c~   2005-09-04 14:58:21.000000000 +0200
> >> +++ budget.c    2005-09-17 23:28:14.000000000 +0200
> >> @@ -740,7 +740,7 @@
> >> 
> >>  static struct saa7146_extension budget_extension = {
> >>         .name           = "budget dvb\0",
> >> -       .flags          = 0,
> >> +       .flags          = SAA7146_I2C_SHORT_DELAY,
> >> 
> >>         .module         = THIS_MODULE,
> >>         .pci_tbl        = pci_tbl,
> >> 
> >> Well, the card now reacts *very* quickly, and I do not notice any side
> >> effects. 
> >> 
> >> Is there any reason why this flag is not set?
> 
> 
> Same here !
> my 1131:7146 tt budget card (without ci) now works correctly with this
> correction to budget-ci.c and recent kernels (2.6.14-rc2-git5 + cvs
> dvb-kernel)
> without this, the budget card only tune to some channels
> (if i recall correctly, only low band horizontal polarity ones)

It looks to me like SAA7146_I2C_SHORT_DELAY should be safe
for all cards? Looking at saa7146_i2c.c it seems the worst
which could happen is that with some slow i2c devices it
would wast some CPU? Why does SAA7146_I2C_SHORT_DELAY
exist in the first place? Why does the short_delay flag
depend on the result of saa7146_i2c_msg_prepare()?

Comments?

Johannes



More information about the linux-dvb mailing list