]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/amd/display: Remove duplicate HWSS interfaces
authorJoshua Aberback <joshua.aberback@amd.com>
Thu, 6 Jun 2024 19:51:16 +0000 (15:51 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 23 Jul 2024 21:38:42 +0000 (17:38 -0400)
[Why]
Some interface functions are defined in both the public and private HWSS
interfaces, which can lead to confusion and runtime issues, therefore
the duplicates should be eliminated.

[How]
- power_down should only be private, because it's only used within HWSS.
- update_plane_addr should only be public, as it's used outside HWSS.

Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Joshua Aberback <joshua.aberback@amd.com>
Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
21 files changed:
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_init.c
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_init.c
drivers/gpu/drm/amd/display/dc/hwss/dcn201/dcn201_init.c
drivers/gpu/drm/amd/display/dc/hwss/dcn21/dcn21_init.c
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_init.c
drivers/gpu/drm/amd/display/dc/hwss/dcn301/dcn301_init.c
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_init.c
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_init.c
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_init.c
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_init.c
drivers/gpu/drm/amd/display/dc/hwss/dcn351/dcn351_init.c
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_init.c
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer_private.h

index 4593fb2a0536ba7052c8eb5a367d1f878820407e..e2f5c4d34a553ebc8e69ccdd8ecb3fa06c9f2fac 100644 (file)
@@ -3319,7 +3319,6 @@ static const struct hw_sequencer_funcs dce110_funcs = {
 
 static const struct hwseq_private_funcs dce110_private_funcs = {
        .init_pipes = init_pipes,
-       .update_plane_addr = update_plane_addr,
        .set_input_transfer_func = dce110_set_input_transfer_func,
        .set_output_transfer_func = dce110_set_output_transfer_func,
        .power_down = dce110_power_down,
index 212576dbc3362bb7c0ed66186a04496f2160abb4..e31249d1dd22e8d33af0fabe3acb3ecdcc3034c7 100644 (file)
@@ -1696,10 +1696,10 @@ void dcn10_power_down_on_boot(struct dc *dc)
        if (edp_link && edp_link->link_enc->funcs->is_dig_enabled &&
                        edp_link->link_enc->funcs->is_dig_enabled(edp_link->link_enc) &&
                        dc->hwseq->funcs.edp_backlight_control &&
-                       dc->hwss.power_down &&
+                       dc->hwseq->funcs.power_down &&
                        dc->hwss.edp_power_control) {
                dc->hwseq->funcs.edp_backlight_control(edp_link, false);
-               dc->hwss.power_down(dc);
+               dc->hwseq->funcs.power_down(dc);
                dc->hwss.edp_power_control(edp_link, false);
        } else {
                for (i = 0; i < dc->link_count; i++) {
@@ -1707,8 +1707,8 @@ void dcn10_power_down_on_boot(struct dc *dc)
 
                        if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
                                        link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
-                                       dc->hwss.power_down) {
-                               dc->hwss.power_down(dc);
+                                       dc->hwseq->funcs.power_down) {
+                               dc->hwseq->funcs.power_down(dc);
                                break;
                        }
 
@@ -2913,7 +2913,7 @@ static void dcn10_update_dchubp_dpp(
 
        hubp->power_gated = false;
 
-       hws->funcs.update_plane_addr(dc, pipe_ctx);
+       dc->hwss.update_plane_addr(dc, pipe_ctx);
 
        if (is_pipe_tree_visible(pipe_ctx))
                hubp->funcs->set_blank(hubp, false);
index a5bdac79a744eb6808f786e27d39031006cf02b0..5e51e1761707de45ed55f37c9637177da28a6b51 100644 (file)
@@ -78,7 +78,6 @@ static const struct hw_sequencer_funcs dcn10_funcs = {
        .get_clock = dcn10_get_clock,
        .get_vupdate_offset_from_vsync = dcn10_get_vupdate_offset_from_vsync,
        .calc_vupdate_position = dcn10_calc_vupdate_position,
-       .power_down = dce110_power_down,
        .set_backlight_level = dce110_set_backlight_level,
        .set_abm_immediate_disable = dce110_set_abm_immediate_disable,
        .set_pipe = dce110_set_pipe,
@@ -92,7 +91,6 @@ static const struct hw_sequencer_funcs dcn10_funcs = {
 
 static const struct hwseq_private_funcs dcn10_private_funcs = {
        .init_pipes = dcn10_init_pipes,
-       .update_plane_addr = dcn10_update_plane_addr,
        .plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
        .program_pipe = dcn10_program_pipe,
        .update_mpcc = dcn10_update_mpcc,
index bd7b186fb2e4699859cf7374a1c3db99fffe3b35..270e337ae27bbcb5f6bf396cbd84c6a48f433851 100644 (file)
@@ -1825,7 +1825,7 @@ static void dcn20_update_dchubp_dpp(
                        params.subvp_save_surf_addr.subvp_index = pipe_ctx->subvp_index;
                        hwss_subvp_save_surf_addr(&params);
                }
-               hws->funcs.update_plane_addr(dc, pipe_ctx);
+               dc->hwss.update_plane_addr(dc, pipe_ctx);
        }
 
        if (pipe_ctx->update_flags.bits.enable)
index ef6488165b8fc84a832c877271c630e9ea554696..32707b344f0b68e8b8da39c786ffcb14e2a621c6 100644 (file)
@@ -105,7 +105,6 @@ static const struct hw_sequencer_funcs dcn20_funcs = {
 
 static const struct hwseq_private_funcs dcn20_private_funcs = {
        .init_pipes = dcn10_init_pipes,
-       .update_plane_addr = dcn20_update_plane_addr,
        .plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
        .update_mpcc = dcn20_update_mpcc,
        .set_input_transfer_func = dcn20_set_input_transfer_func,
index a13bf6c9386e0a318a3d3a2a987e4acc46d8945a..78351408e864225feedaa3074160a732f440c80c 100644 (file)
@@ -96,7 +96,6 @@ static const struct hw_sequencer_funcs dcn201_funcs = {
 
 static const struct hwseq_private_funcs dcn201_private_funcs = {
        .init_pipes = NULL,
-       .update_plane_addr = dcn201_update_plane_addr,
        .plane_atomic_disconnect = dcn201_plane_atomic_disconnect,
        .program_pipe = dcn10_program_pipe,
        .update_mpcc = dcn201_update_mpcc,
index 3dfac372d1654bba15b2b97ffced30ac604c31d9..e044e9e0a3a17a6b5dd915b18428d4a29bcb8e65 100644 (file)
@@ -93,7 +93,6 @@ static const struct hw_sequencer_funcs dcn21_funcs = {
        .exit_optimized_pwr_state = dcn21_exit_optimized_pwr_state,
        .get_vupdate_offset_from_vsync = dcn10_get_vupdate_offset_from_vsync,
        .calc_vupdate_position = dcn10_calc_vupdate_position,
-       .power_down = dce110_power_down,
        .set_backlight_level = dcn21_set_backlight_level,
        .set_abm_immediate_disable = dcn21_set_abm_immediate_disable,
        .set_pipe = dcn21_set_pipe,
@@ -109,7 +108,6 @@ static const struct hw_sequencer_funcs dcn21_funcs = {
 
 static const struct hwseq_private_funcs dcn21_private_funcs = {
        .init_pipes = dcn10_init_pipes,
-       .update_plane_addr = dcn20_update_plane_addr,
        .plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
        .update_mpcc = dcn20_update_mpcc,
        .set_input_transfer_func = dcn20_set_input_transfer_func,
index eaeeade31ed74f813e74c248a57191cf39626ce2..fc5936460ac26a4b512e8e434b8ce98253968523 100644 (file)
@@ -731,10 +731,10 @@ void dcn30_init_hw(struct dc *dc)
                if (edp_link && edp_link->link_enc->funcs->is_dig_enabled &&
                                edp_link->link_enc->funcs->is_dig_enabled(edp_link->link_enc) &&
                                dc->hwss.edp_backlight_control &&
-                               dc->hwss.power_down &&
+                               hws->funcs.power_down &&
                                dc->hwss.edp_power_control) {
                        dc->hwss.edp_backlight_control(edp_link, false);
-                       dc->hwss.power_down(dc);
+                       hws->funcs.power_down(dc);
                        dc->hwss.edp_power_control(edp_link, false);
                } else {
                        for (i = 0; i < dc->link_count; i++) {
@@ -742,8 +742,8 @@ void dcn30_init_hw(struct dc *dc)
 
                                if (link->link_enc->funcs->is_dig_enabled &&
                                                link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
-                                               dc->hwss.power_down) {
-                                       dc->hwss.power_down(dc);
+                                               hws->funcs.power_down) {
+                                       hws->funcs.power_down(dc);
                                        break;
                                }
 
index 4b32497c09d08a98d001098536ab4d73078280bf..2a8dc40d28477b5b4c53b077912c6a7f50c2da17 100644 (file)
@@ -113,7 +113,6 @@ static const struct hw_sequencer_funcs dcn30_funcs = {
 
 static const struct hwseq_private_funcs dcn30_private_funcs = {
        .init_pipes = dcn10_init_pipes,
-       .update_plane_addr = dcn20_update_plane_addr,
        .plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
        .update_mpcc = dcn20_update_mpcc,
        .set_input_transfer_func = dcn30_set_input_transfer_func,
index 97e33eb7ac5a9651857e98f1f2cdc929fc7cee67..93e49d87a67ce0ce5842b7a0a0fc90da23f982a0 100644 (file)
@@ -111,7 +111,6 @@ static const struct hw_sequencer_funcs dcn301_funcs = {
 
 static const struct hwseq_private_funcs dcn301_private_funcs = {
        .init_pipes = dcn10_init_pipes,
-       .update_plane_addr = dcn20_update_plane_addr,
        .plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
        .update_mpcc = dcn20_update_mpcc,
        .set_input_transfer_func = dcn30_set_input_transfer_func,
index 9cb7afe0e731e2009b81f17bb1c6759800007236..b57dd45611f234f05d560003bbc6c3a24f969a34 100644 (file)
@@ -98,7 +98,6 @@ static const struct hw_sequencer_funcs dcn31_funcs = {
        .set_flip_control_gsl = dcn20_set_flip_control_gsl,
        .get_vupdate_offset_from_vsync = dcn10_get_vupdate_offset_from_vsync,
        .calc_vupdate_position = dcn10_calc_vupdate_position,
-       .power_down = dce110_power_down,
        .set_backlight_level = dcn21_set_backlight_level,
        .set_abm_immediate_disable = dcn21_set_abm_immediate_disable,
        .set_pipe = dcn21_set_pipe,
@@ -116,7 +115,6 @@ static const struct hw_sequencer_funcs dcn31_funcs = {
 
 static const struct hwseq_private_funcs dcn31_private_funcs = {
        .init_pipes = dcn10_init_pipes,
-       .update_plane_addr = dcn20_update_plane_addr,
        .plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
        .update_mpcc = dcn20_update_mpcc,
        .set_input_transfer_func = dcn30_set_input_transfer_func,
index 7a8db4b81471e9be85e94f7e21caade0b1629ff3..fe5495a8e7a2b9f9566c1a8bc1d5811fb4e27659 100644 (file)
@@ -100,7 +100,6 @@ static const struct hw_sequencer_funcs dcn314_funcs = {
        .set_flip_control_gsl = dcn20_set_flip_control_gsl,
        .get_vupdate_offset_from_vsync = dcn10_get_vupdate_offset_from_vsync,
        .calc_vupdate_position = dcn10_calc_vupdate_position,
-       .power_down = dce110_power_down,
        .set_backlight_level = dcn21_set_backlight_level,
        .set_abm_immediate_disable = dcn21_set_abm_immediate_disable,
        .set_pipe = dcn21_set_pipe,
@@ -119,7 +118,6 @@ static const struct hw_sequencer_funcs dcn314_funcs = {
 
 static const struct hwseq_private_funcs dcn314_private_funcs = {
        .init_pipes = dcn10_init_pipes,
-       .update_plane_addr = dcn20_update_plane_addr,
        .plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
        .update_mpcc = dcn20_update_mpcc,
        .set_input_transfer_func = dcn30_set_input_transfer_func,
index 7f41eccefe02d85f43ac7e1d590969983bc4df17..a7cb003f1dfb7bd720aacefebe3b3cb6faab8998 100644 (file)
@@ -901,10 +901,10 @@ void dcn32_init_hw(struct dc *dc)
                                if (edp_link->link_enc->funcs->is_dig_enabled &&
                                                edp_link->link_enc->funcs->is_dig_enabled(edp_link->link_enc) &&
                                                dc->hwss.edp_backlight_control &&
-                                               dc->hwss.power_down &&
+                                               hws->funcs.power_down &&
                                                dc->hwss.edp_power_control) {
                                        dc->hwss.edp_backlight_control(edp_link, false);
-                                       dc->hwss.power_down(dc);
+                                       hws->funcs.power_down(dc);
                                        dc->hwss.edp_power_control(edp_link, false);
                                }
                        }
@@ -914,8 +914,8 @@ void dcn32_init_hw(struct dc *dc)
 
                                if (link->link_enc->funcs->is_dig_enabled &&
                                                link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
-                                               dc->hwss.power_down) {
-                                       dc->hwss.power_down(dc);
+                                               hws->funcs.power_down) {
+                                       hws->funcs.power_down(dc);
                                        break;
                                }
 
index 5c50458b12cb1f8b43ffd1e7dbf41b0a5a235ffc..968b010971ea8c7a6afa37e3c6478d06d62af946 100644 (file)
@@ -124,7 +124,6 @@ static const struct hw_sequencer_funcs dcn32_funcs = {
 
 static const struct hwseq_private_funcs dcn32_private_funcs = {
        .init_pipes = dcn10_init_pipes,
-       .update_plane_addr = dcn20_update_plane_addr,
        .plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
        .update_mpcc = dcn20_update_mpcc,
        .set_input_transfer_func = dcn32_set_input_transfer_func,
index ac1e3331a77c7b0577b4d6e42b86084d270f5ee7..a9dc7cf12dac8b836cf5ed5243f224b72e7135d5 100644 (file)
@@ -629,10 +629,10 @@ void dcn35_power_down_on_boot(struct dc *dc)
        if (edp_link && edp_link->link_enc->funcs->is_dig_enabled &&
                        edp_link->link_enc->funcs->is_dig_enabled(edp_link->link_enc) &&
                        dc->hwseq->funcs.edp_backlight_control &&
-                       dc->hwss.power_down &&
+                       dc->hwseq->funcs.power_down &&
                        dc->hwss.edp_power_control) {
                dc->hwseq->funcs.edp_backlight_control(edp_link, false);
-               dc->hwss.power_down(dc);
+               dc->hwseq->funcs.power_down(dc);
                dc->hwss.edp_power_control(edp_link, false);
        } else {
                for (i = 0; i < dc->link_count; i++) {
@@ -640,8 +640,8 @@ void dcn35_power_down_on_boot(struct dc *dc)
 
                        if (link->link_enc && link->link_enc->funcs->is_dig_enabled &&
                                        link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
-                                       dc->hwss.power_down) {
-                               dc->hwss.power_down(dc);
+                                       dc->hwseq->funcs.power_down) {
+                               dc->hwseq->funcs.power_down(dc);
                                break;
                        }
 
index 428912f371291b11d0266b7c25cc366b5f82f78d..55dc5799e725a0c7d147a604d21d424786db8876 100644 (file)
@@ -101,7 +101,6 @@ static const struct hw_sequencer_funcs dcn35_funcs = {
        .set_flip_control_gsl = dcn20_set_flip_control_gsl,
        .get_vupdate_offset_from_vsync = dcn10_get_vupdate_offset_from_vsync,
        .calc_vupdate_position = dcn10_calc_vupdate_position,
-       .power_down = dce110_power_down,
        .set_backlight_level = dcn21_set_backlight_level,
        .set_abm_immediate_disable = dcn21_set_abm_immediate_disable,
        .set_pipe = dcn21_set_pipe,
@@ -128,7 +127,6 @@ static const struct hw_sequencer_funcs dcn35_funcs = {
 
 static const struct hwseq_private_funcs dcn35_private_funcs = {
        .init_pipes = dcn35_init_pipes,
-       .update_plane_addr = dcn20_update_plane_addr,
        .plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
        .update_mpcc = dcn20_update_mpcc,
        .set_input_transfer_func = dcn32_set_input_transfer_func,
index 55e791552bca868351a33e28cc7162a7ec86ad4d..b1b2a58684e70dc7398cea320b6e1af7d331c1e2 100644 (file)
@@ -100,7 +100,6 @@ static const struct hw_sequencer_funcs dcn351_funcs = {
        .set_flip_control_gsl = dcn20_set_flip_control_gsl,
        .get_vupdate_offset_from_vsync = dcn10_get_vupdate_offset_from_vsync,
        .calc_vupdate_position = dcn10_calc_vupdate_position,
-       .power_down = dce110_power_down,
        .set_backlight_level = dcn21_set_backlight_level,
        .set_abm_immediate_disable = dcn21_set_abm_immediate_disable,
        .set_pipe = dcn21_set_pipe,
@@ -127,7 +126,6 @@ static const struct hw_sequencer_funcs dcn351_funcs = {
 
 static const struct hwseq_private_funcs dcn351_private_funcs = {
        .init_pipes = dcn35_init_pipes,
-       .update_plane_addr = dcn20_update_plane_addr,
        .plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
        .update_mpcc = dcn20_update_mpcc,
        .set_input_transfer_func = dcn32_set_input_transfer_func,
index 779960278a5ce2cc179f376ed4abfe619b971126..87c5ef579ecbbd9d74d9cc01f9e3cac927342836 100644 (file)
@@ -354,10 +354,10 @@ void dcn401_init_hw(struct dc *dc)
                                if (edp_link->link_enc->funcs->is_dig_enabled &&
                                                edp_link->link_enc->funcs->is_dig_enabled(edp_link->link_enc) &&
                                                dc->hwss.edp_backlight_control &&
-                                               dc->hwss.power_down &&
+                                               hws->funcs.power_down &&
                                                dc->hwss.edp_power_control) {
                                        dc->hwss.edp_backlight_control(edp_link, false);
-                                       dc->hwss.power_down(dc);
+                                       hws->funcs.power_down(dc);
                                        dc->hwss.edp_power_control(edp_link, false);
                                }
                        }
@@ -367,8 +367,8 @@ void dcn401_init_hw(struct dc *dc)
 
                                if (link->link_enc->funcs->is_dig_enabled &&
                                                link->link_enc->funcs->is_dig_enabled(link->link_enc) &&
-                                               dc->hwss.power_down) {
-                                       dc->hwss.power_down(dc);
+                                               hws->funcs.power_down) {
+                                       hws->funcs.power_down(dc);
                                        break;
                                }
 
index 1439f07f0b64eda8d5417de8e1af9e44ab75b37f..2533f16510ba1837a07d18592f7f8af28db8e4f9 100644 (file)
@@ -99,12 +99,10 @@ static const struct hw_sequencer_funcs dcn401_funcs = {
        .fams2_global_control_lock = dcn401_fams2_global_control_lock,
        .fams2_update_config = dcn401_fams2_update_config,
        .fams2_global_control_lock_fast = dcn401_fams2_global_control_lock_fast,
-       .power_down = dce110_power_down,
 };
 
 static const struct hwseq_private_funcs dcn401_private_funcs = {
        .init_pipes = dcn10_init_pipes,
-       .update_plane_addr = dcn20_update_plane_addr,
        .plane_atomic_disconnect = dcn10_plane_atomic_disconnect,
        .update_mpcc = dcn20_update_mpcc,
        .set_input_transfer_func = dcn32_set_input_transfer_func,
index d05be65a2256c96eb99619c6d470efb8ba2f406b..f50b2955ce8c63b6d180ce3199d9a48ffcafc901 100644 (file)
@@ -240,7 +240,6 @@ struct hw_sequencer_funcs {
        void (*program_triplebuffer)(const struct dc *dc,
                struct pipe_ctx *pipe_ctx, bool enableTripleBuffer);
        void (*update_pending_status)(struct pipe_ctx *pipe_ctx);
-       void (*power_down)(struct dc *dc);
        void (*update_dsc_pg)(struct dc *dc, struct dc_state *context, bool safe_to_disable);
 
        /* Pipe Lock Related */
index 7a75ff320511d23bb84febc428c765aa66af6420..0ac67545697923ddfbadf06db2530ccb829fc78d 100644 (file)
@@ -76,8 +76,6 @@ struct hwseq_private_funcs {
        void (*enable_stream_gating)(struct dc *dc, struct pipe_ctx *pipe_ctx);
        void (*init_pipes)(struct dc *dc, struct dc_state *context);
        void (*reset_hw_ctx_wrap)(struct dc *dc, struct dc_state *context);
-       void (*update_plane_addr)(const struct dc *dc,
-                       struct pipe_ctx *pipe_ctx);
        void (*plane_atomic_disconnect)(struct dc *dc,
                        struct dc_state *state,
                        struct pipe_ctx *pipe_ctx);