drivers: meson: sm: correct meson_sm_* API retval handling
authorAlexey Romanov <avromanov@salutedevices.com>
Wed, 30 Aug 2023 14:08:50 +0000 (17:08 +0300)
committerNeil Armstrong <neil.armstrong@linaro.org>
Mon, 11 Sep 2023 09:45:26 +0000 (11:45 +0200)
commit0d423c4a78984dd02f6596d6fd9dd40446eec517
tree31c09dc2b3b7c4936fb9a65425ce831b3b79e79c
parent0bb80ecc33a8fb5a682236443c1e740d5c917d1d
drivers: meson: sm: correct meson_sm_* API retval handling

1. Following the ARM SMC32 calling convention, the return value
from secure monitor is a 32-bit signed integer. This patch changes
the type of the return value of the function meson_sm_call().

2. Now, when meson_sm_call() returns a 32-bit signed integer, we need
to ensure that this value is not negative. It is important to check
that the return value is not negative in both the meson_sm_call_read()
and meson_sm_call_write() functions.

3. Add a comment explaining why it is necessary to check if the SMC
return value is equal to 0 in the function meson_sm_call_read().
It is not obvious when reading this code.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20230830140850.17130-1-avromanov@salutedevices.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
drivers/firmware/meson/meson_sm.c
include/linux/firmware/meson/meson_sm.h