diff options
author | Jouni Högander <jouni.hogander@intel.com> | 2024-06-19 09:21:26 +0300 |
---|---|---|
committer | Jouni Högander <jouni.hogander@intel.com> | 2024-06-25 08:28:43 +0300 |
commit | 0bc96a4ba99a9ef35a9cac55cc1772016ff890a2 (patch) | |
tree | c4b55a0b4dfa8f8a92871da41850f25ac14c56f9 | |
parent | 397b51ef1ab28b1c807c042f455b47c720984473 (diff) |
drm/i915/psr: HW will not allow PR on eDP when HDCP enabled
Take into account in Panel Replay compute config that HW will not allow PR
on eDP when HDCP enabled.
v2: add debug message to print out why Panel Replay is not possible
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/20240619062131.4021196-7-jouni.hogander@intel.com
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_psr.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c index 8f8148afe8e8..91c9b3f8b705 100644 --- a/drivers/gpu/drm/i915/display/intel_psr.c +++ b/drivers/gpu/drm/i915/display/intel_psr.c @@ -1523,6 +1523,9 @@ _panel_replay_compute_config(struct intel_dp *intel_dp, const struct drm_connector_state *conn_state) { struct drm_i915_private *i915 = dp_to_i915(intel_dp); + struct intel_connector *connector = + to_intel_connector(conn_state->connector); + struct intel_hdcp *hdcp = &connector->hdcp; if (!CAN_PANEL_REPLAY(intel_dp)) return false; @@ -1544,6 +1547,17 @@ _panel_replay_compute_config(struct intel_dp *intel_dp, return false; } + /* HW will not allow Panel Replay on eDP when HDCP enabled */ + if (conn_state->content_protection == + DRM_MODE_CONTENT_PROTECTION_DESIRED || + (conn_state->content_protection == + DRM_MODE_CONTENT_PROTECTION_ENABLED && hdcp->value == + DRM_MODE_CONTENT_PROTECTION_UNDESIRED)) { + drm_dbg_kms(&i915->drm, + "Panel Replay is not supported with HDCP\n"); + return false; + } + return true; } |