[linux-dvb] Re: [vdr] replay audio record, fastrewind, play: firmware hangs

Wolfgang Rohdewald wolfgang at rohdewald.de
Thu Jun 16 15:52:03 CEST 2005


moving this thread from the vdr mailing list...

On Donnerstag 16 Juni 2005 12:11, Dr. Werner Fink wrote:
> One problem I see is stopping a running replay.  After
> receiving and executing the __Stop request the firmware
> goes two steps: first it waits on a free TX slot, if it
> get one it performs an empty TX request
> (debitype = DATA_MPEG_PLAY and debilen = 0 -> gpioirq()).
> Note if the command and OSD queue is filled there is a
> delay between receiving and executing commands.
> 
> Now you can slow down this two steps by Bitmap uploads
> and if the firmware is receiving a __Play or __Stop
> and executing this within those two steps the __Play
> or __Stop commands are simply lost (which maybe leads
> t oa wrong state in the driver).

Like this?

Thread A: __Stop, waits for free TX slot
Thread B: __Stop or __Play, request is thrown away
Thread A: gets free TX slot

In thread B, will the firmware throw away the request
silently, or will it return -EAGAIN or whatever? If
it returns -EAGAIN, could this be used as a quickfix
instead of a wait queue? Just to try if this helps

__Stop
do {
	msleep(1)
	__Stop
} while -EAGAIN

-- 
Wolfgang




More information about the linux-dvb mailing list