diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c index dc1d75b204cd..68e9fc6b510c 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c @@ -3274,6 +3274,8 @@ bool dc_link_setup_psr(struct dc_link *link, psr_config->su_granularity_required; psr_context->su_y_granularity = psr_config->su_y_granularity; + psr_context->line_time_in_us = + psr_config->line_time_in_us; } psr_context->channel = link->ddc->ddc_pin->hw_info.ddc_channel; diff --git a/drivers/gpu/drm/amd/display/dc/dc_types.h b/drivers/gpu/drm/amd/display/dc/dc_types.h index d61ea3e2bfbf..119ce8b7a555 100644 --- a/drivers/gpu/drm/amd/display/dc/dc_types.h +++ b/drivers/gpu/drm/amd/display/dc/dc_types.h @@ -676,6 +676,7 @@ struct psr_config { bool su_granularity_required; /* psr2 selective update y granularity capability */ uint8_t su_y_granularity; + unsigned int line_time_in_us; }; union dmcu_psr_level { @@ -783,6 +784,7 @@ struct psr_context { bool su_granularity_required; /* psr2 selective update y granularity capability */ uint8_t su_y_granularity; + unsigned int line_time_in_us; }; struct colorspace_transform { diff --git a/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c b/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c index bc4943205bce..c2d65756ce5d 100644 --- a/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c +++ b/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c @@ -340,6 +340,7 @@ static bool dmub_psr_copy_settings(struct dmub_psr *dmub, copy_settings_data->su_y_granularity = psr_context->su_y_granularity; copy_settings_data->line_capture_indication = 0; + copy_settings_data->line_time_in_us = psr_context->line_time_in_us; copy_settings_data->fec_enable_status = (link->fec_state == dc_link_fec_enabled); copy_settings_data->fec_enable_delay_in100us = link->dc->debug.fec_enable_delay_in100us; copy_settings_data->cmd_version = DMUB_CMD_PSR_CONTROL_VERSION_1;