]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: fix graphics_object_id size
authorArnd Bergmann <arnd@arndb.de>
Tue, 28 May 2024 11:51:19 +0000 (13:51 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 29 May 2024 18:48:31 +0000 (14:48 -0400)
The graphics_object_id structure is meant to fit into 32 bits, as it's
passed by value in and out of functions. A recent change increased
the size to 128 bits, so it's now always passed by reference, which
is clearly not intended and ends up producing a compile-time warning:

drivers/gpu/drm/amd/amdgpu/../display/dc/link/link_factory.c: In function 'construct_phy':
drivers/gpu/drm/amd/amdgpu/../display/dc/link/link_factory.c:743:1: error: the frame size of 1040 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]

Add back the bitfields to revert to the original size, while keeping
the 'enum' type change.

Fixes: fec85f995a4b ("drm/amd/display: Fix compiler redefinition warnings for certain configs")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/include/grph_object_id.h

index 08ee0350b31fb6d0d201784b967db42d7a17e139..54e33062b3c026776b114ea1398b6d9336b6cdcb 100644 (file)
@@ -226,8 +226,8 @@ enum dp_alt_mode {
 
 struct graphics_object_id {
        uint32_t  id:8;
-       enum object_enum_id  enum_id;
-       enum object_type  type;
+       enum object_enum_id  enum_id :4;
+       enum object_type  type :4;
        uint32_t  reserved:16; /* for padding. total size should be u32 */
 };