Yay, just came home from work and everything is working 8)

Thank you very much for your help
/max

P.S. if you need someone to test some stuff on amd64, just give me a
call :)

Am Fr, den 20.02.2004 schrieb Johannes Stezenbach um 13:51:
> Max Nickel wrote:
> > 
> > It looks like that the bug i'm experiencing is caused by saa7146_core.c's 
> > saa7146_wait_for_debi_done function.
> ...
> > dvb_ttpci: load_dram(): Writing DRAM block 72
> > saa7146: saa7146_wait_for_debi_done(): timed out while waiting for transfer 
> > completion
> 
> Yikes! You're right, there's a grave bug. Try the patch below.
> 
> BTW, it's the same kind of bug that Gerd Knorr fixed for
> the saa7146 i2c stuff to make his budget card work on AMD64,
> so I though Michael would have fixed all of them...
> 
> 
> Index: drivers/media/common/saa7146_core.c
> ===================================================================
> RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/common/saa7146_core.c,v
> retrieving revision 1.49
> diff -u -p -r1.49 saa7146_core.c
> --- drivers/media/common/saa7146_core.c       3 Jan 2004 22:33:16 -0000       1.49
> +++ drivers/media/common/saa7146_core.c       20 Feb 2004 12:46:22 -0000
> @@ -69,14 +69,14 @@ void saa7146_set_gpio(struct saa7146_dev
>  /* This DEBI code is based on the saa7146 Stradis driver by Nathan Laredo */
>  int saa7146_wait_for_debi_done(struct saa7146_dev *dev)
>  {
> -     int start;
> +     unsigned long start;
>  
>       /* wait for registers to be programmed */
>       start = jiffies;
>       while (1) {
>                  if (saa7146_read(dev, MC2) & 2)
>                          break;
> -             if (jiffies-start > HZ/20) {
> +             if (time_after(jiffies, start + HZ/20)) {
>                       DEB_S(("timed out while waiting for registers getting 
> programmed\n"));
>                       return -ETIMEDOUT;
>               }
> @@ -88,7 +88,7 @@ int saa7146_wait_for_debi_done(struct sa
>               if (!(saa7146_read(dev, PSR) & SPCI_DEBI_S))
>                       break;
>               saa7146_read(dev, MC2);
> -             if (jiffies-start > HZ/4) {
> +             if (time_after(jiffies, start + HZ/4)) {
>                       DEB_S(("timed out while waiting for transfer completion\n"));
>                       return -ETIMEDOUT;
>               }
> 
> Thanks for tracking this down.
> 
> Johannes
> 



-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as 
subject.

Reply via email to