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.