diff options
author | Michael Hunold <devnull@localhost> | 2004-08-11 09:38:34 +0000 |
---|---|---|
committer | Michael Hunold <devnull@localhost> | 2004-08-11 09:38:34 +0000 |
commit | 8616576f988431ab7949ae80dcb8fc0cb68322c6 (patch) | |
tree | 6d261013d2942fa3277c5f5d0a00791ce99afdac /linux/drivers/media/dvb/ttpci/av7110_hw.c | |
parent | 5bef105ef532abf06a3c0988342548119c1a892f (diff) | |
download | mediapointer-dvb-s2-8616576f988431ab7949ae80dcb8fc0cb68322c6.tar.gz mediapointer-dvb-s2-8616576f988431ab7949ae80dcb8fc0cb68322c6.tar.bz2 |
- 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.
Diffstat (limited to 'linux/drivers/media/dvb/ttpci/av7110_hw.c')
-rw-r--r-- | linux/drivers/media/dvb/ttpci/av7110_hw.c | 2 |
1 files changed, 2 insertions, 0 deletions
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; } |