Commit fcfc6cee authored by Yihan Zhu's avatar Yihan Zhu Committed by Alex Deucher

drm/amd/display: Enable CM low mem power optimization

[WHY & HOW]
MPC MCM low mem power optimization still causes color distortion on
first SCE enablement, only forces light sleep for it.

DPP low memory power optimization still needs this bit to save power.
Reviewed-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Acked-by: default avatarAlex Hung <alex.hung@amd.com>
Signed-off-by: default avatarYihan Zhu <yihan.zhu@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent ef71bb41
...@@ -71,21 +71,24 @@ void mpc32_power_on_blnd_lut( ...@@ -71,21 +71,24 @@ void mpc32_power_on_blnd_lut(
{ {
struct dcn30_mpc *mpc30 = TO_DCN30_MPC(mpc); struct dcn30_mpc *mpc30 = TO_DCN30_MPC(mpc);
/*
if (mpc->ctx->dc->debug.enable_mem_low_power.bits.cm) { if (mpc->ctx->dc->debug.enable_mem_low_power.bits.cm) {
if (power_on) { if (power_on) {
REG_UPDATE(MPCC_MCM_MEM_PWR_CTRL[mpcc_id], MPCC_MCM_1DLUT_MEM_PWR_FORCE, 0); REG_UPDATE(MPCC_MCM_MEM_PWR_CTRL[mpcc_id], MPCC_MCM_1DLUT_MEM_PWR_FORCE, 0);
REG_WAIT(MPCC_MCM_MEM_PWR_CTRL[mpcc_id], MPCC_MCM_1DLUT_MEM_PWR_STATE, 0, 1, 5); REG_WAIT(MPCC_MCM_MEM_PWR_CTRL[mpcc_id], MPCC_MCM_1DLUT_MEM_PWR_STATE, 0, 1, 5);
} else if (!mpc->ctx->dc->debug.disable_mem_low_power) { } else if (!mpc->ctx->dc->debug.disable_mem_low_power) {
ASSERT(false); //TODO: change to mpc
/* TODO: change to mpc dpp_base->ctx->dc->optimized_required = true;
* dpp_base->ctx->dc->optimized_required = true; dpp_base->deferred_reg_writes.bits.disable_blnd_lut = true;
* dpp_base->deferred_reg_writes.bits.disable_blnd_lut = true;
*/
} }
} else { } else {
REG_SET(MPCC_MCM_MEM_PWR_CTRL[mpcc_id], 0, REG_SET(MPCC_MCM_MEM_PWR_CTRL[mpcc_id], 0,
MPCC_MCM_1DLUT_MEM_PWR_FORCE, power_on == true ? 0 : 1); MPCC_MCM_1DLUT_MEM_PWR_FORCE, power_on == true ? 0 : 1);
} }
*/
REG_SET(MPCC_MCM_MEM_PWR_CTRL[mpcc_id], 0,
MPCC_MCM_1DLUT_MEM_PWR_FORCE, power_on == true ? 0 : 1);
} }
static enum dc_lut_mode mpc32_get_post1dlut_current(struct mpc *mpc, uint32_t mpcc_id) static enum dc_lut_mode mpc32_get_post1dlut_current(struct mpc *mpc, uint32_t mpcc_id)
......
...@@ -724,7 +724,7 @@ static const struct dc_debug_options debug_defaults_drv = { ...@@ -724,7 +724,7 @@ static const struct dc_debug_options debug_defaults_drv = {
.i2c = true, .i2c = true,
.dmcu = false, // This is previously known to cause hang on S3 cycles if enabled .dmcu = false, // This is previously known to cause hang on S3 cycles if enabled
.dscl = true, .dscl = true,
.cm = false, .cm = true,
.mpc = true, .mpc = true,
.optc = true, .optc = true,
.vpg = true, .vpg = true,
......
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