Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit 0d25965

Browse files
nxpfranklialexandrebelloni
authored andcommitted
i3c: Add comment for -EAGAIN in i3c_device_do_priv_xfers()
In accordance with I3C spec ver 1.1.1 09-Jun-2021, section: 5.1.2.2.3, if a target requests hot join (HJ), In-Band Interrupt (IBI), or controller role request (CRR) during the emission of an I3C address in i3c_device_do_priv_xfers(), the target may win bus arbitration. In such cases, it is imperative to notify the I3C client driver and retry i3c_device_do_priv_xfers() after some delay. Signed-off-by: Frank Li <Frank.Li@nxp.com> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/r/20240506164009.21375-1-Frank.Li@nxp.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
1 parent 4cece76 commit 0d25965

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

drivers/i3c/device.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
* This function can sleep and thus cannot be called in atomic context.
2828
*
2929
* Return: 0 in case of success, a negative error core otherwise.
30+
* -EAGAIN: controller lost address arbitration. Target
31+
* (IBI, HJ or controller role request) win the bus. Client
32+
* driver needs to resend the 'xfers' some time later.
33+
* See I3C spec ver 1.1.1 09-Jun-2021. Section: 5.1.2.2.3.
3034
*/
3135
int i3c_device_do_priv_xfers(struct i3c_device *dev,
3236
struct i3c_priv_xfer *xfers,

0 commit comments

Comments
 (0)