]> git.dujemihanovic.xyz Git - u-boot.git/commit
dm: core: fix signedness in debug messages
authorQuentin Schulz <quentin.schulz@cherry.de>
Tue, 11 Jun 2024 13:04:25 +0000 (15:04 +0200)
committerSimon Glass <sjg@chromium.org>
Wed, 3 Jul 2024 06:36:33 +0000 (07:36 +0100)
commit29010cd31be2bc6f674459137b5dcc054b77c042
treee9728a68fa6b1dbcbb7d868a9c2d4df0ef36a700
parentcc560eac51ea19742f4ea166b86a34b1c7ceb31a
dm: core: fix signedness in debug messages

outp always point to an unsigned type in ofnode_read_u* functions but
the format specifier is currently always using signed type.

This is an issue since the signed type can only contain half of the
unsigned type values above 0.

However, this now breaks another usecase. Indeed,
ofnode_read_s32_default is actually passing an s32 but it'll be printed
as a u32 instead. But since the function is called u32, it makes more
sense to have it print an unsigned value.

This was discovered because arm,smc-id = <0x82000010>; on RK3588S is
above the max signed value and therefore would return a negative signed
decimal value instead of its proper unsigned one.

Fixes: fa12dfa08a7b ("dm: core: support reading a single indexed u64 value")
Fixes: 4bb7075c830c ("dm: core: support reading a single indexed u32 value")
Fixes: 7e5196c409f1 ("dm: core: Add ofnode function to read a 64-bit int")
Fixes: 9e51204527dc ("dm: core: Add operations on device tree references")
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/core/ofnode.c