[linux-dvb] problems and workaround when tuning to a channel with
DD enabled
Johannes Stezenbach
js at linuxtv.org
Mon Jun 6 16:59:04 CEST 2005
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
...
> This happens with vdr-1.3.23 and vdr-1.3.25, firmware 261d and the latest experimental
> firmware and unmodified 2.6.12-rc5 if I
...
> --- 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 09:15:24.000000000 +0200
> @@ -887,6 +887,13 @@
> ret = wait_event_interruptible_timeout(av7110->bmpq,
> av7110->bmp_state != BMP_LOADING, 10*HZ);
> if (ret == -ERESTARTSYS || ret == 0) {
> + printk("dvb-ttpci: first try: waiting in BlitBitmap: %d, %d\n",
> + ret, av7110->bmp_state);
> + msleep(20);
> + ret = wait_event_interruptible_timeout(av7110->bmpq,
> + av7110->bmp_state != BMP_LOADING, 10*HZ);
> + }
> + if (ret == -ERESTARTSYS || ret == 0) {
> printk("dvb-ttpci: warning: timeout waiting in BlitBitmap: %d, %d\n",
> ret, av7110->bmp_state);
> av7110->bmp_state = BMP_NONE;
>
The code looks broken. If ret == -ERESTARTSYS (is what you get), then it
is no timeout, but wait_event_interruptible_timeout() got interrupted.
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.
Johannes
More information about the linux-dvb
mailing list