/shark/trunk/drivers/bttv/bttv-if.c |
---|
245,6 → 245,8 |
return I2C_FUNC_SMBUS_EMUL; |
} |
extern unsigned long read_time(void); |
static int |
bttv_i2c_wait_done(struct bttv *btv) |
{ |
251,12 → 253,12 |
u32 stat; |
unsigned long timeout; |
timeout = jiffies + HZ/100 + 1; /* 10ms */ |
timeout = read_time() + 10000; /* 10ms */ |
for (;;) { |
stat = btread(BT848_INT_STAT); |
if (stat & BT848_INT_I2CDONE) |
break; |
if (time_after(jiffies,timeout)) |
if (timeout > read_time()) |
return -EIO; |
udelay(10); |
} |