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.