Mailing List archive

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

[linux-dvb] Re: first version of budget-ci implementation



On Wednesday 07 April 2004 00:04, Jesper Sörensen wrote:
> >Hmm, it isn't looking particularly hopeful unfortunately :( But... maybe
> > its just not waiting long enough after the reset... the attached patch
> > adds a huge delay just in case.
>
> The extra delay didn't change anything. :(

Argh, thanks for trying that last one. OK, the attached patch does Robert's 
suggestion of clearing the reset bit manually.

> I've started looking into the code but I don't really know if I'll be
> able to figure something out. The sleeping stuff in the main loop
> [while(!ca->exit)] in dvb_ca_en50221_thread() doesn't seem to work
> though. According to my tests that loop was run about 200000 times in a
> few seconds, so I'd say that's what's causing the 100 % CPU. Maybe you
> already knew that but I just thought I'd point it out anyway... :)

Heh, yeah I've been messing about with that stuff since the rewrite of the IO 
code, so its probably a bit broken right now; I'm in the middle of getting 
the higher layers going right now so I can test the IO stuff, so I'll fix 
those bits later.

> If you get any ideas you know where to find me, otherwise we'll wait and
> see what kind of results other testers get (Carlo perhaps), and I'll see
> if I can check the hardware on Windows. Thanks for your efforts so far!
> It's very much appreciated.

Thanks! I hope we can sort this thing out...
Index: linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c,v
retrieving revision 1.2
diff -r1.2 dvb_ca_en50221.c
275a276
> 			printk("STATUS: %x\n", res);
281a283
> 			printk("STATUS: %x\n", res);
315a318,319
>         printk("PRESTATUS: %x\n", ca->pub->read_cam_control(ca->pub, slot, CTRLIF_STATUS));
> 
319a324,327
>         dvb_delay(100);
> 	ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, 0);
>         dvb_delay(100);
> 
326c334,335
<         if ((ret = dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_DA, HZ/10)) != 0) return ret;
---
> //        if ((ret = dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_DA, HZ/10)) != 0) return ret;
>         dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_DA, HZ/10);
331a341
>         printk("CAM SENT BUF SIZE: %i\n", buf_size)
340c350,351
<         if ((ret = dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_FR, HZ/10)) != 0) return ret;
---
> //        if ((ret = dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_FR, HZ/10)) != 0) return ret;
>         dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_FR, HZ/10);
587c598
<                 goto exit;
---
> //                goto exit;
1039a1051
>                                 dvb_delay(1000);

Home | Main Index | Thread Index