Mailing List archive

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

[linux-dvb] Re: cinergyT2: which kernel/usb module to use?



On Mittwoch, 1. Dezember 2004 22:42, Holger Waechtler wrote:
> Stefan Lucke wrote:

> 
> >I added a printk at the end of this function, but unfortunately I get only one
> >message :-( .
> >  
> >
> 
> hmmm... then there seems to be a problem in the 2.4 workqueue emulation 
> code at top of the file. Can you please add a few printk() calls there 
> to find the root of the problem?

After adding additional printk() upon entry, status FE_HAS_LOCK change and
exit of function "cinergyt2_query", I have to say: work queue emulation is not
the cause for vdr loops.

Dec  2 21:24:26 jarada kernel: cinergyt2_query: entry: 503
Dec  2 21:24:26 jarada kernel: cinergyt2_query: exit: 503

But there is to my opinion a race condition with FE_SET_FRONTEND and the query
function, as the latter is only called in 333ms intervals. So in between two
calls of cinergyt2_query() there may be a tuning call. If the status is the
same after 2nd query call, even a poll() may fail. So I set "stat->lock_bits=0;" after
calling cinergyt2_command() for tuning. But even with this change
I get vdr looping :-( .

Another point: in .._query() functions, calls to cinergy are protected by down_..() up() .
Issueing tuning commands is unprotected ;-) .

-- 
stefan lucke





Home | Main Index | Thread Index