void dm_helpers_override_panel_settings(
struct dc_context *ctx,
- struct dc_panel_config *panel_config)
+ struct dc_link *link)
{
+ unsigned int panel_inst = 0;
+
// Feature DSC
if (amdgpu_dc_debug_mask & DC_DISABLE_DSC)
- panel_config->dsc.disable_dsc_edp = true;
+ link->panel_config.dsc.disable_dsc_edp = true;
+
+ if (dc_get_edp_link_panel_inst(ctx->dc, link, &panel_inst) && panel_inst == 1) {
+ link->panel_config.psr.disable_psr = true;
+ link->panel_config.psr.disallow_psrsu = true;;
+ link->panel_config.psr.disallow_replay = true;
+ }
}
void *dm_helpers_allocate_gpu_mem(
link->psr_settings.psr_feature_enabled = false;
} else {
+ unsigned int panel_inst = 0;
+
if (link_supports_psrsu(link))
link->psr_settings.psr_version = DC_PSR_VERSION_SU_1;
else
link->psr_settings.psr_version = DC_PSR_VERSION_1;
link->psr_settings.psr_feature_enabled = true;
+
+ /*disable allow psr/psrsu/replay on eDP1*/
+ if (dc_get_edp_link_panel_inst(link->ctx->dc, link, &panel_inst) && panel_inst == 1) {
+ link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
+ link->psr_settings.psr_feature_enabled = false;
+ }
}
}
} bits;
unsigned char raw;
};
-
/* Structure to hold configuration flags set by dm at dc creation. */
struct dc_config {
bool gpu_vm_support;
struct dc_sink *sink);
void dm_helpers_override_panel_settings(
struct dc_context *ctx,
- struct dc_panel_config *config);
+ struct dc_link *link);
int dm_helper_dmub_aux_transfer_sync(
struct dc_context *ctx,
const struct dc_link *link,
// Pickup base DM settings
dm_helpers_init_panel_settings(dc_ctx, &link->panel_config, sink);
// Override dc_panel_config if system has specific settings
- dm_helpers_override_panel_settings(dc_ctx, &link->panel_config);
+ dm_helpers_override_panel_settings(dc_ctx, link);
//sink only can use supported link rate table, we are foreced to enable it
if (link->reported_link_cap.link_rate == LINK_RATE_UNKNOWN)