Re: [PATCH] i3c: renesas: Don't register devices when ENTDAA times out

Frank Li <[email protected]>
Newsgroups org.infradead.lists.linux-i3c,org.kernel.vger.linux-kernel,org.kernel.vger.linux-renesas-soc
Message-ID <anOc3-M-ItT4mcPg@lizhi-Precision-Tower-5810>
On Fri, Jul 31, 2026 at 09:01:46AM +0200, Tommaso Merciai wrote:
> renesas_i3c_daa() derives the number of newly assigned dynamic addresses
> from cmd->rx_count, which the response ISR sets to the number of address
> slots ENTDAA left unassigned. It starts out as zero, which already means
> "every address was assigned", so a timed out transfer leaves that value
> in place and it gets used as a result.
>
> On a bus with no target connected the ENTDAA times out and the driver
> registers RENESAS_I3C_MAX_DEVS devices that are not there, each costing
> the core two seconds on a GETPID that can only time out:
>
>   i3c i3c-0: Failed to add I3C device at address 9, error -110
>   ...
>   i3c i3c-0: Failed to add I3C device at address 16, error -110
>
> Start from maxdevs instead: no address is assigned before ENTDAA runs,
> and the existing rx_count >= maxdevs check then reports an empty bus.
>
> Fixes: d028219a9f14 ("i3c: master: Add basic driver for the Renesas I3C controller")
> Signed-off-by: Tommaso Merciai <[email protected]>
> ---

Does https://lore.kernel.org/linux-i3c/alUZ_N9VdxkhcpqM@lizhi-Precision-Tower-5810/

fix the same problem?

Frank

>  drivers/i3c/master/renesas-i3c.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/i3c/master/renesas-i3c.c b/drivers/i3c/master/renesas-i3c.c
> index 2b501f31e874..f4d9608978a9 100644
> --- a/drivers/i3c/master/renesas-i3c.c
> +++ b/drivers/i3c/master/renesas-i3c.c
> @@ -685,7 +685,7 @@ static int renesas_i3c_daa(struct i3c_master_controller *m)
>
>  	init_completion(&xfer->comp);
>  	cmd = xfer->cmds;
> -	cmd->rx_count = 0;
> +	cmd->rx_count = i3c->maxdevs;
>
>  	PM_RUNTIME_ACQUIRE_IF_ENABLED_AUTOSUSPEND(i3c->dev, pm);
>  	ret = PM_RUNTIME_ACQUIRE_ERR(&pm);
> --
> 2.54.0
>

-- 
linux-i3c mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-i3c
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.