From bf9ec06c90dcd8ccba116fbc065b5d918de47644 Mon Sep 17 00:00:00 2001 From: Shubham Patil Date: Tue, 8 Sep 2026 16:42:07 +0530 Subject: [PATCH] i3c: master: amd: Report direct CCC read length in payload.actual_len The I3C core expects master drivers to leave payload.len unchanged and report the number of bytes received on GET CCCs via payload.actual_len. The AMD driver was overwriting payload.len after direct read CCCs. Set payload.actual_len from the directed command's rx_actual in xi3c_master_send_direct_ccc_cmd() instead of modifying payload.len. Fixes:629a6ddd1d9a ("i3c: master: Add driver for AMD AXI I3C master controller") Signed-off-by: Shubham Patil Reviewed-by: Frank Li Link: https://patch.msgid.link/20260908111207.3274407-1-shubhamsanjay.patil@amd.com Signed-off-by: Alexandre Belloni --- drivers/i3c/master/amd-i3c-master.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/i3c/master/amd-i3c-master.c b/drivers/i3c/master/amd-i3c-master.c index ef5ad5abb788..f205aa06f9b8 100644 --- a/drivers/i3c/master/amd-i3c-master.c +++ b/drivers/i3c/master/amd-i3c-master.c @@ -806,8 +806,8 @@ static int xi3c_master_send_direct_ccc_cmd(struct xi3c_master *master, /* Report actual byte count so the core sees the right length on short reads */ if (!ret && ccc->rnw) - ccc->dests[0].payload.len = min(xfer->cmds[1].rx_actual, - ccc->dests[0].payload.len); + ccc->dests[0].payload.actual_len = min(xfer->cmds[1].rx_actual, + ccc->dests[0].payload.len); return ret; }