|
@@ -105,10 +105,10 @@ static struct divider_range divider_ranges[DIVIDER_RANGE_MAX];
|
|
|
|
|
|
static bool dce110_set_min_clocks_state(
|
|
|
struct display_clock *dc,
|
|
|
- enum clocks_state clocks_state)
|
|
|
+ enum dm_pp_clocks_state clocks_state)
|
|
|
{
|
|
|
struct dm_pp_power_level_change_request level_change_req = {
|
|
|
- DM_PP_POWER_LEVEL_INVALID};
|
|
|
+ clocks_state };
|
|
|
|
|
|
if (clocks_state > dc->max_clks_state) {
|
|
|
/*Requested state exceeds max supported state.*/
|
|
@@ -121,38 +121,6 @@ static bool dce110_set_min_clocks_state(
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- switch (clocks_state) {
|
|
|
- case CLOCKS_STATE_ULTRA_LOW:
|
|
|
- level_change_req.power_level = DM_PP_POWER_LEVEL_ULTRA_LOW;
|
|
|
- break;
|
|
|
- case CLOCKS_STATE_LOW:
|
|
|
- level_change_req.power_level = DM_PP_POWER_LEVEL_LOW;
|
|
|
- break;
|
|
|
- case CLOCKS_STATE_NOMINAL:
|
|
|
- level_change_req.power_level = DM_PP_POWER_LEVEL_NOMINAL;
|
|
|
- break;
|
|
|
- case CLOCKS_STATE_PERFORMANCE:
|
|
|
- level_change_req.power_level = DM_PP_POWER_LEVEL_PERFORMANCE;
|
|
|
- break;
|
|
|
- case CLOCKS_DPM_STATE_LEVEL_4:
|
|
|
- level_change_req.power_level = DM_PP_POWER_LEVEL_4;
|
|
|
- break;
|
|
|
- case CLOCKS_DPM_STATE_LEVEL_5:
|
|
|
- level_change_req.power_level = DM_PP_POWER_LEVEL_5;
|
|
|
- break;
|
|
|
- case CLOCKS_DPM_STATE_LEVEL_6:
|
|
|
- level_change_req.power_level = DM_PP_POWER_LEVEL_6;
|
|
|
- break;
|
|
|
- case CLOCKS_DPM_STATE_LEVEL_7:
|
|
|
- level_change_req.power_level = DM_PP_POWER_LEVEL_7;
|
|
|
- break;
|
|
|
- case CLOCKS_STATE_INVALID:
|
|
|
- default:
|
|
|
- dm_logger_write(dc->ctx->logger, LOG_WARNING,
|
|
|
- "Requested state invalid state");
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
/* get max clock state from PPLIB */
|
|
|
if (dm_pp_apply_power_level_change_request(dc->ctx, &level_change_req))
|
|
|
dc->cur_min_clks_state = clocks_state;
|
|
@@ -274,27 +242,27 @@ static bool display_clock_integrated_info_construct(
|
|
|
|
|
|
/*update the maximum display clock for each power state*/
|
|
|
for (i = 0; i < NUMBER_OF_DISP_CLK_VOLTAGE; ++i) {
|
|
|
- enum clocks_state clk_state = CLOCKS_STATE_INVALID;
|
|
|
+ enum dm_pp_clocks_state clk_state = DM_PP_CLOCKS_STATE_INVALID;
|
|
|
|
|
|
switch (i) {
|
|
|
case 0:
|
|
|
- clk_state = CLOCKS_STATE_ULTRA_LOW;
|
|
|
+ clk_state = DM_PP_CLOCKS_STATE_ULTRA_LOW;
|
|
|
break;
|
|
|
|
|
|
case 1:
|
|
|
- clk_state = CLOCKS_STATE_LOW;
|
|
|
+ clk_state = DM_PP_CLOCKS_STATE_LOW;
|
|
|
break;
|
|
|
|
|
|
case 2:
|
|
|
- clk_state = CLOCKS_STATE_NOMINAL;
|
|
|
+ clk_state = DM_PP_CLOCKS_STATE_NOMINAL;
|
|
|
break;
|
|
|
|
|
|
case 3:
|
|
|
- clk_state = CLOCKS_STATE_PERFORMANCE;
|
|
|
+ clk_state = DM_PP_CLOCKS_STATE_PERFORMANCE;
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
- clk_state = CLOCKS_STATE_INVALID;
|
|
|
+ clk_state = DM_PP_CLOCKS_STATE_INVALID;
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -316,27 +284,27 @@ static bool display_clock_integrated_info_construct(
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
-static enum clocks_state get_required_clocks_state(
|
|
|
+static enum dm_pp_clocks_state get_required_clocks_state(
|
|
|
struct display_clock *dc,
|
|
|
struct state_dependent_clocks *req_clocks)
|
|
|
{
|
|
|
int32_t i;
|
|
|
struct display_clock_dce110 *disp_clk = DCLCK110_FROM_BASE(dc);
|
|
|
- enum clocks_state low_req_clk = dc->max_clks_state;
|
|
|
+ enum dm_pp_clocks_state low_req_clk = dc->max_clks_state;
|
|
|
|
|
|
if (!req_clocks) {
|
|
|
/* NULL pointer*/
|
|
|
dm_logger_write(dc->ctx->logger, LOG_WARNING,
|
|
|
"%s: Invalid parameter",
|
|
|
__func__);
|
|
|
- return CLOCKS_STATE_INVALID;
|
|
|
+ return DM_PP_CLOCKS_STATE_INVALID;
|
|
|
}
|
|
|
|
|
|
/* Iterate from highest supported to lowest valid state, and update
|
|
|
* lowest RequiredState with the lowest state that satisfies
|
|
|
* all required clocks
|
|
|
*/
|
|
|
- for (i = dc->max_clks_state; i >= CLOCKS_STATE_ULTRA_LOW; --i) {
|
|
|
+ for (i = dc->max_clks_state; i >= DM_PP_CLOCKS_STATE_ULTRA_LOW; --i) {
|
|
|
if ((req_clocks->display_clk_khz <=
|
|
|
max_clks_by_state[i].display_clk_khz) &&
|
|
|
(req_clocks->pixel_clk_khz <=
|
|
@@ -420,7 +388,7 @@ static void dce110_set_clock(
|
|
|
/* from power down, we need mark the clock state as ClocksStateNominal
|
|
|
* from HWReset, so when resume we will call pplib voltage regulator.*/
|
|
|
if (requested_clk_khz == 0)
|
|
|
- base->cur_min_clks_state = CLOCKS_STATE_NOMINAL;
|
|
|
+ base->cur_min_clks_state = DM_PP_CLOCKS_STATE_NOMINAL;
|
|
|
|
|
|
psr_wait_loop(base->ctx, requested_clk_khz);
|
|
|
}
|
|
@@ -444,7 +412,7 @@ static bool dal_display_clock_dce110_construct(
|
|
|
dc_base->ctx = ctx;
|
|
|
dc_base->min_display_clk_threshold_khz = 0;
|
|
|
|
|
|
- dc_base->cur_min_clks_state = CLOCKS_STATE_INVALID;
|
|
|
+ dc_base->cur_min_clks_state = DM_PP_CLOCKS_STATE_INVALID;
|
|
|
|
|
|
dc_base->funcs = &funcs;
|
|
|
|
|
@@ -462,7 +430,7 @@ static bool dal_display_clock_dce110_construct(
|
|
|
* via a pplib call to DAL IRI eventually calling a
|
|
|
* DisplayEngineClock_Dce110::StoreMaxClocksState(). This call will come in
|
|
|
* on PPLIB init. This is from DCE5x. in case HW wants to use mixed method.*/
|
|
|
- dc_base->max_clks_state = CLOCKS_STATE_NOMINAL;
|
|
|
+ dc_base->max_clks_state = DM_PP_CLOCKS_STATE_NOMINAL;
|
|
|
|
|
|
dal_divider_range_construct(
|
|
|
÷r_ranges[DIVIDER_RANGE_01],
|