From ca8ddd068c98869df20041d91aae859d75d1d17f Mon Sep 17 00:00:00 2001 From: Vipin Deep Kaur Date: Thu, 5 Nov 2020 22:26:24 +0530 Subject: [PATCH] i2c: i2c-msm-geni: Wait for abort command completion After giving an abort command, wait for interrupt to mark the command completion else log it as a failure scenario. Change-Id: Ifcc6063f6d6b3457a2807ac411873a15fc556578 Signed-off-by: Vipin Deep Kaur --- drivers/i2c/busses/i2c-msm-geni.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-msm-geni.c b/drivers/i2c/busses/i2c-msm-geni.c index ad91cbc45e3e..46114ad135d9 100644 --- a/drivers/i2c/busses/i2c-msm-geni.c +++ b/drivers/i2c/busses/i2c-msm-geni.c @@ -1113,8 +1113,14 @@ static int geni_i2c_xfer(struct i2c_adapter *adap, timeout = wait_for_completion_timeout(&gi2c->xfer, HZ); if (!timeout) { GENI_SE_ERR(gi2c->ipcl, true, gi2c->dev, - "Abort\n"); + "Cancel failed\n"); + reinit_completion(&gi2c->xfer); geni_abort_m_cmd(gi2c->base); + timeout = + wait_for_completion_timeout(&gi2c->xfer, HZ); + if (!timeout) + GENI_SE_ERR(gi2c->ipcl, true, gi2c->dev, + "Abort failed\n"); } } gi2c->cur_wr = 0;