]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amd/display: shrink struct members
authorRosen Penev <rosenp@gmail.com>
Sat, 8 Nov 2025 17:40:47 +0000 (09:40 -0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 8 Dec 2025 20:30:40 +0000 (15:30 -0500)
On a 32-bit ARM system, the audio_decoder struct ends up being too large
for dp_retrain_link_dp_test.

link_dp_cts.c:157:1: error: the frame size of 1328 bytes is larger than
1280 bytes [-Werror=frame-larger-than=]

This is mitigated by shrinking the members of the struct and avoids
having to deal with dynamic allocation.

feed_back_divider is assigned but otherwise unused. Remove both.

pixel_repetition looks like it should be a bool since it's only ever
assigned to 1. But there are checks for 2 and 4. Reduce to uint8_t.

Remove ss_percentage_divider. Unused.

Shrink refresh_rate as it gets assigned to at most a 3 digit integer
value.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 3849efdc7888d537f09c3dcfaea4b3cd377a102e)

drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
drivers/gpu/drm/amd/display/include/audio_types.h

index 8fe39993922029f743a73cf97e5a00906221fd38..4986f12dc9dfd305377921d1d105a37dd233952d 100644 (file)
@@ -1484,9 +1484,6 @@ void build_audio_output(
                                                state->clk_mgr);
        }
 
-       audio_output->pll_info.feed_back_divider =
-                       pipe_ctx->pll_settings.feedback_divider;
-
        audio_output->pll_info.dto_source =
                translate_to_dto_source(
                        pipe_ctx->stream_res.tg->inst + 1);
index e4a26143f14c940f73bb0975bfd6b97d1c3f2d73..6699ad4fa825e36e9529f1dec8f9a5b18e1c450d 100644 (file)
@@ -47,15 +47,15 @@ struct audio_crtc_info {
        uint32_t h_total;
        uint32_t h_active;
        uint32_t v_active;
-       uint32_t pixel_repetition;
        uint32_t requested_pixel_clock_100Hz; /* in 100Hz */
        uint32_t calculated_pixel_clock_100Hz; /* in 100Hz */
-       uint32_t refresh_rate;
+       uint32_t dsc_bits_per_pixel;
+       uint32_t dsc_num_slices;
        enum dc_color_depth color_depth;
        enum dc_pixel_encoding pixel_encoding;
+       uint16_t refresh_rate;
+       uint8_t pixel_repetition;
        bool interlaced;
-       uint32_t dsc_bits_per_pixel;
-       uint32_t dsc_num_slices;
 };
 struct azalia_clock_info {
        uint32_t pixel_clock_in_10khz;
@@ -78,11 +78,9 @@ enum audio_dto_source {
 
 struct audio_pll_info {
        uint32_t audio_dto_source_clock_in_khz;
-       uint32_t feed_back_divider;
+       uint32_t ss_percentage;
        enum audio_dto_source dto_source;
        bool ss_enabled;
-       uint32_t ss_percentage;
-       uint32_t ss_percentage_divider;
 };
 
 struct audio_channel_associate_info {