From 8616576f988431ab7949ae80dcb8fc0cb68322c6 Mon Sep 17 00:00:00 2001 From: Michael Hunold Date: Wed, 11 Aug 2004 09:38:34 +0000 Subject: - if the OSD timeouts in LoadBitmap() or BlitBitmap(), reset the driver osd state to BMP_NONE, so that following OSD commands don't block. this doesn't fix the problem that the firmware/driver internally has race conditions wrt the OSD, but the driver won't freeze applications any more. --- linux/drivers/media/dvb/ttpci/av7110_hw.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'linux/drivers') diff --git a/linux/drivers/media/dvb/ttpci/av7110_hw.c b/linux/drivers/media/dvb/ttpci/av7110_hw.c index 71cfa7f05..60adc4eda 100644 --- a/linux/drivers/media/dvb/ttpci/av7110_hw.c +++ b/linux/drivers/media/dvb/ttpci/av7110_hw.c @@ -746,6 +746,7 @@ static inline int LoadBitmap(struct av7110 *av7110, u16 format, ret = wait_event_interruptible_timeout(av7110->bmpq, av7110->bmp_state != BMP_LOADING, HZ); if (ret == -ERESTARTSYS || ret == 0) { printk("dvb-ttpci: warning: timeout waiting in %s()\n", __FUNCTION__); + av7110->bmp_state = BMP_NONE; return -1; } BUG_ON (av7110->bmp_state == BMP_LOADING); @@ -800,6 +801,7 @@ static int BlitBitmap(struct av7110 *av7110, u16 win, u16 x, u16 y, u16 trans) ret = wait_event_interruptible_timeout(av7110->bmpq, av7110->bmp_state != BMP_LOADING, HZ); if (ret == -ERESTARTSYS || ret == 0) { printk("dvb-ttpci: warning: timeout waiting in %s()\n", __FUNCTION__); + av7110->bmp_state = BMP_NONE; return -1; } -- cgit v1.2.3