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

Andrew de Quincey adq_dvb at lidskialf.net
Thu Jul 14 16:51:52 CEST 2005

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.

More information about the linux-dvb mailing list