Commit 56116dc7 authored by Alex Hung's avatar Alex Hung Committed by Alex Deucher

Revert "drm/amd/display: Enable SYMCLK gating in DCCG"

This reverts commit c49e44ed.

This causes regression on DP link layer test.
Reported-by: default avatarMark Broadworth <Mark.Broadworth@amd.com>
Acked-by: default avatarRodrigo Siqueira <rodrigo.siqueira@amd.com>
Signed-off-by: default avatarAlex Hung <alex.hung@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 85cf43c5
...@@ -728,7 +728,6 @@ enum pg_hw_pipe_resources { ...@@ -728,7 +728,6 @@ enum pg_hw_pipe_resources {
PG_DPSTREAM, PG_DPSTREAM,
PG_HDMISTREAM, PG_HDMISTREAM,
PG_PHYSYMCLK, PG_PHYSYMCLK,
PG_SYMCLK,
PG_HW_PIPE_RESOURCES_NUM_ELEMENT PG_HW_PIPE_RESOURCES_NUM_ELEMENT
}; };
......
...@@ -655,61 +655,9 @@ static void dccg35_disable_symclk32_se( ...@@ -655,61 +655,9 @@ static void dccg35_disable_symclk32_se(
} }
} }
static void dccg35_set_symclk_root_clock_gating(struct dccg *dccg, uint32_t stream_enc_inst,
uint32_t link_enc_inst, bool enable)
{
struct dcn_dccg *dccg_dcn = TO_DCN_DCCG(dccg);
switch (stream_enc_inst) {
case 0:
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk_fe)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKA_FE_ROOT_GATE_DISABLE, enable ? 1 : 0);
break;
case 1:
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk_fe)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKB_FE_ROOT_GATE_DISABLE, enable ? 1 : 0);
break;
case 2:
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk_fe)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKC_FE_ROOT_GATE_DISABLE, enable ? 1 : 0);
break;
case 3:
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk_fe)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKD_FE_ROOT_GATE_DISABLE, enable ? 1 : 0);
break;
case 4:
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk_fe)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKE_FE_ROOT_GATE_DISABLE, enable ? 1 : 0);
break;
}
switch (link_enc_inst) {
case 0:
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk_fe)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKA_ROOT_GATE_DISABLE, enable ? 1 : 0);
break;
case 1:
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk_fe)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKB_ROOT_GATE_DISABLE, enable ? 1 : 0);
break;
case 2:
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk_fe)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKC_ROOT_GATE_DISABLE, enable ? 1 : 0);
break;
case 3:
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk_fe)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKD_ROOT_GATE_DISABLE, enable ? 1 : 0);
break;
case 4:
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk_fe)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKE_ROOT_GATE_DISABLE, enable ? 1 : 0);
break;
}
}
void dccg35_init(struct dccg *dccg) void dccg35_init(struct dccg *dccg)
{ {
int otg_inst, phy_inst; int otg_inst;
/* Set HPO stream encoder to use refclk to avoid case where PHY is /* Set HPO stream encoder to use refclk to avoid case where PHY is
* disabled and SYMCLK32 for HPO SE is sourced from PHYD32CLK which * disabled and SYMCLK32 for HPO SE is sourced from PHYD32CLK which
* will cause DCN to hang. * will cause DCN to hang.
...@@ -723,9 +671,10 @@ void dccg35_init(struct dccg *dccg) ...@@ -723,9 +671,10 @@ void dccg35_init(struct dccg *dccg)
dccg31_set_symclk32_le_root_clock_gating(dccg, otg_inst, false); dccg31_set_symclk32_le_root_clock_gating(dccg, otg_inst, false);
} }
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk_fe) // if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
for (phy_inst = 0; phy_inst < 5; phy_inst++) // for (otg_inst = 0; otg_inst < 4; otg_inst++)
dccg35_set_symclk_root_clock_gating(dccg, phy_inst, phy_inst, false); // dccg35_disable_symclk_se(dccg, otg_inst, otg_inst);
if (dccg->ctx->dc->debug.root_clock_optimization.bits.dpstream) if (dccg->ctx->dc->debug.root_clock_optimization.bits.dpstream)
for (otg_inst = 0; otg_inst < 4; otg_inst++) { for (otg_inst = 0; otg_inst < 4; otg_inst++) {
...@@ -849,22 +798,32 @@ static void dccg35_enable_symclk_se(struct dccg *dccg, uint32_t stream_enc_inst, ...@@ -849,22 +798,32 @@ static void dccg35_enable_symclk_se(struct dccg *dccg, uint32_t stream_enc_inst,
case 0: case 0:
REG_UPDATE(SYMCLKA_CLOCK_ENABLE, REG_UPDATE(SYMCLKA_CLOCK_ENABLE,
SYMCLKA_CLOCK_ENABLE, 1); SYMCLKA_CLOCK_ENABLE, 1);
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKA_ROOT_GATE_DISABLE, 1);
break; break;
case 1: case 1:
REG_UPDATE(SYMCLKB_CLOCK_ENABLE, REG_UPDATE(SYMCLKB_CLOCK_ENABLE,
SYMCLKB_CLOCK_ENABLE, 1); SYMCLKB_CLOCK_ENABLE, 1);
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKB_ROOT_GATE_DISABLE, 1);
break; break;
case 2: case 2:
REG_UPDATE(SYMCLKC_CLOCK_ENABLE, REG_UPDATE(SYMCLKC_CLOCK_ENABLE,
SYMCLKC_CLOCK_ENABLE, 1); SYMCLKC_CLOCK_ENABLE, 1);
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKC_ROOT_GATE_DISABLE, 1);
break; break;
case 3: case 3:
REG_UPDATE(SYMCLKD_CLOCK_ENABLE, REG_UPDATE(SYMCLKD_CLOCK_ENABLE,
SYMCLKD_CLOCK_ENABLE, 1); SYMCLKD_CLOCK_ENABLE, 1);
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKD_ROOT_GATE_DISABLE, 1);
break; break;
case 4: case 4:
REG_UPDATE(SYMCLKE_CLOCK_ENABLE, REG_UPDATE(SYMCLKE_CLOCK_ENABLE,
SYMCLKE_CLOCK_ENABLE, 1); SYMCLKE_CLOCK_ENABLE, 1);
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKE_ROOT_GATE_DISABLE, 1);
break; break;
} }
...@@ -873,26 +832,36 @@ static void dccg35_enable_symclk_se(struct dccg *dccg, uint32_t stream_enc_inst, ...@@ -873,26 +832,36 @@ static void dccg35_enable_symclk_se(struct dccg *dccg, uint32_t stream_enc_inst,
REG_UPDATE_2(SYMCLKA_CLOCK_ENABLE, REG_UPDATE_2(SYMCLKA_CLOCK_ENABLE,
SYMCLKA_FE_EN, 1, SYMCLKA_FE_EN, 1,
SYMCLKA_FE_SRC_SEL, link_enc_inst); SYMCLKA_FE_SRC_SEL, link_enc_inst);
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKA_FE_ROOT_GATE_DISABLE, 1);
break; break;
case 1: case 1:
REG_UPDATE_2(SYMCLKB_CLOCK_ENABLE, REG_UPDATE_2(SYMCLKB_CLOCK_ENABLE,
SYMCLKB_FE_EN, 1, SYMCLKB_FE_EN, 1,
SYMCLKB_FE_SRC_SEL, link_enc_inst); SYMCLKB_FE_SRC_SEL, link_enc_inst);
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKB_FE_ROOT_GATE_DISABLE, 1);
break; break;
case 2: case 2:
REG_UPDATE_2(SYMCLKC_CLOCK_ENABLE, REG_UPDATE_2(SYMCLKC_CLOCK_ENABLE,
SYMCLKC_FE_EN, 1, SYMCLKC_FE_EN, 1,
SYMCLKC_FE_SRC_SEL, link_enc_inst); SYMCLKC_FE_SRC_SEL, link_enc_inst);
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKC_FE_ROOT_GATE_DISABLE, 1);
break; break;
case 3: case 3:
REG_UPDATE_2(SYMCLKD_CLOCK_ENABLE, REG_UPDATE_2(SYMCLKD_CLOCK_ENABLE,
SYMCLKD_FE_EN, 1, SYMCLKD_FE_EN, 1,
SYMCLKD_FE_SRC_SEL, link_enc_inst); SYMCLKD_FE_SRC_SEL, link_enc_inst);
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKD_FE_ROOT_GATE_DISABLE, 1);
break; break;
case 4: case 4:
REG_UPDATE_2(SYMCLKE_CLOCK_ENABLE, REG_UPDATE_2(SYMCLKE_CLOCK_ENABLE,
SYMCLKE_FE_EN, 1, SYMCLKE_FE_EN, 1,
SYMCLKE_FE_SRC_SEL, link_enc_inst); SYMCLKE_FE_SRC_SEL, link_enc_inst);
if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKE_FE_ROOT_GATE_DISABLE, 1);
break; break;
} }
} }
...@@ -953,26 +922,36 @@ static void dccg35_disable_symclk_se(struct dccg *dccg, uint32_t stream_enc_inst ...@@ -953,26 +922,36 @@ static void dccg35_disable_symclk_se(struct dccg *dccg, uint32_t stream_enc_inst
REG_UPDATE_2(SYMCLKA_CLOCK_ENABLE, REG_UPDATE_2(SYMCLKA_CLOCK_ENABLE,
SYMCLKA_FE_EN, 0, SYMCLKA_FE_EN, 0,
SYMCLKA_FE_SRC_SEL, 0); SYMCLKA_FE_SRC_SEL, 0);
// if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
// REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKA_FE_ROOT_GATE_DISABLE, 0);
break; break;
case 1: case 1:
REG_UPDATE_2(SYMCLKB_CLOCK_ENABLE, REG_UPDATE_2(SYMCLKB_CLOCK_ENABLE,
SYMCLKB_FE_EN, 0, SYMCLKB_FE_EN, 0,
SYMCLKB_FE_SRC_SEL, 0); SYMCLKB_FE_SRC_SEL, 0);
// if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
// REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKB_FE_ROOT_GATE_DISABLE, 0);
break; break;
case 2: case 2:
REG_UPDATE_2(SYMCLKC_CLOCK_ENABLE, REG_UPDATE_2(SYMCLKC_CLOCK_ENABLE,
SYMCLKC_FE_EN, 0, SYMCLKC_FE_EN, 0,
SYMCLKC_FE_SRC_SEL, 0); SYMCLKC_FE_SRC_SEL, 0);
// if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
// REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKC_FE_ROOT_GATE_DISABLE, 0);
break; break;
case 3: case 3:
REG_UPDATE_2(SYMCLKD_CLOCK_ENABLE, REG_UPDATE_2(SYMCLKD_CLOCK_ENABLE,
SYMCLKD_FE_EN, 0, SYMCLKD_FE_EN, 0,
SYMCLKD_FE_SRC_SEL, 0); SYMCLKD_FE_SRC_SEL, 0);
// if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
// REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKD_FE_ROOT_GATE_DISABLE, 0);
break; break;
case 4: case 4:
REG_UPDATE_2(SYMCLKE_CLOCK_ENABLE, REG_UPDATE_2(SYMCLKE_CLOCK_ENABLE,
SYMCLKE_FE_EN, 0, SYMCLKE_FE_EN, 0,
SYMCLKE_FE_SRC_SEL, 0); SYMCLKE_FE_SRC_SEL, 0);
// if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_se)
// REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKE_FE_ROOT_GATE_DISABLE, 0);
break; break;
} }
...@@ -985,22 +964,32 @@ static void dccg35_disable_symclk_se(struct dccg *dccg, uint32_t stream_enc_inst ...@@ -985,22 +964,32 @@ static void dccg35_disable_symclk_se(struct dccg *dccg, uint32_t stream_enc_inst
case 0: case 0:
REG_UPDATE(SYMCLKA_CLOCK_ENABLE, REG_UPDATE(SYMCLKA_CLOCK_ENABLE,
SYMCLKA_CLOCK_ENABLE, 0); SYMCLKA_CLOCK_ENABLE, 0);
// if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_le)
// REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKA_ROOT_GATE_DISABLE, 0);
break; break;
case 1: case 1:
REG_UPDATE(SYMCLKB_CLOCK_ENABLE, REG_UPDATE(SYMCLKB_CLOCK_ENABLE,
SYMCLKB_CLOCK_ENABLE, 0); SYMCLKB_CLOCK_ENABLE, 0);
// if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_le)
// REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKB_ROOT_GATE_DISABLE, 0);
break; break;
case 2: case 2:
REG_UPDATE(SYMCLKC_CLOCK_ENABLE, REG_UPDATE(SYMCLKC_CLOCK_ENABLE,
SYMCLKC_CLOCK_ENABLE, 0); SYMCLKC_CLOCK_ENABLE, 0);
// if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_le)
// REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKC_ROOT_GATE_DISABLE, 0);
break; break;
case 3: case 3:
REG_UPDATE(SYMCLKD_CLOCK_ENABLE, REG_UPDATE(SYMCLKD_CLOCK_ENABLE,
SYMCLKD_CLOCK_ENABLE, 0); SYMCLKD_CLOCK_ENABLE, 0);
// if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_le)
// REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKD_ROOT_GATE_DISABLE, 0);
break; break;
case 4: case 4:
REG_UPDATE(SYMCLKE_CLOCK_ENABLE, REG_UPDATE(SYMCLKE_CLOCK_ENABLE,
SYMCLKE_CLOCK_ENABLE, 0); SYMCLKE_CLOCK_ENABLE, 0);
// if (dccg->ctx->dc->debug.root_clock_optimization.bits.symclk32_le)
// REG_UPDATE(DCCG_GATE_DISABLE_CNTL5, SYMCLKE_ROOT_GATE_DISABLE, 0);
break; break;
} }
} }
...@@ -1033,7 +1022,6 @@ static const struct dccg_funcs dccg35_funcs = { ...@@ -1033,7 +1022,6 @@ static const struct dccg_funcs dccg35_funcs = {
.set_valid_pixel_rate = dccg35_set_valid_pixel_rate, .set_valid_pixel_rate = dccg35_set_valid_pixel_rate,
.enable_symclk_se = dccg35_enable_symclk_se, .enable_symclk_se = dccg35_enable_symclk_se,
.disable_symclk_se = dccg35_disable_symclk_se, .disable_symclk_se = dccg35_disable_symclk_se,
.set_symclk_root_clock_gating = dccg35_set_symclk_root_clock_gating,
.set_dtbclk_p_src = dccg35_set_dtbclk_p_src, .set_dtbclk_p_src = dccg35_set_dtbclk_p_src,
}; };
......
...@@ -519,17 +519,6 @@ void dcn35_physymclk_root_clock_control(struct dce_hwseq *hws, unsigned int phy_ ...@@ -519,17 +519,6 @@ void dcn35_physymclk_root_clock_control(struct dce_hwseq *hws, unsigned int phy_
} }
} }
void dcn35_symclk_root_clock_control(struct dce_hwseq *hws, unsigned int enc_inst, bool clock_on)
{
if (!hws->ctx->dc->debug.root_clock_optimization.bits.symclk_fe)
return;
if (hws->ctx->dc->res_pool->dccg->funcs->set_symclk_root_clock_gating) {
hws->ctx->dc->res_pool->dccg->funcs->set_symclk_root_clock_gating(
hws->ctx->dc->res_pool->dccg, enc_inst, enc_inst, clock_on);
}
}
void dcn35_dsc_pg_control( void dcn35_dsc_pg_control(
struct dce_hwseq *hws, struct dce_hwseq *hws,
unsigned int dsc_inst, unsigned int dsc_inst,
...@@ -1019,7 +1008,6 @@ void dcn35_calc_blocks_to_gate(struct dc *dc, struct dc_state *context, ...@@ -1019,7 +1008,6 @@ void dcn35_calc_blocks_to_gate(struct dc *dc, struct dc_state *context,
int i = 0, j = 0; int i = 0, j = 0;
int edp_num = 0; int edp_num = 0;
struct dc_link *edp_links[MAX_NUM_EDP] = { NULL }; struct dc_link *edp_links[MAX_NUM_EDP] = { NULL };
bool stream_enc_in_use[MAX_PIPES] = { false };
memset(update_state, 0, sizeof(struct pg_block_update)); memset(update_state, 0, sizeof(struct pg_block_update));
...@@ -1065,17 +1053,10 @@ void dcn35_calc_blocks_to_gate(struct dc *dc, struct dc_state *context, ...@@ -1065,17 +1053,10 @@ void dcn35_calc_blocks_to_gate(struct dc *dc, struct dc_state *context,
if (pipe_ctx->stream_res.hpo_dp_stream_enc) if (pipe_ctx->stream_res.hpo_dp_stream_enc)
update_state->pg_pipe_res_update[PG_DPSTREAM][pipe_ctx->stream_res.hpo_dp_stream_enc->inst] = false; update_state->pg_pipe_res_update[PG_DPSTREAM][pipe_ctx->stream_res.hpo_dp_stream_enc->inst] = false;
if (pipe_ctx->stream_res.stream_enc &&
!pipe_ctx->stream_res.hpo_dp_stream_enc)
stream_enc_in_use[pipe_ctx->stream_res.stream_enc->stream_enc_inst] = true;
} }
for (i = 0; i < dc->res_pool->pipe_count; i++)
if (stream_enc_in_use[i])
update_state->pg_pipe_res_update[PG_SYMCLK][i] = false;
for (i = 0; i < dc->link_count; i++) { for (i = 0; i < dc->link_count; i++) {
update_state->pg_pipe_res_update[PG_PHYSYMCLK][dc->links[i]->link_enc_hw_inst] = true;
if (dc->links[i]->type != dc_connection_none) if (dc->links[i]->type != dc_connection_none)
update_state->pg_pipe_res_update[PG_PHYSYMCLK][dc->links[i]->link_enc_hw_inst] = false; update_state->pg_pipe_res_update[PG_PHYSYMCLK][dc->links[i]->link_enc_hw_inst] = false;
} }
...@@ -1139,10 +1120,6 @@ void dcn35_calc_blocks_to_ungate(struct dc *dc, struct dc_state *context, ...@@ -1139,10 +1120,6 @@ void dcn35_calc_blocks_to_ungate(struct dc *dc, struct dc_state *context,
if (j == PG_DPSTREAM && new_pipe->stream_res.hpo_dp_stream_enc) if (j == PG_DPSTREAM && new_pipe->stream_res.hpo_dp_stream_enc)
update_state->pg_pipe_res_update[j][new_pipe->stream_res.hpo_dp_stream_enc->inst] = true; update_state->pg_pipe_res_update[j][new_pipe->stream_res.hpo_dp_stream_enc->inst] = true;
if (j == PG_SYMCLK && new_pipe->stream_res.stream_enc &&
!new_pipe->stream_res.hpo_dp_stream_enc)
update_state->pg_pipe_res_update[j][new_pipe->stream_res.stream_enc->stream_enc_inst] = true;
} }
} else if (cur_pipe->plane_state == new_pipe->plane_state || } else if (cur_pipe->plane_state == new_pipe->plane_state ||
cur_pipe == new_pipe) { cur_pipe == new_pipe) {
...@@ -1177,12 +1154,6 @@ void dcn35_calc_blocks_to_ungate(struct dc *dc, struct dc_state *context, ...@@ -1177,12 +1154,6 @@ void dcn35_calc_blocks_to_ungate(struct dc *dc, struct dc_state *context,
cur_pipe->stream_res.hpo_dp_stream_enc != new_pipe->stream_res.hpo_dp_stream_enc && cur_pipe->stream_res.hpo_dp_stream_enc != new_pipe->stream_res.hpo_dp_stream_enc &&
new_pipe->stream_res.hpo_dp_stream_enc) new_pipe->stream_res.hpo_dp_stream_enc)
update_state->pg_pipe_res_update[j][new_pipe->stream_res.hpo_dp_stream_enc->inst] = true; update_state->pg_pipe_res_update[j][new_pipe->stream_res.hpo_dp_stream_enc->inst] = true;
if (j == PG_SYMCLK &&
new_pipe->stream_res.stream_enc &&
cur_pipe->stream_res.stream_enc != new_pipe->stream_res.stream_enc &&
!new_pipe->stream_res.hpo_dp_stream_enc)
update_state->pg_pipe_res_update[j][new_pipe->stream_res.stream_enc->stream_enc_inst] = true;
} }
} }
} }
...@@ -1341,16 +1312,11 @@ void dcn35_root_clock_control(struct dc *dc, ...@@ -1341,16 +1312,11 @@ void dcn35_root_clock_control(struct dc *dc,
dc->hwseq->funcs.dpstream_root_clock_control(dc->hwseq, i, power_on); dc->hwseq->funcs.dpstream_root_clock_control(dc->hwseq, i, power_on);
} }
for (i = 0; i < dc->res_pool->dig_link_enc_count; i++) { for (i = 0; i < dc->res_pool->dig_link_enc_count; i++)
if (update_state->pg_pipe_res_update[PG_PHYSYMCLK][i]) if (update_state->pg_pipe_res_update[PG_PHYSYMCLK][i])
if (dc->hwseq->funcs.physymclk_root_clock_control) if (dc->hwseq->funcs.physymclk_root_clock_control)
dc->hwseq->funcs.physymclk_root_clock_control(dc->hwseq, i, power_on); dc->hwseq->funcs.physymclk_root_clock_control(dc->hwseq, i, power_on);
if (update_state->pg_pipe_res_update[PG_SYMCLK][i])
if (dc->hwseq->funcs.symclk_root_clock_control)
dc->hwseq->funcs.symclk_root_clock_control(dc->hwseq, i, power_on);
}
} }
for (i = 0; i < dc->res_pool->res_cap->num_dsc; i++) { for (i = 0; i < dc->res_pool->res_cap->num_dsc; i++) {
if (update_state->pg_pipe_res_update[PG_DSC][i]) { if (update_state->pg_pipe_res_update[PG_DSC][i]) {
...@@ -1376,16 +1342,11 @@ void dcn35_root_clock_control(struct dc *dc, ...@@ -1376,16 +1342,11 @@ void dcn35_root_clock_control(struct dc *dc,
dc->hwseq->funcs.dpstream_root_clock_control(dc->hwseq, i, power_on); dc->hwseq->funcs.dpstream_root_clock_control(dc->hwseq, i, power_on);
} }
for (i = 0; i < dc->res_pool->dig_link_enc_count; i++) { for (i = 0; i < dc->res_pool->dig_link_enc_count; i++)
if (update_state->pg_pipe_res_update[PG_PHYSYMCLK][i]) if (update_state->pg_pipe_res_update[PG_PHYSYMCLK][i])
if (dc->hwseq->funcs.physymclk_root_clock_control) if (dc->hwseq->funcs.physymclk_root_clock_control)
dc->hwseq->funcs.physymclk_root_clock_control(dc->hwseq, i, power_on); dc->hwseq->funcs.physymclk_root_clock_control(dc->hwseq, i, power_on);
if (update_state->pg_pipe_res_update[PG_SYMCLK][i])
if (dc->hwseq->funcs.symclk_root_clock_control)
dc->hwseq->funcs.symclk_root_clock_control(dc->hwseq, i, power_on);
}
} }
} }
......
...@@ -41,8 +41,6 @@ void dcn35_dpstream_root_clock_control(struct dce_hwseq *hws, unsigned int dp_hp ...@@ -41,8 +41,6 @@ void dcn35_dpstream_root_clock_control(struct dce_hwseq *hws, unsigned int dp_hp
void dcn35_physymclk_root_clock_control(struct dce_hwseq *hws, unsigned int phy_inst, bool clock_on); void dcn35_physymclk_root_clock_control(struct dce_hwseq *hws, unsigned int phy_inst, bool clock_on);
void dcn35_symclk_root_clock_control(struct dce_hwseq *hws, unsigned int enc_inst, bool clock_on);
void dcn35_enable_power_gating_plane(struct dce_hwseq *hws, bool enable); void dcn35_enable_power_gating_plane(struct dce_hwseq *hws, bool enable);
void dcn35_set_dmu_fgcg(struct dce_hwseq *hws, bool enable); void dcn35_set_dmu_fgcg(struct dce_hwseq *hws, bool enable);
......
...@@ -150,7 +150,6 @@ static const struct hwseq_private_funcs dcn35_private_funcs = { ...@@ -150,7 +150,6 @@ static const struct hwseq_private_funcs dcn35_private_funcs = {
.dpp_root_clock_control = dcn35_dpp_root_clock_control, .dpp_root_clock_control = dcn35_dpp_root_clock_control,
.dpstream_root_clock_control = dcn35_dpstream_root_clock_control, .dpstream_root_clock_control = dcn35_dpstream_root_clock_control,
.physymclk_root_clock_control = dcn35_physymclk_root_clock_control, .physymclk_root_clock_control = dcn35_physymclk_root_clock_control,
.symclk_root_clock_control = dcn35_symclk_root_clock_control,
.program_all_writeback_pipes_in_tree = dcn30_program_all_writeback_pipes_in_tree, .program_all_writeback_pipes_in_tree = dcn30_program_all_writeback_pipes_in_tree,
.update_odm = dcn35_update_odm, .update_odm = dcn35_update_odm,
.set_hdr_multiplier = dcn10_set_hdr_multiplier, .set_hdr_multiplier = dcn10_set_hdr_multiplier,
......
...@@ -149,7 +149,6 @@ static const struct hwseq_private_funcs dcn351_private_funcs = { ...@@ -149,7 +149,6 @@ static const struct hwseq_private_funcs dcn351_private_funcs = {
.dpp_root_clock_control = dcn35_dpp_root_clock_control, .dpp_root_clock_control = dcn35_dpp_root_clock_control,
.dpstream_root_clock_control = dcn35_dpstream_root_clock_control, .dpstream_root_clock_control = dcn35_dpstream_root_clock_control,
.physymclk_root_clock_control = dcn35_physymclk_root_clock_control, .physymclk_root_clock_control = dcn35_physymclk_root_clock_control,
.symclk_root_clock_control = dcn35_symclk_root_clock_control,
.program_all_writeback_pipes_in_tree = dcn30_program_all_writeback_pipes_in_tree, .program_all_writeback_pipes_in_tree = dcn30_program_all_writeback_pipes_in_tree,
.update_odm = dcn35_update_odm, .update_odm = dcn35_update_odm,
.set_hdr_multiplier = dcn10_set_hdr_multiplier, .set_hdr_multiplier = dcn10_set_hdr_multiplier,
......
...@@ -128,10 +128,6 @@ struct hwseq_private_funcs { ...@@ -128,10 +128,6 @@ struct hwseq_private_funcs {
struct dce_hwseq *hws, struct dce_hwseq *hws,
unsigned int phy_inst, unsigned int phy_inst,
bool clock_on); bool clock_on);
void (*symclk_root_clock_control)(
struct dce_hwseq *hws,
unsigned int enc_inst,
bool clock_on);
void (*dpp_pg_control)(struct dce_hwseq *hws, void (*dpp_pg_control)(struct dce_hwseq *hws,
unsigned int dpp_inst, unsigned int dpp_inst,
bool power_on); bool power_on);
......
...@@ -199,13 +199,6 @@ struct dccg_funcs { ...@@ -199,13 +199,6 @@ struct dccg_funcs {
struct dccg *dccg, struct dccg *dccg,
uint32_t stream_enc_inst, uint32_t stream_enc_inst,
uint32_t link_enc_inst); uint32_t link_enc_inst);
void (*set_symclk_root_clock_gating)(
struct dccg *dccg,
uint32_t stream_enc_inst,
uint32_t link_enc_inst,
bool enable);
void (*set_dp_dto)( void (*set_dp_dto)(
struct dccg *dccg, struct dccg *dccg,
const struct dp_dto_params *params); const struct dp_dto_params *params);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment