drm/i915/psr: Detect panel replay selective update support

Add new boolean to store panel replay selective update support of sink into
intel_psr struct.  Detect panel replay selective update support and store
it into this new boolean.

v3: Clear sink_panel_replay_su_support in intel_dp_detect
v2: Merge adding new boolean into this patch

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Animesh Manna <animesh.manna@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240510093823.3146455-7-jouni.hogander@intel.com
This commit is contained in:
Jouni Högander 2024-05-10 12:38:17 +03:00
parent 4b526132cc
commit 3a745dfc71
3 changed files with 10 additions and 2 deletions

View File

@ -1724,6 +1724,7 @@ struct intel_psr {
u16 su_y_granularity;
bool source_panel_replay_support;
bool sink_panel_replay_support;
bool sink_panel_replay_su_support;
bool panel_replay_enabled;
u32 dc3co_exitline;
u32 dc3co_exit_delay;

View File

@ -5861,6 +5861,7 @@ intel_dp_detect(struct drm_connector *connector,
memset(&intel_dp->compliance, 0, sizeof(intel_dp->compliance));
memset(intel_connector->dp.dsc_dpcd, 0, sizeof(intel_connector->dp.dsc_dpcd));
intel_dp->psr.sink_panel_replay_support = false;
intel_dp->psr.sink_panel_replay_su_support = false;
intel_dp_mst_disconnect(intel_dp);

View File

@ -522,9 +522,15 @@ static void _panel_replay_init_dpcd(struct intel_dp *intel_dp)
return;
}
drm_dbg_kms(&i915->drm,
"Panel replay is supported by panel\n");
intel_dp->psr.sink_panel_replay_support = true;
if (pr_dpcd & DP_PANEL_REPLAY_SU_SUPPORT)
intel_dp->psr.sink_panel_replay_su_support = true;
drm_dbg_kms(&i915->drm,
"Panel replay %sis supported by panel\n",
intel_dp->psr.sink_panel_replay_su_support ?
"selective_update " : "");
}
static void _psr_init_dpcd(struct intel_dp *intel_dp)