|
@@ -368,6 +368,7 @@ static int i2c_imx_dma_xfer(struct imx_i2c_struct *i2c_imx,
|
|
|
goto err_desc;
|
|
|
}
|
|
|
|
|
|
+ reinit_completion(&dma->cmd_complete);
|
|
|
txdesc->callback = i2c_imx_dma_callback;
|
|
|
txdesc->callback_param = i2c_imx;
|
|
|
if (dma_submit_error(dmaengine_submit(txdesc))) {
|
|
@@ -622,7 +623,6 @@ static int i2c_imx_dma_write(struct imx_i2c_struct *i2c_imx,
|
|
|
* The first byte must be transmitted by the CPU.
|
|
|
*/
|
|
|
imx_i2c_write_reg(i2c_8bit_addr_from_msg(msgs), i2c_imx, IMX_I2C_I2DR);
|
|
|
- reinit_completion(&i2c_imx->dma->cmd_complete);
|
|
|
time_left = wait_for_completion_timeout(
|
|
|
&i2c_imx->dma->cmd_complete,
|
|
|
msecs_to_jiffies(DMA_TIMEOUT));
|
|
@@ -681,7 +681,6 @@ static int i2c_imx_dma_read(struct imx_i2c_struct *i2c_imx,
|
|
|
if (result)
|
|
|
return result;
|
|
|
|
|
|
- reinit_completion(&i2c_imx->dma->cmd_complete);
|
|
|
time_left = wait_for_completion_timeout(
|
|
|
&i2c_imx->dma->cmd_complete,
|
|
|
msecs_to_jiffies(DMA_TIMEOUT));
|