OSDN Git Service

Revert "drm/amd/display: Move DCN314 DOMAIN power control to DMCUB"
authorDaniel Miess <daniel.miess@amd.com>
Wed, 7 Jun 2023 08:24:08 +0000 (16:24 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 23 Jun 2023 19:38:31 +0000 (15:38 -0400)
This reverts commit e383b12709e32d6494c948422070c2464b637e44.

Controling hubp power gating using the DMCUB isn't stable so we
are reverting this change to move control back into the driver.

Cc: stable@vger.kernel.org # 6.3+
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: Daniel Miess <daniel.miess@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.h
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_init.c

index 7a43f88..32a1c31 100644 (file)
@@ -424,27 +424,6 @@ void dcn314_dpp_root_clock_control(struct dce_hwseq *hws, unsigned int dpp_inst,
                        hws->ctx->dc->res_pool->dccg, dpp_inst, clock_on);
 }
 
-void dcn314_hubp_pg_control(struct dce_hwseq *hws, unsigned int hubp_inst, bool power_on)
-{
-       struct dc_context *ctx = hws->ctx;
-       union dmub_rb_cmd cmd;
-
-       if (hws->ctx->dc->debug.disable_hubp_power_gate)
-               return;
-
-       PERF_TRACE();
-
-       memset(&cmd, 0, sizeof(cmd));
-       cmd.domain_control.header.type = DMUB_CMD__VBIOS;
-       cmd.domain_control.header.sub_type = DMUB_CMD__VBIOS_DOMAIN_CONTROL;
-       cmd.domain_control.header.payload_bytes = sizeof(cmd.domain_control.data);
-       cmd.domain_control.data.inst = hubp_inst;
-       cmd.domain_control.data.power_gate = !power_on;
-
-       dm_execute_dmub_cmd(ctx, &cmd, DM_DMUB_WAIT_TYPE_WAIT);
-
-       PERF_TRACE();
-}
 static void apply_symclk_on_tx_off_wa(struct dc_link *link)
 {
        /* There are use cases where SYMCLK is referenced by OTG. For instance
index 96035c7..3841da6 100644 (file)
@@ -43,8 +43,6 @@ void dcn314_set_pixels_per_cycle(struct pipe_ctx *pipe_ctx);
 
 void dcn314_resync_fifo_dccg_dio(struct dce_hwseq *hws, struct dc *dc, struct dc_state *context);
 
-void dcn314_hubp_pg_control(struct dce_hwseq *hws, unsigned int hubp_inst, bool power_on);
-
 void dcn314_dpp_root_clock_control(struct dce_hwseq *hws, unsigned int dpp_inst, bool clock_on);
 
 void dcn314_disable_link_output(struct dc_link *link, const struct link_resource *link_res, enum signal_type signal);
index 86d6a51..ca8fe55 100644 (file)
@@ -139,7 +139,7 @@ static const struct hwseq_private_funcs dcn314_private_funcs = {
        .plane_atomic_power_down = dcn10_plane_atomic_power_down,
        .enable_power_gating_plane = dcn314_enable_power_gating_plane,
        .dpp_root_clock_control = dcn314_dpp_root_clock_control,
-       .hubp_pg_control = dcn314_hubp_pg_control,
+       .hubp_pg_control = dcn31_hubp_pg_control,
        .program_all_writeback_pipes_in_tree = dcn30_program_all_writeback_pipes_in_tree,
        .update_odm = dcn314_update_odm,
        .dsc_pg_control = dcn314_dsc_pg_control,