[linux-dvb] problems and workaround when tuning to a channel with
DD enabled
Wolfgang Rohdewald
wolfgang at rohdewald.de
Mon Jun 6 17:51:21 CEST 2005
On Montag 06 Juni 2005 16:59, Johannes Stezenbach wrote:
> On Mon, Jun 06, 2005 at 09:31:30AM +0200, Wolfgang Rohdewald wrote:
> > Jun 6 08:24:10 mm kernel: dvb-ttpci: warning: timeout waiting in BlitBitmap: -512, 1
> ...
>
> The code looks broken. If ret == -ERESTARTSYS (is what you get), then it
> is no timeout, but wait_event_interruptible_timeout() got interrupted.
Yup, -512 is ERESTARTSYS
> I bet vdr is sending some signals around.
>
> Try using wait_event_timeout(..., HZ/5), i.e. non-interruptible but
> with a sensible timeout. 10*HZ is much too long, IMHO.
That works nicely so far. Should I try to find out what signal was interrupting?
How could I do that? I know almost nothing about kernel programming.
the new patch:
--- linux-2.6.11.11/drivers/media/dvb/ttpci/av7110_hw.c 2005-06-06 09:08:08.000000000 +0200
+++ linux-2.6.12/drivers/media/dvb/ttpci/av7110_hw.c 2005-06-06 17:43:02.000000000 +0200
@@ -884,8 +884,8 @@
BUG_ON (av7110->bmp_state == BMP_NONE);
- ret = wait_event_interruptible_timeout(av7110->bmpq,
- av7110->bmp_state != BMP_LOADING, 10*HZ);
+ ret = wait_event_timeout(av7110->bmpq,
+ av7110->bmp_state != BMP_LOADING, HZ/5);
if (ret == -ERESTARTSYS || ret == 0) {
printk("dvb-ttpci: warning: timeout waiting in BlitBitmap: %d, %d\n",
ret, av7110->bmp_state);
--
Wolfgang
More information about the linux-dvb
mailing list