[linux-dvb] Re: IRQ issues with Nova-S CI when using CI Module

Michael Ditum mrskensington at gmail.com
Fri Jul 15 09:54:18 CEST 2005


We've managed to fix the issue and the card is now running quite
happily without any messages going to /var/log/messages

We only modified a couple of lines, basically we comment out the line
that says it supports IRQ's so the polling section is reached and then
instead of directly calling the dvb_ca_en50221_read_data function we
wake the thread that calls it.

I've attached the patch to the latest CVS drivers.

On 7/14/05, Andrew de Quincey <adq_dvb at lidskialf.net> wrote:
> On Thursday 14 July 2005 15:10, Michael Ditum wrote:
> > ok we've done a bit more investigating... we enabled cam_debug for
> > dvb_core and looking at the output it comes up with the error message
> > in the dvb_ca_en50221_read_data function which is in dvb_ca_en50221.c.
> >
> > More specifically its on line 604 with the code...
> >
> > down_read(&ca->slot_info[slot].sem);
> >
> > As far as we can tell the read data function is being called by an
> > interrupt request handler (line 895 dvb_ca_en50221_frda_irq)... it
> > then calls down_read which tries to lock a semaphore which is already
> > locked and attempts to sleep until it becomes available.
> >
> > Another developer here believeds that you cannot sleep in a IRQ
> > handler so this looks to be the reason for the error...
> >
> > Does anyone have any ideas?
> 
> That sounds very likely.... that code supports two mode of operation - IRQ
> based and polling.. the last card I supported using it used polling so it
> sounds like the IRQ mode needs tweaked to work properly again.
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ca_irq.patch
Type: application/octet-stream
Size: 919 bytes
Desc: not available
Url : http://www.linuxtv.org/pipermail/linux-dvb/attachments/20050715/a85f1bcb/ca_irq.obj


More information about the linux-dvb mailing list