aboutsummaryrefslogtreecommitdiffstats
diff options
authorStanley Chu <yschu@nuvoton.com>2025-04-15 13:18:08 +0800
committerAlexandre Belloni <alexandre.belloni@bootlin.com>2025-05-15 11:53:01 +0200
commit81f2a9af982120104d5e9211b15f3a83281972c1 (patch)
tree778b368f8d8db16303faee2af014a285a97e6cc4
parent8d29fa6d921ca4f9f63f73598833e53ece1d3b4e (diff)
downloadlinux-i3c/next.tar.gz
i3c: master: svc: Emit STOP asap in the IBI transactionHEADi3c/next
Queuing the IBI request does not need to be done earlier than emitting the STOP. Emitting STOP immediately after receiving the IBI request can complete the IBI transaction earlier and return the bus to idle. Signed-off-by: Stanley Chu <yschu@nuvoton.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Acked-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/r/20250415051808.88091-3-yschu@nuvoton.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
-rw-r--r--drivers/i3c/master/svc-i3c-master.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i3c-master.c
index 7ceaf3ec45bb36..9b23239ad8db17 100644
--- a/drivers/i3c/master/svc-i3c-master.c
+++ b/drivers/i3c/master/svc-i3c-master.c
@@ -577,11 +577,11 @@ static void svc_i3c_master_ibi_isr(struct svc_i3c_master *master)
/* Handle the non critical tasks */
switch (ibitype) {
case SVC_I3C_MSTATUS_IBITYPE_IBI:
+ svc_i3c_master_emit_stop(master);
if (dev) {
i3c_master_queue_ibi(dev, master->ibi.tbq_slot);
master->ibi.tbq_slot = NULL;
}
- svc_i3c_master_emit_stop(master);
break;
case SVC_I3C_MSTATUS_IBITYPE_HOT_JOIN:
svc_i3c_master_emit_stop(master);