summaryrefslogtreecommitdiff
path: root/scripts/patch-kernel
diff options
context:
space:
mode:
authorJisheng Zhang <jszhang@kernel.org>2026-08-19 12:48:33 +0800
committerAlexandre Belloni <alexandre.belloni@bootlin.com>2026-08-19 09:28:33 +0200
commitcab40cfc9e116acd4d60f95b4b1264cab78f3803 (patch)
treeb1859733a70af4c840853704da12d1b20f7e4d83 /scripts/patch-kernel
parent455b454c87bb01ffcebe0e0c09303d6af685bd2a (diff)
downloadlinux-cab40cfc9e116acd4d60f95b4b1264cab78f3803.tar.gz
linux-cab40cfc9e116acd4d60f95b4b1264cab78f3803.zip
i3c: dw: reduce do_daa time if there's no client
dw_i3c_master_daa() derives the number of newly assigned dynamic addresses from cmd->rx_len, the ISR sets it 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. If there's no client connected, the addr assign cmd times out, then the driver calls i3c_master_add_i3c_dev_locked() to add devices that are not there, each costing about 1s, thus adds non necessary boot time up to (maxdev * 1)s. Start from maxdevs instead: no address is assigned before ENTDAA runs, and the existing rx_count >= maxdevs check then reports an empty bus. Signed-off-by: Jisheng Zhang <jszhang@kernel.org> Reviewed-by: Frank Li <Frank.Li@nxp.com> Link: https://patch.msgid.link/20260819044833.32611-1-jszhang@kernel.org Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Diffstat (limited to 'scripts/patch-kernel')
0 files changed, 0 insertions, 0 deletions