drm/amd/display: Constify struct timing_generator_funcs
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sat, 24 May 2025 16:51:25 +0000 (18:51 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 29 May 2025 14:57:31 +0000 (10:57 -0400)
'struct timing_generator_funcs' are not modified in these drivers.

Constifying these structures moves some data to a read-only section, so
increases overall security, especially when the structure holds some
function pointers.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/optc/dcn20/dcn20_optc.c
drivers/gpu/drm/amd/display/dc/optc/dcn201/dcn201_optc.c
drivers/gpu/drm/amd/display/dc/optc/dcn30/dcn30_optc.c
drivers/gpu/drm/amd/display/dc/optc/dcn301/dcn301_optc.c
drivers/gpu/drm/amd/display/dc/optc/dcn31/dcn31_optc.c
drivers/gpu/drm/amd/display/dc/optc/dcn314/dcn314_optc.c
drivers/gpu/drm/amd/display/dc/optc/dcn32/dcn32_optc.c
drivers/gpu/drm/amd/display/dc/optc/dcn35/dcn35_optc.c
drivers/gpu/drm/amd/display/dc/optc/dcn401/dcn401_optc.c

index 81857ce..e7a90a4 100644 (file)
@@ -502,7 +502,7 @@ void optc2_get_last_used_drr_vtotal(struct timing_generator *optc, uint32_t *ref
        REG_GET(OTG_DRR_CONTROL, OTG_V_TOTAL_LAST_USED_BY_DRR, refresh_rate);
 }
 
-static struct timing_generator_funcs dcn20_tg_funcs = {
+static const struct timing_generator_funcs dcn20_tg_funcs = {
                .validate_timing = optc1_validate_timing,
                .program_timing = optc1_program_timing,
                .setup_vertical_interrupt0 = optc1_setup_vertical_interrupt0,
index f2415ee..772a8bf 100644 (file)
@@ -129,7 +129,7 @@ static void optc201_get_optc_source(struct timing_generator *optc,
        *num_of_src_opp = 1;
 }
 
-static struct timing_generator_funcs dcn201_tg_funcs = {
+static const struct timing_generator_funcs dcn201_tg_funcs = {
                .validate_timing = optc201_validate_timing,
                .program_timing = optc1_program_timing,
                .setup_vertical_interrupt0 = optc1_setup_vertical_interrupt0,
index 78b58a4..ee4665a 100644 (file)
@@ -357,7 +357,7 @@ void optc3_tg_init(struct timing_generator *optc)
        optc1_clear_optc_underflow(optc);
 }
 
-static struct timing_generator_funcs dcn30_tg_funcs = {
+static const struct timing_generator_funcs dcn30_tg_funcs = {
                .validate_timing = optc1_validate_timing,
                .program_timing = optc1_program_timing,
                .setup_vertical_interrupt0 = optc1_setup_vertical_interrupt0,
index 65e9089..38f85bc 100644 (file)
@@ -109,7 +109,7 @@ void optc301_setup_manual_trigger(struct timing_generator *optc)
                        OTG_TRIGA_CLEAR, 1);
 }
 
-static struct timing_generator_funcs dcn30_tg_funcs = {
+static const struct timing_generator_funcs dcn30_tg_funcs = {
                .validate_timing = optc1_validate_timing,
                .program_timing = optc1_program_timing,
                .setup_vertical_interrupt0 = optc1_setup_vertical_interrupt0,
index ef536f3..4f1830b 100644 (file)
@@ -315,7 +315,7 @@ void optc31_read_otg_state(struct timing_generator *optc,
        s->otg_double_buffer_control = REG_READ(OTG_DOUBLE_BUFFER_CONTROL);
 }
 
-static struct timing_generator_funcs dcn31_tg_funcs = {
+static const struct timing_generator_funcs dcn31_tg_funcs = {
                .validate_timing = optc1_validate_timing,
                .program_timing = optc1_program_timing,
                .setup_vertical_interrupt0 = optc1_setup_vertical_interrupt0,
index 0e603ba..4a2caca 100644 (file)
@@ -192,7 +192,7 @@ static void optc314_set_h_timing_div_manual_mode(struct timing_generator *optc,
 }
 
 
-static struct timing_generator_funcs dcn314_tg_funcs = {
+static const struct timing_generator_funcs dcn314_tg_funcs = {
                .validate_timing = optc1_validate_timing,
                .program_timing = optc1_program_timing,
                .setup_vertical_interrupt0 = optc1_setup_vertical_interrupt0,
index 2cdd19b..b2b226b 100644 (file)
@@ -297,7 +297,7 @@ static void optc32_set_drr(
        optc32_setup_manual_trigger(optc);
 }
 
-static struct timing_generator_funcs dcn32_tg_funcs = {
+static const struct timing_generator_funcs dcn32_tg_funcs = {
                .validate_timing = optc1_validate_timing,
                .program_timing = optc1_program_timing,
                .setup_vertical_interrupt0 = optc1_setup_vertical_interrupt0,
index 4cfc6c0..72bff94 100644 (file)
@@ -428,7 +428,7 @@ static void optc35_set_long_vtotal(
        }
 }
 
-static struct timing_generator_funcs dcn35_tg_funcs = {
+static const struct timing_generator_funcs dcn35_tg_funcs = {
                .validate_timing = optc1_validate_timing,
                .program_timing = optc1_program_timing,
                .setup_vertical_interrupt0 = optc1_setup_vertical_interrupt0,
index 382ac18..ff79c38 100644 (file)
@@ -459,7 +459,7 @@ bool optc401_wait_update_lock_status(struct timing_generator *tg, bool locked)
        return true;
 }
 
-static struct timing_generator_funcs dcn401_tg_funcs = {
+static const struct timing_generator_funcs dcn401_tg_funcs = {
                .validate_timing = optc1_validate_timing,
                .program_timing = optc1_program_timing,
                .setup_vertical_interrupt0 = optc1_setup_vertical_interrupt0,