]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
i3c: master: svc: Fix missing STOP for master request
authorStanley Chu <yschu@nuvoton.com>
Tue, 18 Mar 2025 05:36:06 +0000 (13:36 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Jun 2025 12:41:57 +0000 (14:41 +0200)
[ Upstream commit 0430bf9bc1ac068c8b8c540eb93e5751872efc51 ]

The controller driver nacked the master request but didn't emit a
STOP to end the transaction. The driver shall refuse the unsupported
requests and return the controller state to IDLE by emitting a STOP.

Signed-off-by: Stanley Chu <yschu@nuvoton.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://lore.kernel.org/r/20250318053606.3087121-4-yschu@nuvoton.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i3c/master/svc-i3c-master.c

index fa1f12a89158cfb6a410aa53241f6cbede63bead..3cef3794f10d3b0ab10981626f4000eb4920adf3 100644 (file)
@@ -503,6 +503,7 @@ static void svc_i3c_master_ibi_work(struct work_struct *work)
                        queue_work(master->base.wq, &master->hj_work);
                break;
        case SVC_I3C_MSTATUS_IBITYPE_MASTER_REQUEST:
+               svc_i3c_master_emit_stop(master);
        default:
                break;
        }