From: Leon Huang <[email protected]> [Why] PSR config was being cleared unconditionally during setup, even when PSR was going to be enabled. A magic number was also used instead of a macro for DPCD access.
[How] In PSR setup, clear PSR config when PSR is not enabled. And use macro definition instead of magic number to access specific DPCD. Reviewed-by: Wenjing Liu <[email protected]> Signed-off-by: Leon Huang <[email protected]> Signed-off-by: Ivan Lipski <[email protected]> --- .../link/protocols/link_edp_panel_control.c | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c b/drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c index e06a9ac65286..dd21a4c45561 100644 --- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c +++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c @@ -713,17 +713,17 @@ bool edp_setup_psr(struct dc_link *link, sizeof(link->dpcd_caps.psr_info.psr_version)); } - //Clear PSR cfg - memset(&psr_configuration, 0, sizeof(psr_configuration)); - dm_helpers_dp_write_dpcd( - link->ctx, - link, - DP_PSR_EN_CFG, - &psr_configuration.raw, - sizeof(psr_configuration.raw)); - - if (link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED) + if (link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED) { + //Clear PSR cfg + memset(&psr_configuration, 0, sizeof(psr_configuration)); + dm_helpers_dp_write_dpcd( + link->ctx, + link, + DP_PSR_EN_CFG, + &psr_configuration.raw, + sizeof(psr_configuration.raw)); return false; + } dc = link->ctx->dc; dmcu = dc->res_pool->dmcu; @@ -765,7 +765,7 @@ bool edp_setup_psr(struct dc_link *link, dm_helpers_dp_write_dpcd( link->ctx, link, - 368, + DP_PSR_EN_CFG, &psr_configuration.raw, sizeof(psr_configuration.raw)); -- 2.43.0
