Skip to content

Commit

Permalink
i3c: master: svc: fix SDA keep low when polling IBIWON timeout happen
Browse files Browse the repository at this point in the history
commit dfd7cd6 upstream.

Upon IBIWON timeout, the SDA line will always be kept low if we don't emit
a stop. Calling svc_i3c_master_emit_stop() there will let the bus return to
idle state.

Fixes: dd3c528 ("i3c: master: svc: Add Silvaco I3C master driver")
Cc:  <stable@vger.kernel.org>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Link: https://lore.kernel.org/r/20231023161658.3890811-6-Frank.Li@nxp.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
nxpfrankli authored and gregkh committed Nov 28, 2023
1 parent 1ea1fb2 commit 3ddb2fa
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions drivers/i3c/master/svc-i3c-master.c
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,7 @@ static void svc_i3c_master_ibi_work(struct work_struct *work)
SVC_I3C_MSTATUS_IBIWON(val), 0, 1000);
if (ret) {
dev_err(master->dev, "Timeout when polling for IBIWON\n");
svc_i3c_master_emit_stop(master);
goto reenable_ibis;
}

Expand Down

0 comments on commit 3ddb2fa

Please sign in to comment.