| From 88e82d9963cbcadd297ace4e540115f2de30d874 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 18 Mar 2025 13:36:06 +0800 |
| Subject: i3c: master: svc: Fix missing STOP for master request |
| |
| From: Stanley Chu <yschu@nuvoton.com> |
| |
| [ 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 | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i3c-master.c |
| index 0fc03bb5d0a6e..a18fe62962b0c 100644 |
| --- a/drivers/i3c/master/svc-i3c-master.c |
| +++ b/drivers/i3c/master/svc-i3c-master.c |
| @@ -551,6 +551,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; |
| } |
| -- |
| 2.39.5 |
| |