X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fmedia%2Fvideo%2Fzr36120.c;h=c33533155cc7242f9954dfd8a80ea5d4ae710625;hb=f7f1b0f1e2fbadeab12d24236000e778aa9b1ead;hp=7899c63984a3de1c9751175d319ed3b25adf51c0;hpb=6a77f38946aaee1cd85eeec6cf4229b204c15071;p=linux-2.6.git diff --git a/drivers/media/video/zr36120.c b/drivers/media/video/zr36120.c index 7899c6398..c33533155 100644 --- a/drivers/media/video/zr36120.c +++ b/drivers/media/video/zr36120.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -899,12 +900,11 @@ long zoran_read(struct video_device* dev, char* buf, unsigned long count, int no zoran_cap(ztv, 1); /* wait till this buffer gets grabbed */ - while (unused->status == FBUFFER_BUSY) { - interruptible_sleep_on(&ztv->grabq); - /* see if a signal did it */ - if (signal_pending(current)) - return -EINTR; - } + wait_event_interruptible(ztv->grabq, + (unused->status != FBUFFER_BUSY)); + /* see if a signal did it */ + if (signal_pending(current)) + return -EINTR; done = unused; } else @@ -1326,12 +1326,11 @@ int zoran_ioctl(struct video_device* dev, unsigned int cmd, void *arg) return -EINVAL; case FBUFFER_BUSY: /* wait till this buffer gets grabbed */ - while (ztv->grabinfo[i].status == FBUFFER_BUSY) { - interruptible_sleep_on(&ztv->grabq); - /* see if a signal did it */ - if (signal_pending(current)) - return -EINTR; - } + wait_event_interruptible(ztv->grabq, + (ztv->grabinfo[i].status != FBUFFER_BUSY)); + /* see if a signal did it */ + if (signal_pending(current)) + return -EINTR; /* don't fall through; a DONE buffer is not UNUSED */ break; case FBUFFER_DONE: @@ -1640,12 +1639,11 @@ long vbi_read(struct video_device* dev, char* buf, unsigned long count, int nonb zoran_cap(ztv, 1); /* wait till this buffer gets grabbed */ - while (unused->status == FBUFFER_BUSY) { - interruptible_sleep_on(&ztv->vbiq); - /* see if a signal did it */ - if (signal_pending(current)) - return -EINTR; - } + wait_event_interruptible(ztv->vbiq, + (unused->status != FBUFFER_BUSY)); + /* see if a signal did it */ + if (signal_pending(current)) + return -EINTR; done = unused; } else