[PATCH 1/3] firmware: exynos-acpm: fix reading longer results
Tudor Ambarus
tudor.ambarus at linaro.org
Mon Mar 17 03:23:11 PDT 2025
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 at linaro.org>
Reviewed-by: Tudor Ambarus <tudor.ambarus at linaro.org>
More information about the linux-arm-kernel
mailing list