From: Defa Li <defa.li@mediatek.com>
To: Alexandre Belloni <alexandre.belloni@bootlin.com>,
Frank Li <Frank.Li@nxp.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>
Cc: <linux-i3c@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-mediatek@lists.infradead.org>, <wsd_upstream@mediatek.com>,
<mingchang.jia@mediatek.com>, <yuhan.wei@mediatek.com>,
<hao.lin@mediatek.com>, Defa Li <defa.li@mediatek.com>
Subject: [PATCH] i3c: master: Disable slave events before RSTDAA
Date: Fri, 6 Nov 2026 14:22:10 +0800 [thread overview]
Message-ID: <20261106062236.564607-1-defa.li@mediatek.com> (raw)
Bus initialization sends RSTDAA before disabling slave events. A hot-join
or other slave event may occur after RSTDAA and interfere with the
following DISEC command or the remaining initialization.
Send broadcast DISEC before RSTDAA to disable SIR, master request, and
hot-join events before resetting dynamic addresses. This prevents slave
events from disrupting bus initialization.
Signed-off-by: Defa Li <defa.li@mediatek.com>
---
drivers/i3c/master.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index 01e05bad8661..4fdc8f721364 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -2571,10 +2571,12 @@ static int i3c_master_bus_init(struct i3c_master_controller *master)
}
/*
- * Reset all dynamic address that may have been assigned before
- * (assigned by the bootloader for example).
+ * Disable all slave events before starting DAA. When no active device
+ * is on the bus, returns Mx error code M2, this error is ignored.
*/
- ret = i3c_master_rstdaa_locked(master, I3C_BROADCAST_ADDR);
+ ret = i3c_master_enec_disec_locked(master, I3C_BROADCAST_ADDR, false,
+ I3C_CCC_EVENT_SIR | I3C_CCC_EVENT_MR |
+ I3C_CCC_EVENT_HJ, true);
if (ret)
goto err_bus_cleanup;
@@ -2585,12 +2587,10 @@ static int i3c_master_bus_init(struct i3c_master_controller *master)
}
/*
- * Disable all slave events before starting DAA. When no active device
- * is on the bus, returns Mx error code M2, this error is ignored.
+ * Reset all dynamic address that may have been assigned before
+ * (assigned by the bootloader for example).
*/
- ret = i3c_master_enec_disec_locked(master, I3C_BROADCAST_ADDR, false,
- I3C_CCC_EVENT_SIR | I3C_CCC_EVENT_MR |
- I3C_CCC_EVENT_HJ, true);
+ ret = i3c_master_rstdaa_locked(master, I3C_BROADCAST_ADDR);
if (ret)
goto err_bus_cleanup;
--
2.43.0
reply other threads:[~2026-11-06 6:23 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261106062236.564607-1-defa.li@mediatek.com \
--to=defa.li@mediatek.com \
--cc=Frank.Li@nxp.com \
--cc=alexandre.belloni@bootlin.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=hao.lin@mediatek.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-i3c@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=mingchang.jia@mediatek.com \
--cc=wsd_upstream@mediatek.com \
--cc=yuhan.wei@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®