diff options
| author | Wenjing Liu <wenjing.liu@amd.com> | 2023-08-24 19:50:16 -0400 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2023-09-11 17:18:30 -0400 |
| commit | 3a2c0eccab9ade6d2c977113ba637a10bcfcd612 (patch) | |
| tree | 38363bc373ce52f2e56699057a455dc77624cb33 /drivers | |
| parent | drm/amd/display: add seamless pipe topology transition check (diff) | |
| download | linux-3a2c0eccab9ade6d2c977113ba637a10bcfcd612.tar.gz linux-3a2c0eccab9ade6d2c977113ba637a10bcfcd612.zip | |
drm/amd/display: move odm power optimization decision after subvp optimization
[why]
ODM power optimization excludes subvp power optimization but subvp
optimization can override ODM power optimization even if subvp optimization
configuration is not found. This happens with 4k144hz + 1 5k desktop plane.
We could have applied ODM power optimization however this is overridden by
subvp but subvp ends up deciding not apply its optimization.
[how]
Move ODM power optimization decision after subvp so it will try ODM power
optimization after subvp optimization is not possible.
Reviewed-by: Dillon Varone <dillon.varone@amd.com>
Acked-by: Stylon Wang <stylon.wang@amd.com>
Signed-off-by: Wenjing Liu <wenjing.liu@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c b/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c index 92e2d1df5b32..1f53883d8f56 100644 --- a/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c +++ b/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c @@ -1441,10 +1441,6 @@ static void dcn32_full_validate_bw_helper(struct dc *dc, vba->VoltageLevel = *vlevel; } - if (should_allow_odm_power_optimization(dc, context, vba, split, merge)) - try_odm_power_optimization_and_revalidate( - dc, context, pipes, split, merge, vlevel, *pipe_cnt); - /* Conditions for setting up phantom pipes for SubVP: * 1. Not force disable SubVP * 2. Full update (i.e. !fast_validate) @@ -1563,6 +1559,11 @@ static void dcn32_full_validate_bw_helper(struct dc *dc, assign_subvp_index(dc, context); } } + + if (should_allow_odm_power_optimization(dc, context, vba, split, merge)) + try_odm_power_optimization_and_revalidate( + dc, context, pipes, split, merge, vlevel, *pipe_cnt); + } static bool is_dtbclk_required(struct dc *dc, struct dc_state *context) |
