drm/amd/display: calculate psr config settings in runtime in DM
[why] Currently the psr configuration parameters are hardcoded before feeding into the DC helper before passing to DMUB FW. We'd rework to call a shared helper to calculate/update generic psr config fields which are relying on the stream timing and eDP sink PSR caps to avoid hard-coding. [how] - drop part of hard-coded psr config fields by replacing w/ the call of helper from DM before feeding into DC link setup psr helper - For those DM specific psr config fields, e.g. allow smu opt, is not to be set/updated from the shared helper but to rely on the DC feature mask - for the psr version field in psr_config structure, since only the field psr_version of DC link psr_settings matters for that fed to DMUB FW, thus no need to set/update the psr_version field of psr_config structure. Signed-off-by: David Zhang <dingchen.zhang@amd.com> Acked-by: Leo Li <sunpeng.li@amd.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
65e7a17499
commit
381b590c30
@ -97,19 +97,24 @@ bool amdgpu_dm_link_setup_psr(struct dc_stream_state *stream)
|
||||
struct dc_link *link = NULL;
|
||||
struct psr_config psr_config = {0};
|
||||
struct psr_context psr_context = {0};
|
||||
struct dc *dc = NULL;
|
||||
bool ret = false;
|
||||
|
||||
if (stream == NULL)
|
||||
return false;
|
||||
|
||||
link = stream->link;
|
||||
dc = link->ctx->dc;
|
||||
|
||||
if (link->psr_settings.psr_version != DC_PSR_VERSION_UNSUPPORTED) {
|
||||
psr_config.psr_version = link->psr_settings.psr_version;
|
||||
psr_config.psr_frame_capture_indication_req = 0;
|
||||
psr_config.psr_rfb_setup_time = 0x37;
|
||||
psr_config.psr_sdp_transmit_line_num_deadline = 0x20;
|
||||
psr_config.allow_smu_optimizations = 0x0;
|
||||
mod_power_calc_psr_configs(&psr_config, link, stream);
|
||||
|
||||
/* linux DM specific updating for psr config fields */
|
||||
psr_config.allow_smu_optimizations =
|
||||
(amdgpu_dc_feature_mask & DC_PSR_ALLOW_SMU_OPT) &&
|
||||
mod_power_only_edp(dc->current_state, stream);
|
||||
psr_config.allow_multi_disp_optimizations =
|
||||
(amdgpu_dc_feature_mask & DC_PSR_ALLOW_MULTI_DISP_OPT);
|
||||
|
||||
ret = dc_link_setup_psr(link, stream, &psr_config, &psr_context);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user