From: Jouni Högander Date: Wed, 19 Jun 2024 06:21:26 +0000 (+0300) Subject: drm/i915/psr: HW will not allow PR on eDP when HDCP enabled X-Git-Tag: nvme-6.11-2024-08-08~76^2~2^2~2^2~8 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=0bc96a4ba99a9ef35a9cac55cc1772016ff890a2;p=nvme.git 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 Reviewed-by: Animesh Manna Link: https://patchwork.freedesktop.org/patch/msgid/20240619062131.4021196-7-jouni.hogander@intel.com --- 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; }