From a3e077c91c93f4b54df6b99ff6774897fadb799b Mon Sep 17 00:00:00 2001 From: Manu Abraham Date: Thu, 5 May 2005 16:16:01 -0700 Subject: [PATCH] --- yaml --- r: 1021 b: refs/heads/master c: fc9d53af37deeb830252f03c62724078d943686c h: refs/heads/master i: 1019: ca1e99ad09d706870064fb4eb96ad726117d8179 v: v3 --- [refs] | 2 +- trunk/drivers/media/video/bttv-i2c.c | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index f71ccfa6a349..fba6f13d21ae 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2ef41634def0fcb0def3e3c90220c651ca478cb3 +refs/heads/master: fc9d53af37deeb830252f03c62724078d943686c diff --git a/trunk/drivers/media/video/bttv-i2c.c b/trunk/drivers/media/video/bttv-i2c.c index e42f1ec13f3e..e3f477dff827 100644 --- a/trunk/drivers/media/video/bttv-i2c.c +++ b/trunk/drivers/media/video/bttv-i2c.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include "bttvp.h" @@ -130,17 +131,14 @@ static u32 functionality(struct i2c_adapter *adap) static int bttv_i2c_wait_done(struct bttv *btv) { - DECLARE_WAITQUEUE(wait, current); int rc = 0; - add_wait_queue(&btv->i2c_queue, &wait); - if (0 == btv->i2c_done) - msleep_interruptible(20); - remove_wait_queue(&btv->i2c_queue, &wait); + /* timeout */ + if (wait_event_interruptible_timeout(btv->i2c_queue, + btv->i2c_done, msecs_to_jiffies(85)) == -ERESTARTSYS) + + rc = -EIO; - if (0 == btv->i2c_done) - /* timeout */ - rc = -EIO; if (btv->i2c_done & BT848_INT_RACK) rc = 1; btv->i2c_done = 0;