diff options
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-ismt.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/i2c/busses/i2c-ismt.c b/drivers/i2c/busses/i2c-ismt.c index f2b0ff011631..f994712d0904 100644 --- a/drivers/i2c/busses/i2c-ismt.c +++ b/drivers/i2c/busses/i2c-ismt.c | |||
@@ -380,6 +380,7 @@ static int ismt_access(struct i2c_adapter *adap, u16 addr, | |||
380 | int size, union i2c_smbus_data *data) | 380 | int size, union i2c_smbus_data *data) |
381 | { | 381 | { |
382 | int ret; | 382 | int ret; |
383 | unsigned long time_left; | ||
383 | dma_addr_t dma_addr = 0; /* address of the data buffer */ | 384 | dma_addr_t dma_addr = 0; /* address of the data buffer */ |
384 | u8 dma_size = 0; | 385 | u8 dma_size = 0; |
385 | enum dma_data_direction dma_direction = 0; | 386 | enum dma_data_direction dma_direction = 0; |
@@ -578,13 +579,13 @@ static int ismt_access(struct i2c_adapter *adap, u16 addr, | |||
578 | ismt_submit_desc(priv); | 579 | ismt_submit_desc(priv); |
579 | 580 | ||
580 | /* Now we wait for interrupt completion, 1s */ | 581 | /* Now we wait for interrupt completion, 1s */ |
581 | ret = wait_for_completion_timeout(&priv->cmp, HZ*1); | 582 | time_left = wait_for_completion_timeout(&priv->cmp, HZ*1); |
582 | 583 | ||
583 | /* unmap the data buffer */ | 584 | /* unmap the data buffer */ |
584 | if (dma_size != 0) | 585 | if (dma_size != 0) |
585 | dma_unmap_single(&adap->dev, dma_addr, dma_size, dma_direction); | 586 | dma_unmap_single(&adap->dev, dma_addr, dma_size, dma_direction); |
586 | 587 | ||
587 | if (unlikely(!ret)) { | 588 | if (unlikely(!time_left)) { |
588 | dev_err(dev, "completion wait timed out\n"); | 589 | dev_err(dev, "completion wait timed out\n"); |
589 | ret = -ETIMEDOUT; | 590 | ret = -ETIMEDOUT; |
590 | goto out; | 591 | goto out; |