On 3/14/25 4:40 PM, André Draszik wrote: > ACPM commands that return more than 8 bytes currently don't work > correctly, as this driver ignores any such returned bytes. > > This is evident in at least acpm_pmic_bulk_read(), where up to 8 > registers can be read back and those 8 register values are placed > starting at &xfer->rxd[8]. > > The reason is that xfter->rxlen is initialized with the size of a > pointer (8 bytes), rather than the size of the byte array that pointer > points to (16 bytes) > > Update the code such that we set the number of bytes expected to be the > size of the rx buffer. > > Note1: While different commands have different lengths rx buffers, we > have to specify the same length for all rx buffers since acpm_get_rx() > assumes they're all the same length. > > Note2: The different commands also have different lengths tx buffers, > but before switching the code to use the minimum possible length, some > more testing would have to be done to ensure this works correctly in > all situations. It seems wiser to just apply this fix here without > additional logic changes for now. > > Fixes: a88927b534ba ("firmware: add Exynos ACPM protocol driver") > Signed-off-by: André Draszik <andre.draszik@xxxxxxxxxx> Reviewed-by: Tudor Ambarus <tudor.ambarus@xxxxxxxxxx>