[PATCH 5/6] firmware: samsung: acpm: Add TMU protocol support
Alexey Klimov
alexey.klimov at linaro.org
Mon May 11 06:17:51 PDT 2026
On Thu May 7, 2026 at 9:31 AM BST, Tudor Ambarus wrote:
> On 5/6/26 6:13 PM, Alexey Klimov wrote:
>> On Wed May 6, 2026 at 12:39 PM BST, Tudor Ambarus wrote:
[..]
>>> new file mode 100644
>>> index 000000000000..c68d60b4c0b3
>>> --- /dev/null
>>> +++ b/drivers/firmware/samsung/exynos-acpm-tmu.c
>>
>> [..]
>>
>>> +static int acpm_tmu_to_linux_err(s8 fw_err)
>>> +{
>>> + /*
>>> + * ACPM_TMU_INIT uses BIT(0) and BIT(1) of msg.rx.ret to flag APM
>>> + * capabilities. Treat zero and all positive values as success.
>>
>> ACPM_TMU_INIT returns capabilities inside designated error field?
>
> yes
Heh. Okay.
>> What about other messages/commands? They just return error code there?
>
> all the other commands either return -1 for errors, regardless of the error
> type, or 0 for success.
>>
>>> + */
>>> + if (fw_err >= 0)
>>> + return 0;
>>> +
>>> + if (fw_err == -1)
>>> + return -EACCES;
>>> +
>>> + return -EIO;
>>> +}
>>
>> Could we map these return values with better granularity instead of
>> returning -EIO for everything else that is not minus one?
>
> I think we're good as we are now. The firmware returns either -1 for errors,
> zero for success, or BIT(0) and BIT(1) for TMU_INIT to flag some capabilities.
> I can't tell if there are other commands that return capabilities as well,
> or if there are other capabilities for TMU_INIT, I don't have access to the
> firmware code.
On Exynos850 I see more than just one returned error codes. I definitely
see 0xfe and 0xfd at least. I don't have any data to confirm that ff
maps to -1 and fd-s, fe-s to -2,-3 though and what they mean. From my
experiments I suspect that 0xfe means that call/msg type is not
implemented or not accessible and 0xfd means that passed parameter is
wrong or incorrect or not found.
I am also not sure that I saw 0xff-s but, well, maybe that needs more
experimenting.
Thanks,
Alexey
More information about the linux-arm-kernel
mailing list