On Dienstag 07 Juni 2005 17:44, Johannes Stezenbach wrote: > Why don't you just fix the problem with the b0rked error > handling in Load/BlitBitmap and be done with it? I would also have to look at the other problem when replaying DolbySurround. Anyway I'll try to fix this but I need some help to understand the code. Just to test if my thinking is correct, what would you say about this: (yet untested, and when everything is stable I would remove the KERN_INFO about the interrupt) --- 12.org/drivers/media/dvb/ttpci/av7110_hw.c 2005-06-06 09:08:08.000000000 +0200 +++ linux/drivers/media/dvb/ttpci/av7110_hw.c 2005-06-07 19:23:45.000000000 +0200 @@ -471,8 +471,12 @@ ret = __av7110_send_fw_cmd(av7110, buf, length); up(&av7110->dcomlock); if (ret) - printk(KERN_ERR "dvb-ttpci: %s(): av7110_send_fw_cmd error %d\n", - __FUNCTION__, ret); + if (ret==-ERESTARTSYS) + printk(KERN_INFO "dvb-ttpci: %s(): av7110_send_fw_cmd interrupted\n", + __FUNCTION__); + else + printk(KERN_ERR "dvb-ttpci: %s(): av7110_send_fw_cmd error %d\n", + __FUNCTION__, ret); return ret; } @@ -1111,10 +1115,14 @@ textbuf[239] = 0; if (dc->x1 > 3) dc->x1 = 3; - SetFont(av7110, av7110->osdwin, dc->x1, + ret = SetFont(av7110, av7110->osdwin, dc->x1, (u16) (dc->color & 0xffff), (u16) (dc->color >> 16)); - FlushText(av7110); - WriteText(av7110, av7110->osdwin, dc->x0, dc->y0, textbuf); + if (ret) + goto out; + ret = FlushText(av7110); + if (ret) + goto out; + ret = WriteText(av7110, av7110->osdwin, dc->x0, dc->y0, textbuf); goto out; } case OSD_SetWindow: -- Wolfgang