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

Claudiu Beznea claudiu.beznea at tuxon.dev
Fri Jul 31 09:12:14 PDT 2026



On 7/31/26 10:01, 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<tommaso.merciai.xr at bp.renesas.com>

Reviewed-by: Claudiu Beznea <claudiu.beznea.uj at bp.renesas.com>
Tested-by: Claudiu Beznea <claudiu.beznea.uj at bp.renesas.com> # on RZ/G3S



More information about the linux-i3c mailing list